我如何调整UIView的大小UILabels并调整UILabels的大小以适应文本?

时间:2011-12-27 17:51:15

标签: iphone cocoa-touch ipad uiview uilabel

我有一个UIView,它应该包含UILabel,如果UILabel为nil,这些UILabel不固定,我不显示它,如果不是,我必须调整UILabel的大小以适应文本(它们可以是2 ligne并把它放在另一个UILabel下,然后我必须调整UIView容器的大小以获得这个UILabels的数量。这是我想以编程方式进行的屏幕截图:

enter image description here

4 个答案:

答案 0 :(得分:0)

您需要使用以下两个标签属性 -

  1. lineBreakMode
  2. numberOfLine
  3. 当你使用这两个属性时,你将达到你想要的效果。

答案 1 :(得分:0)

UILabels可以通过自动缩小字体来填充大量文本(请参阅Interface Builder中的最小字体大小值)。而不是标签,我会使用UITextViews。它们允许用户滚动,从而适合大量文本。要隐藏它们,请使用更改UITextViews的隐藏选择器属性。由于UITextViews的大小永远不会改变,因此您可以根据UITextView轻松计算降低UIView容器高度的程度。希望这有帮助!

答案 2 :(得分:0)

我认为您必须逐个计算标签的高度(更具体地说,是从原始高度添加的)。当然,你应该能够通过将所有标签放在一个数组中来系统地完成这项工作。

您可以使用[NSString sizeWithFont:]方法(有几个名称相似的方法)来计算高度。

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/NSString_UIKit_Additions/Reference/Reference.html

答案 3 :(得分:0)

如果要保持相同的字体大小,则可以在运行时根据文本的长度计算标签的帧大小。 See here