ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (iOS) 스토리 보드 없이 ImageView,TextView 구성하기(기초)
    Programing Language/iOS(Swift) 2019. 10. 29. 10:54
    728x90
    반응형

     

    (코드를 읽어보시면 어떻게 구성되었는지 알 수 있습니다.)

    1. UIImageView 넣기

    class ViewController: UIViewController {
        
        //let's avoid polluting viewDidLoad
        //{} is referred to as closure, or anon. functions
        // ImageView의 설정값을 이 안에 넣는다.
        let bearImageView : UIImageView = {
            let imageView = UIImageView(image : #imageLiteral(resourceName: "cat")) <-이 함수를 사용하는 방법은 image Literal 이다.
            imageView.translatesAutoresizingMaskIntoConstraints = false
            imageView.contentMode = .scaleAspectFit
            return imageView
            
        }()
        
        override func viewDidLoad() {
            super.viewDidLoad()
       	
        	//addSubView는 레이아웃안에 앞에서 상수로 설정한 뷰 오브젝트를 넣는 다는 말이다.
            view.addSubview(wirtetextField)
            setupLayout()
            
        }
        
        // 이 메서드는 viewDidLoad 앞에 constraint를 모두 설정하면 보기가 안좋기 때문에 메서드로 분리하여 사용한다.
        private func setupLayout(){
        
        //1. 보통 topAnchor, leaingAnchor, trailingAnchor, bottomAnchor로 4방향으로 제약을 걸어준다.
        //2. safeArea에 제약을 기준으로 제약을 걸려면 equalTo 에 view.xxxAnchor로 적어준다.
        //3. 마지막으로 제약 설정이끝나면 isActive로 활성화시켜준다.
        	bearImageView.centerYAnchor.constraint(equalTo: topImageContainerView.centerYAnchor).isActive = true
            bearImageView.centerXAnchor.constraint(equalTo: topImageContainerView.centerXAnchor).isActive = true
            bearImageView.heightAnchor.constraint(equalTo: topImageContainerView.heightAnchor, multiplier: 0.5).isActive = true
        }    

     

     

    2. TextView 넣기(+ 패딩)

    class ViewController: UIViewController {
    
     let descriptionTextView : UITextView = {
            let textView = UITextView()
            
            //attributedText <- 이걸 쓸려면 밑에 상수(attributedTExt)랑 textView.attributedText 랑 한 세트다.
            let attributedTExt = NSMutableAttributedString(string: "Join us today in our fun an games!", attributes : [NSAttributedString.Key.font: UIFont.boldSystemFont(ofSize: 18)])
            textView.textColor = .brown
            //textView.text = "Join us today in our fun an games!"
            textView.attributedText = attributedTExt
            textView.translatesAutoresizingMaskIntoConstraints = false
            
            ///textView.font = UIFont.boldSystemFont(ofSize: 18)
            textView.textAlignment = .center
            textView.isEditable = false
            textView.isScrollEnabled = false
            return textView
            
        }()
        
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view.
            
            view.backgroundColor = .white
    
           
            //스토리보드에 object넣는 메서드는 addSubview 이다!!
            view.addSubview(descriptionTextView)
            
            
            setupLayout()
            
            
            
        }
        
        
        private func setupLayout(){
        
       		descriptionTextView.topAnchor.constraint(equalTo: bearImageView.bottomAnchor, constant: 120).isActive = true
        	descriptionTextView.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true
        	descriptionTextView.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true
            
        	//textView에서 패딩 넣기
       		descriptionTextView.textContainerInset = UIEdgeInsets(top: 0, left: 100, bottom: 0, right: 10)
        }

     

     

    728x90
    반응형
Designed by Tistory.