修改NSParagraphStyle中的行间距属性会导致游标伸长

时间:2015-04-17 22:04:12

标签: ios swift uitextview textkit nsparagraphstyle

我有一个包含UITextView的子类UITableViewCell。我已将NSParagraphStyle作为属性添加到子类NSTextStorage中的字符串中。在下面的代码中,我增加了UITextView中每行之间的空间。

迅速

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

光标高度延长到下一行的高度,如下所示。这只发生在最后一行之前的行上。

enter image description here

我已经查看了有关此问题的SO上的几篇帖子,包括this post;但是,所提议的解决方案似乎都不适合我。

我已经阅读了TextKit文档,但没有找到解决此问题的任何方法。

有没有办法降低光标高度?

2 个答案:

答案 0 :(得分:0)

这是按设计工作的,在Mac上也是如此。它旨在为用户提供他们所在的线和该线的高度的视觉反馈。在改变之前你应该认真思考,因为你不喜欢它的样子。

也就是说,上面链接的SO帖子中的方法是调整光标的一般方法(尽管调整后的rect的原点也可能需要调整)。怎么样对你不起作用?从那里开始会更好。

答案 1 :(得分:0)

在这个帖子中给出了与此问题相关的答案。只是粘贴在这里以供将来参考。 iOS - UITextView lineSpacing make cursor height not same

"你可以通过继承UITextView来改变光标高度,然后覆盖caretRectForPosition:position函数。例如:

  • (CGRect)caretRectForPosition:(UITextPosition *)position { CGRect originalRect = [super caretRectForPosition:position]; originalRect.size.height = 18.0; return originalRect; } "