【发布时间】:2014-08-21 10:24:58
【问题描述】:
我有一个UILabel,我需要将其转换为UITextView,因为原因。当我这样做时,尽管使用了相同的(自定义)字体,但文本的位置并不相同。
我发现如果我设置:
textView.textContainer.lineFragmentPadding = 0;
textView.textContainerInset = UIEdgeInsetsZero;
这使文本非常接近,但如果我将 UITextView 叠加在 UILabel 的顶部,我会看到文本位置随着每一行而变得更远。
UILabel 是绿色的,UITextView 是黑色的。这是使用 NSParagraphStyle 将最小和最大行高设置为 15。
我尝试过设置段落样式和最小/最大行高,但无法完全匹配。我不是打印机,所以我不一定了解NSLayoutManager 和NSTextContainer 文档中的所有字体相关术语以及所有这些。
我只需要支持 iOS 7 及更高版本。
我不会切换到一些疯狂的基于 CoreText 的自定义小部件或使用一些随机的第三方库。如果必须的话,我可以足够接近。但似乎应该有一些随机属性的组合以使它们的布局相同。
【问题讨论】:
-
我的字体是 HelveticaNeue 13,如果有帮助的话。
标签: ios objective-c uilabel uitextview