如何让iphone视图布局自动调整大小和排列

时间:2012-04-03 08:33:07

标签: iphone layout uitableview xcode4.2

在我的iphone应用程序中,我在一个带框架的单元格中有两个UITextView (65,22,210,25) (65,40,210,25) 我用字符串填充这个textviews,我不知道它的长度(从数据库中检索) 我的问题在两个部分:

1-如果第一个textview超出其框架中的特定高度,它将超过第二个textview

2-当那些文本视图的高度变大时如何指定单元格的高度?我可以让细胞自动调整大小吗?

我对第一个问题的当前解决方案是在layoutSubviews中重新排列视图框架 对于第二个问题,我尝试计算textviews的新高度并将其传递给代理

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

任何更好的解决方案?

2 个答案:

答案 0 :(得分:0)

你的方法是正确的。您可以使用sizeWithFont:constrainedToSize:lineBreakMode:确定文本大小,然后在tableview:heightForRowAtIndexPath计算单元格高度(只需记住包含框架的Y值)

这里可以看到更多代码:UILabel with -[sizeWithFont:constrainedToSize:lineBreakMode] is cutting off words

答案 1 :(得分:0)

你需要这样做 在你的

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

通过一个可以保持textView适当高度的高度。 然后在

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

相应地调整textView的高度,在上述两种方法中都使用sizeWithFont:constrainedToSize:lineBreakMode:来确定所需的高度