0

我有自己的类,它是从 UITableViewController 扩展而来的。
在这一行之后
MyClass *obj = [[MyClass alloc] init];
我有
obj.view.frame.orign.y = 20

在我通过导航控制器推送这个自定义视图之后 - 我检查了 viewDidAppear 中的 y 坐标,它变成了 0。
太奇怪了

为什么 ?是因为我在状态栏下方的自定义表格视图高度为 20 吗?
或者是其他东西。
如果是因为状态栏,为什么我可以在 (0,0) 中创建 UIButton 并且它在状态栏下方?

4

1 回答 1

0

您看到的行为是正常的:
-您首先创建视图控制器,它没有附加到视图层次结构,默认情况下它采用坐标,就好像它是根控制器一样,由于状态栏,y = 20-
然后您push 视图控制器,调整大小以适应导航控制器,框架坐标是相对于父框架的坐标,即 y=0 是导航控制器的顶部,相当于主框架中的 y=20窗户。pushViewController 调整框架的大小,请参阅文档http://developer.apple.com/library/ios/#documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html

在显示之前,视图会自动调整大小以适应导航栏和工具栏(如果存在)。

于 2012-11-10T21:30:52.867 回答