Tôi cần di chuyển văn bản mà người dùng đã nhập vào một dòng lớn UITextView
thành một nhỏ hơn (nhưng vẫn còn nhiều dòng) UITextView
*. Nếu người dùng đã nhập nhiều văn bản hơn sẽ hiển thị ở chế độ xem nhỏ hơn, tôi muốn cắt bớt văn bản sao cho văn bản phù hợp với tất cả văn bản (cắt ngắn) hiển thị. (Không phải số lớn UITextView
cũng không nhỏ hơn nên cuộn.)Độ dài chuỗi với phông chữ nhất định để phù hợp với UITextView
Cách tốt nhất để làm điều này là gì?
Tôi có thể sử dụng vòng lặp, rút ngắn chuỗi ký tự mỗi lần, sau đó sử dụng NSString
's sizeWithFont: constrainedToSize: lineBreakMode:
để tìm hiểu chiều cao chuỗi ngắn hơn cần, và sau đó so sánh với chiều cao mà tôi có sẵn trong UITextView
, kết thúc vòng lặp khi chuỗi phù hợp - nhưng điều đó có vẻ chậm và khó xử. Phải có cách tốt hơn.
Tôi muốn chỉ nói đích đến UITextView
để cắt bớt thành viên displayText của nó khi nó hiển thị nó trên màn hình, nhưng tôi đã không thể tìm cách để làm điều đó.
* Thêm ngữ cảnh về điều này, từ nhận xét tôi đã thực hiện bên dưới:
Tôi có ứng dụng ngang. Tôi thay đổi cách bố trí của chế độ xem tùy thuộc vào ảnh mà người dùng chọn. Nếu đó là ảnh phong cảnh, chú thích nhỏ hơn - chỉ là một dòng ở cuối ảnh. Nếu cô ấy chọn ảnh chân dung, thì có rất nhiều không gian tôi có thể sử dụng cho chú thích ở bên cạnh ảnh, vì vậy chú thích lớn hơn.
Nếu người dùng thay đổi hướng ảnh của mình từ dọc sang ngang, thì tôi muốn cắt bớt văn bản và sau đó cho phép cô ấy chỉnh sửa văn bản sao cho phù hợp. Tôi chỉ có thể zap nó, nhưng tôi muốn bảo vệ nó để giảm thiểu đánh máy của cô ấy.
mã này là tuyệt vời, cảm ơn, nhưng tôi đã tìm thấy hai tình huống trong đó nó không thành công: 1) nếu bạn có rất nhiều không gian trên chuỗi 2) "<" trong dòng "if (stringSize.height
SpaceDog