我有一个带有4个标签的视图,有时它从屏幕上消失了。
为避免这种情况,我正尝试如下更改标签文本的大小:
while DefinitionAndExampleView.frame.maxY > view.frame.size.height {
label1.font = UIFont.systemFont(ofSize: (label1.font.pointSize - 1))
label2.font = UIFont.systemFont(ofSize: (label2.font.pointSize - 1))
label3.font = UIFont.systemFont(ofSize: (label3.font.pointSize - 1))
label4.font = UIFont.systemFont(ofSize: (label4.font.pointSize - 1))
}
但是,由于4个标签的点大小不变,因此while循环保持运行并且永远不会终止。
为什么标签的磅值没有变化?
答案 0 :(得分:0)
如果要确保标签不会出现在屏幕上,则可以将AdjustFontSizeToFitWidth设置为true。这样,您的标签文本不会从屏幕上消失,只会改变大小。另外,添加宽度限制以确保标签的宽度不会扩大。
label1.adjustsFontSizeToFitWidth = true
答案 1 :(得分:0)
您正在从DefinitonAndExampleView的框架中检查maxY,也有可能框架仅在更新UI后才重新计算其大小。我强烈建议您在标签中使用约束,以免出现约束。 您可以按照苹果官方的documentation进行操作。