2015-04-17 15 views
6

Tôi có một UITableViewCell phân lớp con chứa một UITextView. Tôi đã thêm NSParagraphStyle làm thuộc tính cho chuỗi trong một NSTextStorage được phân lớp. Trong đoạn mã sau, tôi đã tăng không gian giữa mỗi hàng trong UITextView.Sửa đổi thuộc tính giãn cách dòng trong NSParagraphStyle gây ra độ giãn dài của con trỏ

chiều cao nhanh chóng

let paragraphStyle = NSMutableParagraphStyle() 
paragraphStyle.lineSpacing = 11 
myCustomTextStorage.appendAttributedString(NSAttributedString(string: someText, attributes: [NSParagraphStyleAttributeName: paragraphStyle])) 

Con trỏ để kéo dài cho đến chiều cao của dòng tiếp theo như hình dưới đây. Điều này chỉ xảy ra trên các hàng trước hàng cuối cùng.

enter image description here

Tôi đã xem xét một số bài viết trên SO về vấn đề này, trong đó có this post; tuy nhiên, không có giải pháp được đề xuất nào có vẻ hiệu quả với tôi.

Tôi đã đọc qua tài liệu TextKit nhưng chưa tìm thấy giải pháp nào cho vấn đề này.

Có cách nào để giảm chiều cao con trỏ không?

Trả lời

0

Công trình này được thiết kế và giống nhau trên máy Mac. Nó có nghĩa là cung cấp cho người dùng phản hồi trực quan về cả dòng họ đang ở trên và chiều cao của dòng đó. Bạn nên suy nghĩ kỹ trước khi thay đổi điều này chỉ vì bạn không thích cách nó trông.

Điều đó nói rằng, phương pháp trong bài đăng SO mà bạn đã liên kết ở trên là cách tiếp cận chung để điều chỉnh con trỏ (mặc dù có thể cần điều chỉnh nguồn gốc của rect). Điều gì về nó đã không làm việc cho bạn? Nó sẽ tốt hơn để bắt đầu từ đó.

0

câu trả lời liên quan đến vấn đề này được đưa ra trong chuỗi này. chỉ dán vào đây để tham khảo trong tương lai. iOS - UITextView lineSpacing make cursor height not same

"bạn có thể thay đổi chiều cao con trỏ bởi subclassing UITextView, sau đó ghi đè lên caretRectForPosition:. Chức năng vị trí Ví dụ:

  • (CGRect) caretRectForPosition: (UITextPosition *) vị trí { CGRect originalRect = [ siêu caretRectForPosition: vị trí]; originalRect.size.height = 18,0; trở originalRect; } "
Các vấn đề liên quan