简体   繁体   English

动态更改UISegmentControl上的字体大小

[英]Dynamically change font size on a UISegmentControl

I'm trying to change the adjustsFontSizeToFitWidth property on a UISegmentControl. 我正在尝试更改UISegmentControl上的adjustsFontSizeToFitWidth属性。

This is what I have so far (that isn't working): 这是我到目前为止(不起作用)的内容:

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;

        }
    }           
}

Any suggestions on this logic (logically, whats wrong with it?) - or go down a separate path? 关于此逻辑的任何建议(从逻辑上讲,这有什么问题?)-还是走另外一条路?

After a bit of messing around I found out that you need to call layoutifneeded before destroying the label. 经过一番混乱后,我发现您需要在销毁标签之前调用layoutifneeded。

So working code looks like: 因此,工作代码如下所示:

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];
        }
    }           
}

:) :)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM