i_a*_*orf 20 objective-c uitextview uilabel ios
我有一个UILabel
我需要转换为一个UITextView
原因.当我这样做时,尽管使用相同的(自定义)字体,但文本的位置并不相同.
我发现如果我设置:
textView.textContainer.lineFragmentPadding = 0;
textView.textContainerInset = UIEdgeInsetsZero;
Run Code Online (Sandbox Code Playgroud)
这使文本非常接近,但如果我叠加UITextView
在上面UILabel
,我看到文本定位与每个新行相距更远.
该UILabel
是绿的,UITextView
是黑色的.这NSParagraphStyle
用于将最小和最大线高设置为15.
我已经设置了段落样式和最小/最大行高,但我还是无法完全匹配它.我不是一个打印机,所以我不一定明白所有的字体相关条款的文件在NSLayoutManager
和NSTextContainer
和所有.
我只需要支持iOS 7及更高版本.
我不会切换到一些疯狂的基于CoreText的自定义小部件或使用一些随机的第三方库.如果必须的话,我很接近.但似乎应该有一些随机属性的组合来使它们布局相同.
Sto*_*nz2 15
我在此链接中找到了行间距的解决方案,并将其应用于您的问题.通过调整lineSpacing
财产,我设法让它非常接近.我测试了HelveticaNeue 13号,并设法让它排成一行,如下面的屏幕截图所示.
textView.textContainer.lineFragmentPadding = 0;
textView.textContainerInset = UIEdgeInsetsZero;
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineSpacing = -0.38;
NSDictionary *attrsDictionary =
@{ NSFontAttributeName: [UIFont fontWithName:@"HelveticaNeue" size:13.0f],
NSParagraphStyleAttributeName: paragraphStyle};
textView.attributedText = [[NSAttributedString alloc] initWithString:textView.text attributes:attrsDictionary];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3401 次 |
最近记录: |