Tôi có hai độ rộng có thể cho một chuỗi tôi muốn hiển thị trong một nhãn trong ô bảng và tôi cần tính toán chiều cao sao cho chiều cao của ô bảng được ghi chính xác. tuy nhiên, bất kể tôi làm gì với kích thước ràng buộc, tôi nhận được cùng chiều cao, điều đó là không chính xác trong trường hợp tôi muốn. Mã tôi đang sử dụng:Tại sao sizeWithFont: constrainedToSize: lineBreakMode: trả lại kích thước không chính xác?
CGFloat width = 300.0f;
NSString * value = @"LongText LongText LongText LongText LongText LongText";
CGSize contentSize = [value sizeWithFont: [UIFont systemFontOfSize: 14.0f]
constrainedToSize: CGSizeMake(width, CGFLOAT_MAX)
lineBreakMode: UILineBreakModeWordWrap];
Khi tôi kiểm tra biến contentSize, chiều rộng là 252 và chiều cao 36 được mong đợi. Nhưng nếu thay vì 300.0fi cắm 222.0f vào biến chiều rộng, chiều rộng là 189 nhưng chiều cao vẫn là 36, và chỉ 4 từ LongText đầu tiên được hiển thị trên 2 dòng (dòng thứ ba dường như bị cắt bỏ bằng cách nào đó trong phép tính). Có ai biết tại sao điều này xảy ra?
Nếu bạn đang sử dụng UITextView, hãy xem câu trả lời của tôi tại đây: http://stackoverflow.com/questions/2330939/sizewithfont-doesnt-give-correct-height-for-uitextview-if-there-is -a-long-strin/15408198 # 15408198 – domsom