如何使用带有 Storyboard 的 Autolayout 获取 UIView 子类的框架?
How can I get the frame of a UIView subclass using Autolayout with Storyboard?
当我使用 UIView
的子类并在有一些限制的情况下将其放在故事板上时,我会在 awakeFromNib()
或 didMoveToWindow()
中检查其框架。结果不正确,因为尚未应用约束。
是否有任何回调通知我已应用约束?所以在那之后我可以用正确的框架做某事。
调用awakeFromNib
、viewDidLoad
或didMoveToWindow
时,布局尚未完成。您必须使用 viewDidLayoutSubviews
个 viewController。此方法将在应用约束并完成布局后调用。
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
}
当我使用 UIView
的子类并在有一些限制的情况下将其放在故事板上时,我会在 awakeFromNib()
或 didMoveToWindow()
中检查其框架。结果不正确,因为尚未应用约束。
是否有任何回调通知我已应用约束?所以在那之后我可以用正确的框架做某事。
调用awakeFromNib
、viewDidLoad
或didMoveToWindow
时,布局尚未完成。您必须使用 viewDidLayoutSubviews
个 viewController。此方法将在应用约束并完成布局后调用。
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
}