我有一个在界面构建器中设置为50x50的UIView。
在视图加载到应用程序后,它看起来非常好,但是当我在加载后打印它的大小
override func awakeFromNib() {
print(self.frame.height)
}
它返回1000.0
直到我将项目更新为Swift 3.0
之后才发生此错误有人知道可能会有什么变化吗?为什么打印它的高度返回1000.0而它实际上是50.0?
答案 0 :(得分:1)
这是因为UIView在生命周期中没有设置为50x50。此时它是1000.0
- 标准尺寸。
圈子是:
init
UIViewController awakeFromNib
loadView
UIView awakeFromNib
UIViewController viewDidLoad
viewWillAppear
viewDidAppear
从那时起,可以使用大小等属性。
您需要使用layoutIfNeeded属性尽早访问布局。
self.layoutIfNeeded()
layer.cornerRadius = self.frame.height / 2.0
layer.masksToBounds = true