在iOS8-Xcode6中Autolayout不会立即更新帧
我在autolayout
中使用autolayout
XCode6
。
我已经将以下约束应用于scrollview
。
我试图在iPhone 4Inchs设备的viewDidLoad
和viewWillAppear
方法中访问这个scrollview的框架。 这里的问题是,滚动视图的宽度在日志中显示600。 但是,我使用autolayout
的宽度应该是4英寸设备中的300。 似乎自动autolayout
将适用于一段时间之后。 它在 – viewDidAppear
方法显示正确的宽度为300。
有什么办法可以访问 – viewDidLoad
和 – viewWillAppear
方法的原始框架?
提前致谢。
自动布局不会为您提供“正确的”框架大小,直到布局通过发生。 viewDidLoad
还为时过早,而且我的头顶willAppear
可能会出现。 viewDidLayoutSubviews
是正确的地方。
把这段代码放在你的viewDidLoad()
self.view.setNeedsLayout(); self.view.layoutIfNeeded();
在访问scorllView.frame.size.width
之前
从viewDidLoad和viewWillAppear其显示与界面生成器的维度相同。 如果您的应用程序在scrollView框架上传递(如果您希望它们在viewDidAppear之前)在呈现之前调用viewController实例view
方法。
UIViewController *myVC = [[UIViewController alloc]init]; [myVC view] [self.navigationController pushViewController:myVC];
但是这依靠应用程序的性能。