1

xib 파일에 사용자 정의 탐색 컨트롤러 용 xib 파일을 만들었습니다.이 파일에는 3 개의 UIButton과 1 개의 UILabel이 있습니다. 런타임에이 xib 파일을 탐색 컨트롤러로 지정합니다. ViewController에서 VFL (Visual Format Language)을 사용하여 제약 조건을 설정해야합니다.xib 파일에 Visual Formate 언어를 사용하여 제약 조건을 설정하는 방법

let tempView = Bundle.main.loadNibNamed("CustomNavigation", owner: self, options: nil)?.first as! CustomNavigationView 
    self.view.addSubview(tempView) 

    tempView.backgroundColor = UIColor.lightGray 
    //tempView.frame = CGRect(x: 0, y: 0, width:width, height: 64) 

    let backBtn = tempView.back as UIButton 
    let naviTitle = tempView.naviTitle as UILabel 
    let bell = tempView.bell as UIButton 
    let order = tempView.order as UIButton 

backBtn, naviTitle, bell, order에 대한 제약 조건을 설정해야합니다. 나는이

let views = ["backBtn": backBtn, 
       "naviTitle": naviTitle, 
       "order": order] as [String : AnyObject] 

    let iconVerticalConstraints = NSLayoutConstraint.constraints(
     withVisualFormat: "V:|-20-[backBtn(60)]", 
     options: [], 
     metrics: nil, 
     views: views) 
    allConstraints += iconVerticalConstraints 



    let nameLabelVerticalConstraints = NSLayoutConstraint.constraints(
     withVisualFormat: "V:|-23-[naviTitle]", 
     options: [], 
     metrics: nil, 
     views: views) 
    allConstraints += nameLabelVerticalConstraints 



    let skipButtonVerticalConstraints = NSLayoutConstraint.constraints(
     withVisualFormat: "V:|-20-[order]", 
     options: [], 
     metrics: nil, 
     views: views) 
    allConstraints += skipButtonVerticalConstraints 



    let welcomeHorizontalConstraints = NSLayoutConstraint.constraints(
     withVisualFormat: "H:|[backBtn]-5-[naviTitle]-5-[order]|", 
     options: [], 
     metrics: nil, 
     views: views) 
    allConstraints += welcomeHorizontalConstraints 


    let topRowHorizontalConstraints = NSLayoutConstraint.constraints(
     withVisualFormat: "H:|-15-[backBtn(60)]-[naviTitle]-[order]-15-|", 
     options: [.alignAllCenterY], 
     metrics: nil, 
     views: views) 
    allConstraints += topRowHorizontalConstraints 


    NSLayoutConstraint.activate(allConstraints) 

같은 제약 조건을 설정하지만 난 당신이 자동 크기는 사람들은 만족하지 않을 수있는 그런 제약 조건을 복구

backBtn.translatesAutoresizingMaskIntoConstraints = false 
naviTitle.translatesAutoresizingMaskIntoConstraints = false 
bell.translatesAutoresizingMaskIntoConstraints = false 
order.translatesAutoresizingMaskIntoConstraints = false 

마스크 해제해야 할 것 같아요 처음에는

답변

0

작동하지 않습니다 동시에

"H:|[backBtn]-5-[naviTitle]-5-[order]|" 
"H:|-15-[backBtn(60)]-[naviTitle]-[order]-15-|" 

superview에서 backBtn 거리를 동시에 0과 15로 설정할 수 없습니다. 나머지 제약 조건들도 마찬가지입니다.