UITableViewController最后一行被切断了

use*_*974 15 iphone objective-c uitableview ios

我遇到了一个问题,在我的UITableViewController中,最后一行总是截止一半.

如果我有20行,那么第20行将被切断; 如果我有30,那么第30个将被切断.

我试图调整contentSize的大小,以及UITableViewController的框架,但它不起作用.

有没有办法将UITableViewController调整到正确的大小?

提前致谢.

一些代码:

在另一个类中初始化它:

 settingsTable = [[SettingTableViewController alloc] init];
    settingsTable.view.frame = CGRectMake(0, 0, 320, 480);
    [self.view addSubview:settingsTable.view];
Run Code Online (Sandbox Code Playgroud)

在UITableViewController中:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return [settingsData count];
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return [[settingsData objectForKey:[NSString stringWithFormat:@"%d", section]] objectAtIndex:0];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [[[settingsData objectForKey:[NSString stringWithFormat:@"%d", section]] objectAtIndex:1] intValue];
}
Run Code Online (Sandbox Code Playgroud)

我没有在UITableViewController中的任何位置调整框架的大小

cho*_*own 16

在界面构建器中,选择UITableView,然后在"查看"选项下删除底部自动调整栏.如果它们与下面的屏幕截图不同,您可以将所有其他人保留原样.重要的是底部垂直条.

改变这个:

之前

对此:

后

或者,以编程方式执行:

settingsTable.autoresizingMask &= ~UIViewAutoresizingFlexibleBottomMargin;
Run Code Online (Sandbox Code Playgroud)

编辑(来自评论):

您的状态栏是设置为显示还是隐藏?如果显示,则将框架线更改为:

settingsTable.view.frame = CGRectMake(0, 0, 320, 460);
Run Code Online (Sandbox Code Playgroud)

或者,尝试其中任何一个,看看它们是否有用:

settingsTable.view.frame = self.view.bounds;
// or
settingsTable.view.frame = self.view.frame;
Run Code Online (Sandbox Code Playgroud)


vis*_*hnu 11

使用的UITableViewController容器控制器和半透明UI酒吧内,当设定),所以我认为这是"应用程序的一面",妥善处理其contentInset.

你可以试试

self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 44, 0);
Run Code Online (Sandbox Code Playgroud)