2009-11-05 50 views
0

RootViewController上午使用UITableView来显示数据的内容。在didSelectRowAtIndexPath方法中,我调用另一个视图控制器(DetailViewController)显示详细数据。为了显示详细数据,我还在DetailViewController中使用了UITableview。此表格包含一个部分和只有一行。UITableview的相对高度

现在的问题是,当我从RootViewController移动到DetailViewController时,我不得不动态调整表的高度。我怎样才能使两个类之间的动态变化的高度为UITableView

任何帮助将被赞赏!

回答

4

您可以实现的UITableViewDelegate方法是这样的:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return [TextToDisplay sizeWithFont:/*DESIRED_FONT*/ constrainedToSize:/*YOUR DESIRED_SIZE*/ lineBreakMode:/*DESIRED_LINEBREAKMODE*/].height; 
} 

得到不同高度。

1

这听起来像你试图重用两个不同的UIViewControllers之间的UITableView。我认为你最好拥有RootViewController拥有自己的UITableView,它使用UIView autoresizingMask属性设置为动态高度和宽度。然后,当您选择一行并在UINavigationController堆栈中推入DetailViewController时,它将拥有UITableView来显示您尝试显示的详细信息。

这种交互技术被用于其他iPhone应用程序,如邮件。如果我误解了你的问题,请告诉我。