使用约束添加子视图会使视图变黑

时间:2016-03-10 08:31:27

标签: ios uiview autolayout ios-autolayout

我试图通过将此代码添加到我的" BaseViewController"来为我的所有viewcontrollers添加覆盖。然而,它导致所有ViewControllers变黑并且行为奇怪。

override public func viewDidLoad()
{
    super.viewDidLoad()

    overlayView = UIView()
    overlayView.backgroundColor = UIColor.redColor() //For testing
    view.addSubviewWithMatchingConstraints(overlayView)
    ...
}

在UIView扩展名中:

func addSubviewWithMatchingConstraints(subView: UIView)
{
    translatesAutoresizingMaskIntoConstraints = false
    addSubview(subView)

    addConstraint(NSLayoutConstraint(item: subView, attribute: .Width, relatedBy: .Equal, toItem: self, attribute: .Width, multiplier: 1, constant: 0))
    addConstraint(NSLayoutConstraint(item: subView, attribute: .Height, relatedBy: .Equal, toItem: self, attribute: .Height, multiplier: 1, constant: 0))
    addConstraint(NSLayoutConstraint(item: subView, attribute: .CenterX, relatedBy: .Equal, toItem: self, attribute: .CenterX, multiplier: 1.0, constant: 0))
    addConstraint(NSLayoutConstraint(item: subView, attribute: .CenterY, relatedBy: .Equal, toItem: self, attribute: .CenterY, multiplier: 1.0, constant: 0))
}

1 个答案:

答案 0 :(得分:0)

问题是我在父母而不是孩子身上设置了translatesAutoresizingMaskIntoConstraints

childView.translatesAutoresizingMaskIntoConstraints = false

修好了