为IOS7布置一段可变长度的文本最简洁和语义化的方式是啥?
Posted
技术标签:
【中文标题】为IOS7布置一段可变长度的文本最简洁和语义化的方式是啥?【英文标题】: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 中的内容 此处的示例:Weird thing occurs when using sizetofit of a UITextView in ios7b)UILabel
使用 sizetofit 将 Lines 设置为 0 此处示例:Multiple lines of text in UILabel但是,我无法让其中任何一个在 IOS7 中工作(之前在 ios6.x 中使用过)。 必须有一个明确而清晰的方法来布置一个段落,这是一个看似简单的任务。具体来说,这只是一段文本,即:
不可编辑 可变长度 无论是使用情节提要还是仅使用代码,都能始终如一地工作请问, 方法是什么?
【问题讨论】:
【参考方案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 将我的换行模式设置为自动换行 确保高度限制设置为“大于或等于”【讨论】:
以上是关于为IOS7布置一段可变长度的文本最简洁和语义化的方式是啥?的主要内容,如果未能解决你的问题,请参考以下文章