Có cách nào để có được kích thước chính xác của một NSString sử dụng:sizeWithFont không cho chiều cao chính xác cho UITextView nếu có một chuỗi dài trong văn bản được bọc
- (CGSize)sizeWithFont:(UIFont *)font forWidth:(CGFloat)width lineBreakMode:(UILineBreakMode)lineBreakMode
rằng doesnt được ném ra bởi 2 hoặc 3 trăm chuỗi ký tự. Tại thời điểm này nếu tôi cố gắng sử dụng phương pháp này trên các chuỗi dài, nó tính toán không chính xác chúng và tôi kết thúc với rất nhiều khoảng trống ở dưới cùng của UITextView.
Tôi đã thử sử dụng UILineBreakModeWordWrap và UILineBreakModeCharacterWrap.
thay đổi kích thước đang được thực hiện trong
- (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;
}
biết chính xác là bạn đang cố gắng để làm gì? Tôi nghĩ sizeWithFont: hoạt động khá tốt, có thể đó là cách bạn áp dụng thông tin đó cho UITextView. Vui lòng giải thích. –
Tôi có một ô UITableView tùy chỉnh có 2 UILabels và UITextView sử dụng sizeWithFont để tính toán kích thước cần thiết cho chiều cao ô và ô ở các thời điểm kết thúc lên trên 400 pixel quá cao. –