在viewDidLoad中获取IB中的视图框架?

时间:2012-10-09 19:37:28

标签: iphone xcode ios6

当我在Interface Builder中创建标签并将插座挂钩到viewController时,并按照以下方式在viewDidLoad中记录标签:

  

NSLog(@“label:%@”,self.label);

它给了我一个(0,0,0,0)的框架。 self.view给了我一个大小超过0.一个较旧的程序的标签也给我一个大小超过0.它将记录标签中的文本,所以它是正确的连接。这是Xcode 4.5的变化吗?如何访问我在Interface Builder中设置的帧?

这是日志:

UILabel:0x754e1b0; frame =(0 0; 0 0); text ='这是一个标签'; clipsToBounds = YES; opaque = NO; autoresize = TM + BM; userInteractionEnabled = NO; layer = ...

2 个答案:

答案 0 :(得分:0)

试试这个:

NSLog(@"Label Frame: %@",NSStringFromCGRect(self.label.frame));

答案 1 :(得分:0)

通常,viewDidLoad中的框架布局不可靠。在笔尖的情况下,这应该不是问题。您是否有机会使用AutoLayout?

请同时在viewWillAppear中记录相同的值,这肯定会有正确的值。我通常使用viewWillLoad来启动我的UI元素,并使用viewWillLoad来正确放置它们。