iOS:调整所有UILabel字体的大小以匹配

时间:2012-11-19 20:53:29

标签: ios cocoa-touch uilabel autoresize

我有几个充满文字的UILabel。

UILabels中的所有字体都设置为自动收缩。

如果其中一个UILabel包含太多文本(并且必须自动调整大小),那么如何更改剩余的UILabels字体大小以匹配已调整大小的文本?

在我的代码结束时,我使用了以下内容:

 if (self.label.font.pointSize < 16){

        labelTwo.font = [UIFont fontWithName:@"Noteworthy-Bold" size:self.label.font.pointSize];

我的默认字体大小是16,所以我正在检查字体大小是否已减少。

2 个答案:

答案 0 :(得分:2)

我现在不在我的Mac上,因此我无法为您编写实际代码,但我可以为您编写代码,以便您知道要朝哪个方向发展。

Create a variable to store the smallest font size.
Foreach for each UILabel in the view.
Get the font size.
Check the font size against the smallest known so far.
    If the font size is smaller than the smallest known, save it.
    Else, disregard.
After all UILabels in view have been checked go back through them, and set the font size to that of the saved value

答案 1 :(得分:0)

这就是我实现它的方式

CGFloat fontSize = self.label1.font.pointSize;
CGFloat fontSize1 = self.label2.font.pointSize;
CGFloat fontSize2 = self.label3.font.pointSize;
NSArray *numbers = @[[NSNumber numberWithFloat:fontSize],[NSNumber numberWithFloat:fontSize1],[NSNumber numberWithFloat:fontSize2]];
float xmax = -MAXFLOAT;
float xmin = MAXFLOAT;
for (NSNumber *num in numbers) {
    float x = num.floatValue;
    if (x < xmin) xmin = x;
    if (x > xmax) xmax = x;
    NSLog(@"lowest number = %f",xmin);
相关问题