투케이2K

252. (ios/swift) NSLayoutConstraint Visual Format 사용해 UILabel 라벨 오토 레이아웃 설정 실시 - AutoLayout 본문

IOS

252. (ios/swift) NSLayoutConstraint Visual Format 사용해 UILabel 라벨 오토 레이아웃 설정 실시 - AutoLayout

투케이2K 2022. 11. 7. 17:40

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT

 

[소스 코드]

    // MARK: - [테스트 메인 함수 정의 실시]
    func testMain() {
        print("")
        print("====================================")
        print("[\(self.ACTIVITY_NAME) >> testMain() :: 테스트 함수 시작 실시]")
        print("====================================")
        print("")
        
        
        /*
         // -----------------------------
         [요약 설명]
         // -----------------------------
         1. NSLayoutConstraint : 오토 레이아웃 설정 시 사용됩니다
         // -----------------------------
         2. attribute 속성 :
         
         - 뷰 : [] (대괄호) 사용
         - 뷰간 연결 : - (하이픈)을 사용
         // -----------------------------
         3. 예제 설명
         
         - 좌측 / 우측 마진 설정 >> 컴포넌트 width 지정됨
         - 컴포넌트 height 설정
         - 컴포넌트 수직 간격 설정
         // -----------------------------
         */
        
        
        // [비동기 처리 수행]
        DispatchQueue.main.async {

            // [초기 컴포넌트 선언 실시]
            let label = UILabel()
            
            
            // [컴포넌트 속성 설정]
            label.text = "TWOK"
            label.textColor = UIColor.white
            label.backgroundColor = UIColor.blue
            label.textAlignment = .center
            label.font = UIFont.systemFont(ofSize: CGFloat(50))
            
            
            // [뷰에 추가 실시]
            self.view.addSubview(label)

            
            // [오토레이아웃 리사이징 충돌 방지]
            label.translatesAutoresizingMaskIntoConstraints = false // 리사이징 false 설정
            
            
            // [Visual Format 사용해 오토레이아웃 설정 실시]
            let horizontal_format = "H:|-30-[label]-30-|" // [좌측 및 우측 간격 지정 : width 크기 결정됨]
            let vertical_format = "V:|-50-[label(100)]" // [세로 간격 및 height 값 지정 : self.view 기준으로 세로 간격 설정]
            //let vertical_format = "V:|[button]-50-[label(100)]" // [세로 간격 및 height 값 지정 : button 컴포넌트 기준으로 세로 간격 설정]
            
            
            // [NSLayoutConstraint 설정]
            let views = [
                        "label" : label
                    ]
            var constraints = NSLayoutConstraint.constraints(withVisualFormat: horizontal_format, options: [], metrics: nil, views: views)
            constraints += NSLayoutConstraint.constraints(withVisualFormat: vertical_format, options: [], metrics: nil, views: views)
            
            NSLayoutConstraint.activate(constraints)
            
        }
    }
 

[결과 출력]


반응형
Comments