【发布时间】:2011-11-11 20:52:26
【问题描述】:
我有一个简单的 UINavigationController。在 init 方法中,我正在创建 UITableView 并将其添加为子视图。
- (id)init {
self = [super init];
if (self) {
NSLog(@"%@", NSStringFromCGRect(self.view.frame)); // {{0, 20}, {320, 460}}
tableView = [[UITableView alloc] initWithFrame:self.view.frame];
[self.view addSubview:tableView];
}
return self;
}
我发现我在处理新项目时总是遇到同样烦人的问题。添加的子视图最终位于导航栏下方 20 像素处。
为什么我的 self.view.frame 以 {{0, 20}, {320, 460}} 结束?我不想强制使用 CGRect 框架,我宁愿根据视图控制器的框架设置它,这样我就不会遇到动态框架更改的问题(状态栏较高的网络共享、电话等) .
更新:还注意到我的框架高度为 460。这也没有道理。就我而言,我实际上有一个标签栏,所以高度不应该减去状态栏,减去 uinavigationbar 并减去标签栏高度?
谢谢
【问题讨论】:
-
因为状态栏20像素高度
标签: ios uiviewcontroller frame