在我的情況下,我將如何調整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
單元緩衝區。儘管如此,所有這些的最終結果仍然有文本被剪掉。下面是我在談論的一個畫面:
任何想法?謝謝!