在IB中创建的UIView在viewDidLoad和awakeFromNib中没有框架

Cry*_*tal 5 uiview ios

如果我错过了这里的内容,我很抱歉,但我认为在IB中创建的UIView对象应该在viewDidLoad中创建它们的帧,这样你就可以在viewDidLoad或awakeFromNib或viewWillAppear中根据这个视图进行初始设置.我在每个方法中记录了输出:

NSLog(@"%@ %s", NSStringFromCGRect(self.zoomView.frame), __FUNCTION__);
Run Code Online (Sandbox Code Playgroud)

总而言之,我得到{0,0,0,0}.

这是我的UIStoryboard中的第一个nib,我正在使用Autolayout和iOS 6.我可以在以前的应用程序上发誓我已经使用了在IB中创建的其他UIView对象的框架进行设置.有什么东西改变了吗?或者我只是错误地记得它?谢谢!

Dou*_*e M 4

我有完全相同的问题。是的,你没记错 - iOS 5 中的情况有所不同。我总是在其中设置视图,viewDidLoad:并且框架已经是视图实际在屏幕上时的样子。

现在在 iOS 6 中,如果启用了自动布局,您需要将代码放入viewDidAppear:有效的框架中。显然,布局是在这两个调用之间完成的。