这个问题听起来很简单,但是它让我发疯。
我在IB中创建了一个名为iBag的白色视图,并通过约束使其大小取决于屏幕大小。
现在我想通过编程方式创建一个新的 UIView,并使用以下代码将其添加为 iBag 的子视图,使其具有相同的大小和位置。
let newView = UIView()
newView.frame = (frame: CGRect(x: 0, y: 0, width: iBag.frame.width, height: iBag.frame.height))
newView.backgroundColor = UIColor.redColor()
iBag.addSubview(newView)
我也尝试了边界,但是没有帮助。 我可以使用约束条件来解决问题,但我想理解出了什么问题。
viewDidLayoutSubviews
方法中添加新视图,因为此时框架和自动布局过程尚未完成。请确保保留对新视图的引用,并仅在其为nil时才添加它,因为viewDidLayoutSubviews
可能会被调用多次。 - Paulw11