2013-09-21 19 views
14

Khi tôi thử nghiệm ứng dụng của mình trên trình mô phỏng IOS7. Đôi khi tôi thấy nó lạ khi tôi sử dụng sizeToFit của một UITextView. Khung hình sau sizeToFit có vẻ đúng nhưng văn bản chỉ có thể hiển thị một phần giống như ảnh bên dưới. (Các vùng màu xám tượng trưng cho khung mới UITextView sau sizeToFit, toàn bộ câu nên "mà gây ra một mối quan hệ căng thẳng giữa hai người.")Điều kỳ lạ xảy ra khi sử dụng sizetofit của UITextView trong IOS7

enter image description here

Văn bản UITextView được thiết lập thông qua attributedText. Có vẻ như vấn đề chỉ xảy ra với một số câu và không sao cho hầu hết các câu.

Tôi đã gặp sự cố này nhiều lần và chưa thể giải quyết được. Mọi trợ giúp sẽ được đánh giá cao. Cảm ơn.

Cập nhật:

Cuối cùng tôi giải quyết vấn đề một cách xấu xí. Tôi đặt lại văn bản của textView.

NSString *text = textView.text; 
textView.text = @""; 
textView.text = text; 

Bây giờ, nó có thể hiển thị toàn bộ nội dung sau sizeToFit. Tôi nghĩ rằng nó có vẻ giống như một lỗi của iOS 7.

+1

Tăng chiều cao khung văn bản. – Romance

+0

Tôi đã đặt backGroundColor của UITextView thành màu xám. (vùng màu xám của ảnh ở trên). Chiều cao khung văn bản đủ để hiển thị toàn bộ văn bản. – echo

+0

Có thể [textView setNeedDisplay]? –

Trả lời

0

Bạn đã nhận "clip subviews" trong trình tạo giao diện chưa?

Hãy thử bỏ chọn hoặc đặt thuộc tính này thành "KHÔNG".

+0

Tôi tạo UITextView bằng cách mã hóa và không sử dụng trình tạo giao diện. Tôi cũng không thể tìm thấy thuộc tính clipSubviews. Bạn có thể cho tôi một số gợi ý không? – echo

+0

điều này có thể được thực hiện bằng mã bằng cách đặt 'clipToBounds = NO', nhưng điều này không xuất hiện để giải quyết vấn đề. – alexshafran

+0

điều này không giải quyết được sự cố –

2

Nhận thấy trong iOS7 sizeToFit đã không làm việc cũng - có lẽ là giải pháp có thể giúp bạn quá, cần thêm layoutIfNeeded

[UITEXTVIEW sizeToFit]; 
[UITEXTVIEW layoutIfNeeded]; 
[UITEXTVIEW setTextContainerInset:UIEdgeInsetsMake(0, 0, 0, 0)]; 
18

tôi đã cùng một vấn đề, nó đã cho tôi một thời gian để con số nó ra, bạn đơn giản chỉ cần thay đổi kích thước container văn bản

[textview sizeToFit]; 
[textview.textContainer setSize:textview.frame.size]; 
+0

Rất cám ơn! Tôi đã lãng phí ba giờ với điều này. – amb

+0

Tìm thấy tuyệt vời, đã cứu tôi rất nhiều thời gian. – zimmryan

+0

Cảm ơn bạn! – codepushr

0

Hãy thử điều này nó làm việc cho tôi.

[textView setTextContainerInset:UIEdgeInsetsMake(0, 0, 0, 0)]; 
Các vấn đề liên quan