我有定製的包含UITextViews的UITableViewCells。在iOS系統的早期版本中我動態調整表格視圖單元是這樣的:在iOS 7中內容有「 n」個字符時計算UITextView內容大小height
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
// Get the appropriate content string
NSString *sectionKey = [self.orderedSectionKeys objectAtIndex:indexPath.section];
NSDictionary *infoDictionary = [[self.tableViewData objectForKey:sectionKey] objectAtIndex:indexPath.row];
NSString *textViewString = [infoDictionary objectForKey:@"description"];
// Calculate the UITextView height
UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, kInfoDefaultTableViewCellTextViewWidth, kInfoDefaultTableViewCellTextViewHeight)];
textView.font = [UIFont fontWithName:kInfoDefaultTableViewCellTextViewFont
size:kInfoDefaultTableViewCellTextViewFontSize];
textView.text = textViewString;
[textView layoutSubviews]; // Call this so that the content size is set
CGFloat height = textView.contentSize.height;
height += kInfoDefaultTableViewCellHeightBuffer;
return height;
}
這仍然是爲我工作在iOS的7,當TextView的字符串中包含新行之外的字符:\ n。然後contentSize.height太小了,就像它沒有添加新行,而是將\ n視爲字符。在實際的表格視圖中,添加了新行。
有沒有人知道我怎麼能得到適當的高度與新線?我在這個解決方案中嘗試了這種技術:https://stackoverflow.com/a/18818036/472344,但是我得到的結果與我在發佈的代碼中使用的結果相同。
嘗試在該字符串中找到@「\ n」,並將其乘以某個常數高度或某物,因爲您需要。 – Bala
http://stackoverflow.com/a/6111719/1059705 – Bala
謝謝......我一直在玩我的代碼,我已經在解決方案中找到了與工作相關的答案......我'米不知道爲什麼它以前沒有工作。我想你的解決方案也可以工作,但實施起來會有點痛苦。 – Darren