我有两个UILabel,我需要调整字体大小才能正确适合文本(即在较小的旧设备中)。
使用.adjustsFontSizeToFitWidth
属性很容易解决这个问题,但事实是,因为UILabels
彼此靠近并传达类似的信息,我希望它们具有相同的字体大小(和{ {1}}将独立调整它们。
所以,我想要做的就是以某种方式(这是我需要帮助的地方)计算两个标签需要的字体大小,并在两者上使用最小的字体。
关于如何做到这一点的任何想法?两个标签都是多行(2行),并且它们总是具有相同的大小。
提前致谢。
答案 0 :(得分:0)
你可以做的是将.adjustsFontSizeToFitWidth属性设为true,获取最小的字体,然后比较两个宽度并将两者的宽度设置为最小的宽度。伪代码中的示例:
.adjustsFontSizeToFitWidth = true
var fontSizeOne = labelOne.fontSize
var fontSizeTwo = labelTwo.fontSize
if(fontSizeOne < fontSizeTwo)
{
labelTwo.fontSize = labelOne.fontSize
}
else
{
labelOne.fontSize = labelTwo.fontSize
}
答案 1 :(得分:0)
使用min
函数可以缩短@ Will的答案:
labelOne.adjustsFontSizeToFitWidth = true
labelTwo.adjustFontSizeToFitWidth = true
var fontSizeOne = labelOne.font.pointSize
var fontSizeTwo = labelTwo.font.pointSize
var min = min(fontSizeOne, fontSizeTwo)
labelOne.font = UIFont.systemFont(ofSize: min))
labelTwo.font = labelOne.font