我一直在寻找'网络上的信息/示例......
我正在尝试将UITextView对象内的文本行间距更改为双倍间距。我以为你可以通过Core Text做到,但还没有找到解决方案!
非常感谢任何示例代码或信息!谢谢!
答案 0 :(得分:5)
你不必遍布网络。查看UITextView
的文档就足以确定该控件不支持更改行间距。
使用Core Text,您可以完全控制所绘制文本的布局。但是从头开始重写一个UITextView
- 类似的控件需要做很多工作。
答案 1 :(得分:4)
这个问题是在iOS 6之前提出的。我想为那些想要这样做的人发布更新的答案。
现在可以使用NSAttributedString在iOS 6及更高版本中完成此操作。 UITextView现在接受属性字符串作为其属性之一。您可以使用属性字符串进行各种文本操作,包括行间距。您可以为字符串的段落样式属性设置最小和最大行高。
查看NSAttributedString Class Reference了解详情。
以下是您可以做的事情的示例:
NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc] init];
paragraph.minimumLineHeight = 21.0f;
paragraph.maximumLineHeight = 21.0f;
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithString:@"Test text line 1\nTest text line 2\nTest text line 3" attributes:@{NSParagraphStyleAttributeName: paragraph}];
textView.attributedText = attributedString;
答案 2 :(得分:2)
您可以使用NSLayoutManagerDelegate。将该委托添加到ViewController或UIView类(等),然后在创建UITextView时...
yourTextView.layoutManager.delegate = self
添加此委托方法:
func layoutManager(layoutManager: NSLayoutManager, lineSpacingAfterGlyphAtIndex glyphIndex: Int, withProposedLineFragmentRect rect: CGRect) -> CGFloat {
return 5 //Whatever you'd like...
}