Есть ли способ получить правильный размер NSString, используя:
- (CGSize)sizeWithFont:(UIFont *)font forWidth:(CGFloat)width lineBreakMode:(UILineBreakMode)lineBreakMode
который не будет сброшен на 2 или 3 сотни символьных строк. На данный момент, если я попытаюсь использовать этот метод для этих длинных строк, он неправильно вычисляет их, и я получаю много пробелов в нижней части UITextView.
Я пробовал использовать UILineBreakModeWordWrap и UILineBreakModeCharacterWrap.
изменение размера выполняется в
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
CGFloat result = 44.0f;
NSString* text = nil;
CGFloat width = 0;
CGFloat tableViewWidth;
CGRect bounds = [UIScreen mainScreen].bounds;
tableViewWidth = bounds.size.width;
width = tableViewWidth - 150;
text = stringWithLongWords;
if (text) {
CGSize textSize = { width, 20000.0f };
CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:10.0f] constrainedToSize:textSize lineBreakMode:UILineBreakModeWordWrap];
size.height += 50.0f;
result = MAX(size.height, 44.0f+30.0f);
}
return result;
}