使用自动布局使 UIView 全屏
Posted
技术标签:
【中文标题】使用自动布局使 UIView 全屏【英文标题】:make UIView full screen using autolayout 【发布时间】:2015-02-05 15:23:12 【问题描述】:我开始使用自动布局,我的 UIViewController 的 self.view 不再占据 iPhone 6 或 iPhone 6plus 的整个屏幕。 UIView 的大小是 size = inferred。
我查看了我的 VC 主视图的约束条件,但约束编辑器不允许我选择我希望顶部、左侧、右侧和底部的距离为 0,0,0,0查看到窗口的边缘。
【问题讨论】:
【参考方案1】:我做了一个在 UIView 下添加白色蒙版的函数(如果你是 UIView 的子类)
func addBackgroundMask()
backgroundMask = UIView()
backgroundMask?.backgroundColor = UIColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 0.6)
backgroundMask?.setTranslatesAutoresizingMaskIntoConstraints(false)
let topConstraint = NSLayoutConstraint(item: backgroundMask!, attribute:NSLayoutAttribute.Top, relatedBy:NSLayoutRelation.Equal, toItem:superview, attribute:NSLayoutAttribute.Top, multiplier:1.0, constant:0.0)
let bottomConstraint = NSLayoutConstraint(item: backgroundMask!, attribute:NSLayoutAttribute.Bottom, relatedBy:NSLayoutRelation.Equal, toItem:superview, attribute:NSLayoutAttribute.Bottom, multiplier:1.0, constant:0.0)
let leftConstraint = NSLayoutConstraint(item: backgroundMask!, attribute:NSLayoutAttribute.Left, relatedBy:NSLayoutRelation.Equal, toItem:superview, attribute:NSLayoutAttribute.Left, multiplier:1.0, constant:0.0)
let rightConstraint = NSLayoutConstraint(item: backgroundMask!, attribute:NSLayoutAttribute.Right, relatedBy:NSLayoutRelation.Equal, toItem:superview, attribute:NSLayoutAttribute.Right, multiplier:1.0, constant:0.0)
superview?.insertSubview(backgroundMask!, belowSubview: self)
superview?.addConstraint(topConstraint)
superview?.addConstraint(bottomConstraint)
superview?.addConstraint(leftConstraint)
superview?.addConstraint(rightConstraint)
【讨论】:
以上是关于使用自动布局使 UIView 全屏的主要内容,如果未能解决你的问题,请参考以下文章
如何使自动布局与 XIB 中的自定义 UIView 一起使用?