在分段控件上动态更改字体大小

时间:2015-01-15 22:04:48

标签: objective-c ios8

我试图更改UISegmentControl上的adjustsFontSizeToFitWidth属性。

这是我到目前为止所做的事情(那是不行的):

for (id segment in [self.regionTypeSC subviews])
{
    for (id label in [segment subviews])
    {
        if ([label isKindOfClass:[UILabel class]])
        {
            UILabel *labelOfSegment = (UILabel *)label;
            labelOfSegment.numberOfLines = 1;
            labelOfSegment.minimumScaleFactor = 4.0/[UIFont labelFontSize];
            labelOfSegment.adjustsFontSizeToFitWidth = YES;

        }
    }           
}

关于这种逻辑的任何建议(逻辑上,它有什么问题吗?) - 或者走另一条道路?

1 个答案:

答案 0 :(得分:0)

经过一番乱搞之后,我发现你需要在销毁标签之前打电话给layoutifneeded。

所以工作代码如下:

for (id segment in [self.regionTypeSC subviews])
{
    for (id label in [segment subviews])
    {
        if ([label isKindOfClass:[UILabel class]])
        {
            UILabel *labelOfSegment = (UILabel *)label;

            labelOfSegment.numberOfLines = 1;
            labelOfSegment.minimumScaleFactor = 4.0/[UIFont labelFontSize];
            labelOfSegment.adjustsFontSizeToFitWidth = YES;

            [self.regionTypeSC layoutIfNeeded];
        }
    }           
}

:)