【发布时间】:2016-06-09 12:00:25
【问题描述】:
这个问题听起来很简单,但它让我发疯了。 我在 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)
我也尝试过边界,但没有帮助。 我可以使用约束来解决问题,但我想了解问题所在。
【问题讨论】:
-
你在哪里实例化 ViewWillAppear 中的新视图???
-
@SandeepBhandari In viewDidLoad
-
你可以在 ViewDidAppear 中试试吗????
-
这是因为约束。
-
您应该在
viewDidLayoutSubviews中添加新视图,因为在此之前框架和自动布局过程不会完成。确保保留对新视图的引用,并且仅在它为 nil 时添加它,因为viewDidLayoutSubviews可能会被多次调用