如何使iphone视图布局自动调整大小和排列
在我的iphone应用程序中,我在一个带边框的单元格中有两个UITextView (65,22,210,25) (65,40,210,25) 我用不知道长度的字符串填充这个文本视图(从数据库检索) 我的问题分为两部分: 1-如果第一个文本视图超过其框架中的特定高度,它将超过第二个文本视图 2-当这些文本视图的高度越来越大时,我如何指定单元格的高度来容纳它们?我可以自动调整单元格大小吗 对于第一个问题,我目前的解决方案是在LayoutSubView中重新排列视图框架 对于第二个问题,我尝试计算文本视图的新高度,并将其传递给学员如何使iphone视图布局自动调整大小和排列,iphone,layout,uitableview,xcode4.2,Iphone,Layout,Uitableview,Xcode4.2,在我的iphone应用程序中,我在一个带边框的单元格中有两个UITextView (65,22,210,25) (65,40,210,25) 我用不知道长度的字符串填充这个文本视图(从数据库检索) 我的问题分为两部分: 1-如果第一个文本视图超过其框架中的特定高度,它将超过第二个文本视图 2-当这些文本视图的高度越来越大时,我如何指定单元格的高度来容纳它们?我可以自动调整单元格大小吗 对于第一个问题,我目前的解决方案是在LayoutSubView中重新排列视图框架 对于第二个问题,我尝试计算文
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
有更好的解决方案吗?您的方法是正确的。您可以使用
sizeWithFont:constrainedToSize:lineBreakMode:
确定文本大小,然后在tableview:heightForRowAtIndexPath计算单元格高度(只需记住包括帧的Y值)
这里可以看到更多的代码:您需要这样做
在你的
传递一个可以容纳适当高度的textView
的高度。
然后在
相应地调整textView
的高度,并在上述两种方法中使用sizeWithFont:constrainedToSize:lineBreakMode:
确定所需的高度UITextView的默认行为是,如果文本大于其当前高度,它将自动添加滚动。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath