Objective c UITableView第一行被切断

Objective c UITableView第一行被切断,objective-c,uitableview,Objective C,Uitableview,是什么导致导航控制器中表格的第一行被定位,使其部分位于导航控制器之下 我似乎无法让它从上到下显示整排;这可能看起来很小,但显然是不正确的,我觉得它没有吸引力 TableViewController完全以代码形式添加到导航控制器: SettingsRootController*settings=[[SettingsRootController alloc] initWithStyle:UITableViewStylePlain]; self.settingsView=[[[UIN

是什么导致导航控制器中表格的第一行被定位,使其部分位于导航控制器之下

我似乎无法让它从上到下显示整排;这可能看起来很小,但显然是不正确的,我觉得它没有吸引力

TableViewController完全以代码形式添加到导航控制器:

     SettingsRootController*settings=[[SettingsRootController alloc] initWithStyle:UITableViewStylePlain];
    self.settingsView=[[[UINavigationController alloc] initWithRootViewController:settings]autorelease];
    [settings release];
设置RootController
是UITableViewController的子类


以编程方式添加的
UINavigationController
似乎是一个常见问题-请参阅

基本上,您应该做的是在将
UINavigationController
作为子视图添加到任意位置之前设置
frame
属性。在对上述问题的公认答案中,还有一个建议将
UINavigationController
的框架更改为:

nav.view.frame = CGRectMake(nav.view.frame.origin.x, nav.view.frame.origin.y - 20,
                      nav.view.frame.size.width, nav.view.frame.size.height);

唯一有效的方法是手动将导航控制器内的表格视图向下移动10像素,但仅在iPhone上,而不是在iPad上,因为iPad上没有对齐问题,并且在iPad上移动10像素会产生间隙。这显然是某种导航控制器错误,因为在其他线程中还存在其他奇怪的问题

 CGPoint tableorigin=CGPointMake(0,ISIPAD?0:10);

我们需要知道(或看到)您是如何创建tableview的,否则我们只能猜测。锡伯?代码?我更新了我的问题,谢谢这已经发生在我身上好几次了。请检查设置查看帧大小(或)显式设置设置
frame
。UINavigationController也是在代码中创建的吗?您是否将其添加为某个子视图?是否为tableView设置了autoresizingMask?嗯,这里描述的问题与我的有点不同。导航控制器为我显示在正确的位置;是表格视图没有与导航栏底部正确对齐这很奇怪,导航栏覆盖了第一个表格单元格的一部分,建议的修复方案对我有效。然而,所覆盖的区域更像是半个电池(~20px),而不像你的电池(~10px)。