【问题标题】:What is the most concise and semantic way to lay out a paragraph of text of variable length for IOS7?为IOS7布置一段可变长度的文本最简洁和语义化的方式是什么?
【发布时间】:2013-10-13 13:01:38
【问题描述】:
据我所知,段落布局可以通过以下方式完成:
a) UITextView
- 调整 textview 的大小以适应 didlayoutsubviews 中的内容
b)UILabel
- 使用 sizetofit 将 Lines 设置为 0
但是,我无法让其中任何一个在 IOS7 中工作(之前在 ios6.x 中使用过)。 必须有一个明确而清晰的方法来布置一个段落,这是一个看似简单的任务。具体来说,这只是一段文本,即:
- 不可编辑
- 可变长度
- 无论是使用情节提要还是仅使用代码,都能始终如一地工作
请问, 方法是什么?
【问题讨论】:
标签:
ios
objective-c
uilabel
uitextview
【解决方案1】:
UITextView 在 iOS 7 上运行良好。如果你不使用自动布局,那么在 UITextView 对象上调用 sizeToFit 就足够了。如果您确实使用自动布局,则对 UITextView 对象进行高度限制,并按以下方式在代码中设置其 constant:
CGSize sizeThatFits = [self.textView sizeThatFits:CGSizeMake(yourAvailableWidth, MAXFLOAT)];
self.textViewHeightConstraint.constant = ceilf(sizeThatFits.height);
我最近看到了UILabel 的一些问题,例如Lines missing from tall UILabel when embedding NSTextAttachment
【解决方案2】:
使用 UILabel,我能够通过以下方式完成这项工作:
- 将行设置为 0
- 将我的换行模式设置为自动换行
- 确保高度限制设置为“大于或等于”