UITableview的相对高度

时间:2009-11-05 13:03:07

标签: iphone objective-c uitableview

RootViewController使用UITableView显示数据内容。在didSelectRowAtIndexPath方法中,我调用另一个视图控制器(DetailViewController)来显示详细数据。为了显示此详细数据,我在UITableview中也使用DetailViewController。该表包含一个部分,只有一行。

现在的问题是,当我从RootViewController移动到DetailViewController时,我必须动态调整桌子的高度。如何在两个类之间设置UITableView动态的高度?

任何帮助都会得到赞赏!

2 个答案:

答案 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)中使用。如果我误解了你的问题,请告诉我。