2017-03-31 52 views
1

我试图添加根视图和子视图的视图控制器编程,但视图未完全填满筛选按预期:编程添加根视图以查看控制器不正确定位

override func loadView() { 
     self.view = UIView(frame: CGRect(x: 0.0, y: 0.0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)) 
     self.view.backgroundColor = UIColor.blue 
    } 

    override func viewDidLoad() { 

     let alertView = Bundle.main.loadNibNamed("CHRApptTakenAlertView", owner: self, options: nil)![0] as! CHRApptTakenAlertView 

     self.view.translatesAutoresizingMaskIntoConstraints = false 
     alertView.translatesAutoresizingMaskIntoConstraints = false 

     self.view.addSubview(alertView) 
     self.view.addConstraint(NSLayoutConstraint(item: alertView, attribute: NSLayoutAttribute.centerX, relatedBy: NSLayoutRelation.equal, toItem: self.view, attribute: NSLayoutAttribute.centerX, multiplier: 1, constant: 0)) 
     self.view.addConstraint(NSLayoutConstraint(item: alertView, attribute: NSLayoutAttribute.centerY, relatedBy: NSLayoutRelation.equal, toItem: self.view, attribute: NSLayoutAttribute.centerY, multiplier: 1, constant: 0)) 
     alertView.addConstraint(NSLayoutConstraint(item: alertView, attribute: NSLayoutAttribute.width, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.width, multiplier: 1, constant: 350)) 
     alertView.addConstraint(NSLayoutConstraint(item: alertView, attribute: NSLayoutAttribute.height, relatedBy: NSLayoutRelation.equal, toItem: nil, attribute: NSLayoutAttribute.height, multiplier: 1, constant: 250)) 

     alertView.closeBtn.addTarget(self, action: #selector(self.closeBtnTouch), for: UIControlEvents.touchUpInside) 
    } 
+0

您不应该设置'self.view.translatesAutoresizingMaskIntoConstraints = false'。 – Sulthan

+0

@Sethmr我无法在约束之后添加子视图,因为在添加约束之前层次结构必须存在。但是,删除两条翻译线并在我的loadView()方法的末尾添加self.view.layoutIfNeeded()。添加为答案,我会接受。 – steventnorris

回答

0

取出线self.view.translatesAutoresizingMaskIntoConstraints = false,并在添加约束后调用self.view.layoutIfNeeded()。

+1

请删除声明“尝试添加约束后添加子视图”的部分,因为视图层次结构不适用于要添加的约束,并且我会接受。 – steventnorris

+0

@steventnorris完成 – Sethmr

相关问题