在我的情况下,我将如何调整UITableViewCell
以适应它包含的UITextView
的高度?如何根据子视图正确调整父视图的大小? (例如,包含UITextView的UITableViewCell)
我目前正在努力实现这个使用下面的代码:
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
// init the font that we use
UIFont *font = [UIFont fontWithName:@"SourceSansPro-Regular" size:16];
if (indexPath.section == 0) {
// get the text size of the thread
CGSize textSize = [_thread.text sizeWithFont:font constrainedToSize:CGSizeMake(280, CGFLOAT_MAX) lineBreakMode:UILineBreakModeWordWrap];
return textSize.height + 20;
}
// default
return 60;
}
我觉得如果我能得到这个方法访问UITableViewCell
,然后我可以使用UITextView
的contentSize
财产在其中,并返回。但我认为在执行流程的这一点上这是不可能的。
我不能只是调整缓冲区,因为它不会缩放get size函数返回的文本大小。文字越短,缓冲区的大小越大。
这是调整UITableViewCell
的高度,但它没有在其中显示UITextView
。我已经在sizeWithFont:constrainedToSize:lineBreakMode:
方法中指定UITextView
的宽度,即280
。我已经指定我希望基本上没有最大高度,以便它可以使用常量来尽可能多地进行文字包装。我将20
单元的缓冲区添加到方法调用的结果高度,因为在UITextView
之上有一个20
单元缓冲区,在我的Storyboard
中,我还想在其下面有一个20
单元缓冲区。尽管如此,所有这些的最终结果仍然有文本被剪掉。下面是我在谈论的一个画面:
任何想法?谢谢!