iOS UITextView:在不更改光标高度的情况下增加行距



我已经把头撞在墙上太久了。我想创建双倍行距的输入文本,光标与字体的行高保持一致。

我尝试了许多方法:

  • Using NSLayoutManager's delegate -layoutManager:lineSpacingAfterGlyphAtIndex:withProposedLineFragmentRect:
  • 使用属性字符串并设置 NSParagraphStyle 的 -lineHeightMultiple 和 -lineSpacing 属性
  • 使用自定义 NSTextStorage,该存储还尝试设置该段落样式。

。但它们最终都会得到一个太大的克拉,要么延伸到上面的空白处,要么延伸到每行下面的空白处。

关于我接下来可以尝试什么来实现此布局的任何想法?

如果您已经有所需的布局,并且问题只是插入符号的大小,您可以简单地子类化 UITextView 并覆盖以下方法:

- (CGRect)caretRectForPosition:(UITextPosition *)position
{
    CGRect *originalRect = [super caretRectForPosition:position];
    // Resize the rect. For example make it 75% by height:
    originalRect.size.height *= 0.75;
    return originalRect;
}

这将解决问题,这适用于ios6和7

相关内容

最新更新