Có tương đương với phương pháp sizeWithFont:
của NSString có thể được sử dụng để tính chiều cao của văn bản trong UITectView cho một chiều rộng nhất định không? Tất cả các phương pháp từ NSString chỉ hoạt động trên một dòng từ những gì tôi có thể nói.Kích thước NSStringWithFont: cho nhiều dòng?
Trả lời
Từ Apple's reference cho các phương pháp NSString này, bạn có thể sử dụng -sizeWithFont:constrainedToSize:
hoặc -sizeWithFont:constrainedToSize:lineBreakMode:
cho "Số liệu tính toán cho nhiều dòng văn bản".
CGSize size = [theString sizeWithFont:font
constrainedToSize:CGSizeMake(width, 100000)];
return size.height;
Đối UITextView
, tất cả các bạn phải làm là gọi -sizeToFit
trên quan điểm, và nó sẽ tự động thay đổi kích thước chiều cao của nó cho đến khi nó có thể phù hợp với tất cả các văn bản có sẵn. Tất cả những gì bạn cần làm là đặt chiều rộng của chế độ xem văn bản, đặt văn bản, sau đó gọi -sizeToFit
. Chế độ xem văn bản sẽ thay đổi kích thước chiều cao của nó vừa đủ để vừa với tất cả văn bản.
UPDATE:
Rõ ràng văn bản quan điểm chỉ co lại khi có chiều cao quá mức, nhưng họ không phát triển nếu có đủ chiều cao để hiển thị tất cả các văn bản. Ngoài ra, khi bạn gọi số -sizeToFit
, tọa độ y
của chế độ xem văn bản được đặt lại về 0.0f
. Vì vậy, đây là những gì bạn làm:
CGFloat textViewWidth = 300.0f;
CGFloat textViewPadding = 10.0f;
UITextView * textView = [[[UITextView alloc] init] autorelease];
textView.text = ...; // Really long string
textView.frame = CGRectMake(0.0f, 0.0f, textViewWidth, CGFLOAT_MAX);
[textView sizeToFit]; // Shrinks the height to fit all the text
textView.frame = CGRectMake(textViewPadding, textViewPadding,
textViewWidth, textView.frame.size.height);
[self.view addSubview:textView];
Trước tiên, bạn đặt khung hình để bạn có thể đặt chiều rộng như bạn muốn. Bạn sử dụng CGFLOAT_MAX
để hiển thị khá nhiều chiều cao vô hạn. Tiếp theo, gọi -sizeToFit
sẽ thu nhỏ chiều cao cho đến khi nó vừa với tất cả văn bản. Tuy nhiên, nó cũng reset y
phối hợp, vì vậy chúng tôi đi trước và thiết lập các khung một lần nữa để cấu hình x
và y
tọa độ trong ví dụ này, 10.0f
cho cả x
và y
-, để lại chiều rộng một mình và giữ chiều cao thiết lập để bất cứ điều gì -sizeToFit
được tính toán.
Dường như không thay đổi gì cả. – Jumhyn
Tôi đã làm rõ cách 'UITextView' thực sự hoạt động. Làm điều gì đó giống như mã mẫu tôi đã thêm vào sẽ dẫn đến chế độ xem văn bản đủ cao để vừa với tất cả văn bản. – LucasTizma
CGFLOAT_MAX đã gây ra một số sự thất bại/rách rùng rợn trên iPhone 5.1 khi UITextView từ chối phản hồi đầu tiên và UITableView cuộn trở lại đầu trang. Một số nhỏ hơn như 1024.0f (mặt dài của iPad) đã sửa nó cho tôi. –
thực sự, bạn có thể sử dụng thuộc tính contentSize.
- 1. Nhận kích thước ưa thích của flowlayout nhiều dòng
- 2. Kích thước cho ứng dụngDataCompositeValue
- 3. Nhiều hình nền có kích thước nền
- 4. Tính kích thước cần thiết cho TLabel
- 5. eglQuerySurface cho kích thước sai
- 6. Xác định kích thước hình ảnh cho nhiều kích cỡ màn hình android/mật độ
- 7. Android - nhiều trường EditText trong cửa sổ đổi kích thước
- 8. PyTables xử lý dữ liệu với kích thước lớn hơn nhiều lần kích thước bộ nhớ
- 9. Lập trình có kích thước dòng bộ nhớ cache?
- 10. Redis: Hiển thị kích thước/kích thước cơ sở dữ liệu cho các phím
- 11. Tăng kích thước kiểu danh sách kiểu dấu đầu dòng
- 12. Numpy ưa thích lập chỉ mục trong nhiều kích thước
- 13. Lập trình xác định Kích thước phông chữ cho hiển thị một dòng
- 14. Kích thước lý tưởng cho .ico
- 15. Kích thước tối đa cho StringBuffer
- 16. Kích thước phông chữ cho lập trình?
- 17. Plupload Tạo nhiều hình thu nhỏ có kích thước
- 18. Cách nhận kích thước byte của chuỗi nhiều byte
- 19. So sánh kích thước (Đếm) của nhiều danh sách
- 20. Imagemagick chuyển đổi nhiều hình ảnh thành kích thước pdf
- 21. jQuery có thể thay đổi kích thước() và nhiều cũngResizes?
- 22. Cách thay đổi kích thước nội dung JavaFX ScrollPane cho vừa với kích thước hiện tại
- 23. Kích thước iPhone UILabelWithFont:
- 24. Lấy kích thước của các kích thước trong mảng
- 25. Nhiều thừa kế: kích thước của lớp cho con trỏ ảo?
- 26. Tăng kích thước heap trong java cho weka
- 27. Tra cứu Hadoop fs cho kích thước khối?
- 28. MPI_Recv: Nhận kích thước khác với kích thước được gửi
- 29. Kích thước Java ImageIcon
- 30. Thay đổi kích thước hình ảnh cho vừa với Imageview
Đó chính xác là những gì tôi đã sử dụng để xác định chiều cao của nhiều dòng. Về cơ bản bạn chỉ cần thiết lập chiều cao có thể cho một số giá trị thực sự lớn, và lấy lại kích thước thực tế phù hợp với văn bản được bao bọc thành nhiều dòng. –
Điều này dường như trả về một giá trị 1-2 dòng quá nhỏ. Bất kỳ ý tưởng tại sao? – Jumhyn
@Jumhyn: Hãy thử phương thức '-drawInRect:' để vẽ chuỗi ra để kiểm tra xem nó có kết thúc tốt đẹp ở đúng vị trí hay không. – kennytm