在RootViewController
使用UITableView显示数据内容。在didSelectRowAtIndexPath
方法中,我调用另一个视图控制器(DetailViewController
)来显示详细数据。为了显示此详细数据,我在UITableview
中也使用DetailViewController
。该表包含一个部分,只有一行。
现在的问题是,当我从RootViewController
移动到DetailViewController
时,我必须动态调整桌子的高度。如何在两个类之间设置UITableView
动态的高度?
任何帮助都会得到赞赏!
答案 0 :(得分:4)
您可以实现类似于:
的UITableViewDelegate方法- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return [TextToDisplay sizeWithFont:/*DESIRED_FONT*/ constrainedToSize:/*YOUR DESIRED_SIZE*/ lineBreakMode:/*DESIRED_LINEBREAKMODE*/].height;
}
获得可变的高度。
答案 1 :(得分:1)
听起来您尝试在两个不同的UITableView
之间重复使用UIViewControllers
。我认为最好让RootViewController
拥有它自己的UITableView
,使用UIView autoresizingMask
属性将其设置为动态高度和宽度。然后,当您选择一行并按下DetailViewController
堆栈中的UINavigationController
时,它会拥有UITableView
来显示您尝试显示的详细信息。
这种交互技术在其他iPhone应用程序(如Mail)中使用。如果我误解了你的问题,请告诉我。