当方向更改时,如何调整多个标签的大小以自动适应UIView内部

时间:2014-05-02 03:02:42

标签: ios objective-c uiview uilabel autolayout

我一直试图让这个工作好几天,我确定这是因为我对AutoLayout的确如何运作缺乏了解。

我在UIView中居中ViewController。然后我UILabels内有9 UIView。我正在创建一个倒计时应用,每个UILabel将保留剩余的月,日,小时,分钟或秒。我想这样做,以便当手机旋转到横向模式时,UILabels自动调整大小并使字体变大,因为landscape模式下的空间比portrait中的空间大。

我一直遇到的问题是,如果我将UILabel框架设置为portrait模式下的文字大小,那么在手机旋转时它不会调整大小。但是,如果我使UILabel框架足够大以在旋转手机时保持字体,那么文本实际上会自动调整大小。但是,我的问题是,如果我必须使用portrait大小的帧,我无法在landscape模式下排列所有内容。

我非常感谢任何关于我应该如何接近这个或最佳方式的帮助。

哦我还应该补充一点,我不想一直使用单个标签显示,因为我会在时间值下面标明时间代表的单位(小时,天,分钟,等等,除非我在每个时间单位使用单独的UILabels,否则我无法将这些标签排在正确的值之下。

1 个答案:

答案 0 :(得分:0)

如果您使用自动布局,则不应设置任何帧。将标签约束赋予UIView的左右边缘,并将UIView约束赋予其超视图的左右边缘。旋转时,一切都应该展开以填满更大的空间。将IB中的字体设置为横向所需的大尺寸(确保您的标签足够高于该尺寸),并将“自动缩小”菜单从“固定字体大小”更改为“最小字体大小”,这应该是自动处理字体更改。