我有一个UIView,它应该包含UILabel,如果UILabel为nil,这些UILabel不固定,我不显示它,如果不是,我必须调整UILabel的大小以适应文本(它们可以是2 ligne并把它放在另一个UILabel下,然后我必须调整UIView容器的大小以获得这个UILabels的数量。这是我想以编程方式进行的屏幕截图:
答案 0 :(得分:0)
您需要使用以下两个标签属性 -
当你使用这两个属性时,你将达到你想要的效果。
答案 1 :(得分:0)
UILabels可以通过自动缩小字体来填充大量文本(请参阅Interface Builder中的最小字体大小值)。而不是标签,我会使用UITextViews。它们允许用户滚动,从而适合大量文本。要隐藏它们,请使用更改UITextViews的隐藏选择器属性。由于UITextViews的大小永远不会改变,因此您可以根据UITextView轻松计算降低UIView容器高度的程度。希望这有帮助!
答案 2 :(得分:0)
我认为您必须逐个计算标签的高度(更具体地说,是从原始高度添加的)。当然,你应该能够通过将所有标签放在一个数组中来系统地完成这项工作。
您可以使用[NSString sizeWithFont:]方法(有几个名称相似的方法)来计算高度。
答案 3 :(得分:0)
如果要保持相同的字体大小,则可以在运行时根据文本的长度计算标签的帧大小。 See here