iOS AutoLayout - 获取框架大小宽度 [英] iOS AutoLayout - get frame size width
问题描述
我正在使用 iOS 6 自动布局进行开发
I am developing using iOS 6 auto layout
我想记录一条显示视图框架宽度的消息.
I would like to log a message displaying the frame width of the view.
我可以在屏幕上看到 textView.
I can see the textView on the screen.
但我得到的宽度和高度为零,我错过了什么吗?
But I get the width and height as zero, am I missing something ?
NSLog(@"textView = %p", self.textView);
NSLog(@"height = %f", self.textView.frame.size.height);
NSLog(@"width = %f", self.textView.frame.size.width);
textView = 0x882de00
height = 0.000000
width = 0.000000
推荐答案
我认为在您调用它时自动布局还没有来得及布局您的视图.在调用 viewDidLoad
时还没有发生自动布局,因为它在视图加载后才被调用,并且只有在此之后视图才被放置到视图控制器的视图层次结构中并最终布局(在视图的 layoutSubviews
方法中).
I think auto layout hasn't had the time to layout your views by the time you call this. Auto layout hasn't happened by the time viewDidLoad
is called, because it's called just after the views are loaded and it's only after that that the views are placed into the view controller's view hierarchy and eventually laid out (in the view's layoutSubviews
method).
这个答案指出了为什么问题中的场景不起作用.@dreamzor 的回答指出了将代码放在哪里以解决问题.
this answer points out why the scenario in the question doesn't work. @dreamzor's answer points out where to place your code in order to solve it.
这篇关于iOS AutoLayout - 获取框架大小宽度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!