5

如何增加 UITextView 中的行间距?

我希望使用默认系统字体,即尺寸为 15 的 Helvetica。

4

2 回答 2

8

声明你通过添加实现协议

<NSLayoutManagerDelegate>

到你的界面。然后,设置:

yourTextView.layoutManager.delegate = self;

然后重写这个委托方法:

- (CGFloat)layoutManager:(NSLayoutManager *)layoutManager lineSpacingAfterGlyphAtIndex:(NSUInteger)glyphIndex withProposedLineFragmentRect:(CGRect)rect
{
    return 5; // Line spacing of 19 is roughly equivalent to 5 here.
}

更新:我最近发现这也可以使用NSMutableParagraphStyle setLineSpacing:API 来完成。

为了始终提供有用的复制粘贴代码片段令人敬畏,给你!

NSMutableParagraphStyle *myStyle = [[NSMutableParagraphStyle alloc] init];
[myStyle setLineSpacing:myLineSpacingInt];
[myString addAttribute:myDesiredAttribute value:myStyle range:myDesiredRange];
[myViewElement setAttributedText:myString];

^myViewElement可以是UITextField,UILabelUITextView.

于 2015-10-01T19:23:26.203 回答
5

在 IOS6+ 中,您可以设置 UITextView 的类型属性

NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
[paragraphStyle setLineSpacing:lineSpacing];

NSDictionary *attrsDictionary = [NSDictionary dictionaryWithObject:paragraphStyle forKey:NSParagraphStyleAttributeName];

[textView setTypingAttributes:attrsDictionary];
于 2014-09-25T11:17:24.427 回答