【问题标题】:UISegmentedControl and localized stringsUISegmentedControl 和本地化字符串
【发布时间】:2017-07-11 14:20:11
【问题描述】:

我有一个带有 3 个段的 UISegmentedControl。英语字符串非常适合,但西班牙语字符串稍长一些,不适合。

为字符串动态操作字体大小以适应段大小的正确过程是什么?有没有类似于UILabelminimumFontScale 属性的东西?

【问题讨论】:

标签: ios objective-c localization uisegmentedcontrol


【解决方案1】:

试试这个 您不需要设置任何最小字体大小。如果需要,它将自动更改字体大小以显示标题。

NSArray *itemArray = [NSArray arrayWithObjects: @"Title1 testing font size", @"Title2", @"Titl3",nil];
    UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:itemArray];
    segmentedControl.frame = YOUR_FRAME;
    [segmentedControl addTarget:self action:@selector(segmentControlClicked:) forControlEvents:UIControlEventValueChanged];
    [self.view addSubview:segmentedControl];
    for (id segment in [segmentedControl subviews])
    {
        for (id label in [segment subviews])
        {
            if ([label isKindOfClass:[UILabel class]])
                [label setAdjustsFontSizeToFitWidth:YES];

        }           
    }

【讨论】:

    【解决方案2】:

    试试这个

    [_segmentedControl.subviews enumerateObjectsUsingBlock:^(UIView * obj, NSUInteger idx, BOOL *stop) {
        [obj.subviews enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
            if ([obj isKindOfClass:[UILabel class]]) {
                UILabel *lblCaption = (UILabel *)obj;
                lblCaption.minimumFontSize=10.0f;
    //OR
                lblCaption.minimumFontSize = 0.5f;
            }
        }];     
    }];
    

    【讨论】:

    • 对于 iOS6 将 'minimumFontSize' 更改为 --> "lblCaption.minimumScaleFactor=.5f"
    • @mtb 感谢您的建议。我已经相应地更新了答案。
    猜你喜欢
    • 2012-10-04
    • 1970-01-01
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多