我有一个名为contentView的子视图,几乎与superView齐平。
我使用iPhoneX在Storyboard中设计了subView,并为所有屏幕尺寸添加了必要的约束。
在不同的屏幕尺寸上,视图看起来像约束所定义的那样被拉伸,但视图的bound.size在所有屏幕尺寸上保持相同
contentView.bounds.width
以上所有屏幕尺寸都会打印以下值
375.0
我根据它的宽度向我的contentView添加了更多的子视图,但在所有屏幕尺寸上,我得到了相同的值。
似乎375是我最初添加contentView的iPhoneX的点数宽度。
有没有任何理由因为谷歌搜索这个问题没有帮助。 如果有人指出我正确的方向,我真的很感激。
答案 0 :(得分:1)
如果您希望在viewDidLoad()
中应用约束,那么它太早了。视图仅假定为viewDidLayoutSubviews()
中的约束准备。
答案 1 :(得分:0)
添加
self.view.layoutIfNeeded()
print(“\(myCustomView.bounds)”)
然后你可以打印正确的边界。
这会强制视图在检查之前将所有子视图更新为受约束的大小。在仍在进行的viewDidLoad中,这样可以确保已经发生。
您也可以在viewDidLayoutSubviews()中执行此操作,但如果视图是子视图的子视图,即使在该函数中也可能不正确。