我一直试图让这个工作好几天,我确定这是因为我对AutoLayout
的确如何运作缺乏了解。
我在UIView
中居中ViewController
。然后我UILabels
内有9 UIView
。我正在创建一个倒计时应用,每个UILabel
将保留剩余的月,日,小时,分钟或秒。我想这样做,以便当手机旋转到横向模式时,UILabels
自动调整大小并使字体变大,因为landscape
模式下的空间比portrait
中的空间大。
我一直遇到的问题是,如果我将UILabel
框架设置为portrait
模式下的文字大小,那么在手机旋转时它不会调整大小。但是,如果我使UILabel
框架足够大以在旋转手机时保持字体,那么文本实际上会自动调整大小。但是,我的问题是,如果我必须使用portrait
大小的帧,我无法在landscape
模式下排列所有内容。
我非常感谢任何关于我应该如何接近这个或最佳方式的帮助。
哦我还应该补充一点,我不想一直使用单个标签显示,因为我会在时间值下面标明时间代表的单位(小时,天,分钟,等等,除非我在每个时间单位使用单独的UILabels
,否则我无法将这些标签排在正确的值之下。
答案 0 :(得分:0)
如果您使用自动布局,则不应设置任何帧。将标签约束赋予UIView的左右边缘,并将UIView约束赋予其超视图的左右边缘。旋转时,一切都应该展开以填满更大的空间。将IB中的字体设置为横向所需的大尺寸(确保您的标签足够高于该尺寸),并将“自动缩小”菜单从“固定字体大小”更改为“最小字体大小”,这应该是自动处理字体更改。