我的应用程序中有一个tableview,我在NIB中构建了一个tableview,我通过Size Inspector将高度设置为68.
我也在我的代码中执行以下操作。
- (void) viewDidAppear:(BOOL)animated
{
self.tableView.frame = CGRectMake(0,0,320,68);
self.tableView.scrollEnabled = NO;
}
- (void)viewDidUnload
{
[super viewDidUnload];
}
- (void)awakeFromNib
{
[self.tableView setBackgroundColor:[UIColor clearColor]];
self.tableView.rowHeight = 68;
}
当我在模拟器或iPhone中运行应用程序时它看起来很好,因为该表只有68px高。如果我关闭应用程序(转到主屏幕)并重新打开它,表格不再只有68像素高,但它会占用整个屏幕。
我似乎无法让它一直保持68px?
除了我上面的问题,还有一个方法(awakeFromNib,ViewDidAppear等...),你应该始终只设置对象的大小或位置?
答案 0 :(得分:1)
使用此方法设置高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 68;
}
答案 1 :(得分:0)
将您的代码放入viewWillApper中,这可能有效!
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.tableView.frame = CGRectMake(0,0,320,68);
self.tableView.scrollEnabled = NO;
[self.tableView setBackgroundColor:[UIColor clearColor]];
self.tableView.rowHeight = 68;
}
答案 2 :(得分:0)
找到我自己的解决方案。每个Apple的解决方案是,如果您使用UITableView和其他子视图,则不要使用uitbalviewcontroller,因为tableview将始终尝试使用整个屏幕。解决方案是使用uiview作为uiviewcontroller的基础,然后在uiview中放置一个uitableview,并为uiviewcontroller提供管理tableview所需的委托方法。
所以请记住,如果你不想要一个完整的高度uitableview,那么不要使用带有菜单栏的uitableviewcontroller。