【问题标题】:How to change font size of segmented control and prevent it from changing back to default size after changing segment如何更改分段控件的字体大小并防止其在更改分段后变回默认大小
【发布时间】:2012-03-18 11:13:37
【问题描述】:

我正在使用以下代码来实现并随后更改 UISegmented 控件中每个段的字体大小

//Set up segment control
UISegmentedControl *tempSegmentControl = [[UISegmentedControl alloc]initWithItems:[NSArray arrayWithObjects:@"Friends",@"Popular", nil]];
tempSegmentControl.frame = CGRectMake(-8, -1, 336, 30);

self.segmentControl = tempSegmentControl;
[self.segmentControl setWidth:168 forSegmentAtIndex:0];
[self.segmentControl setWidth:168 forSegmentAtIndex:1];
self.segmentControl.selectedSegmentIndex = 0;
[self.segmentControl addTarget:self action:@selector(toggleControls:) forControlEvents:UIControlEventValueChanged];
[self.segmentControl setSegmentedControlStyle:UISegmentedControlStylePlain];

//TO CHANGE FONT SIZE OF EACH SEGMENT
for (id segment in [self.segmentControl subviews]) 
{
    for (id label in [segment subviews]) 
    {
        if ([label isKindOfClass:[UILabel class]])
        {
            [label setTextAlignment:UITextAlignmentCenter];
            [label setFont:[UIFont boldSystemFontOfSize:14]];
        }
    }           
}

这最初是有效的(见下面的截图)

但是,当我点击“流行”标签(非活动标签)后,字体大小似乎恢复到原来的默认字体大小

如何防止字体大小变回默认大小?

【问题讨论】:

  • 不能在Interface Builder中设置初始字体吗?

标签: objective-c ios uisegmentedcontrol font-size


【解决方案1】:

http://chris-software.com/index.php/tag/uisegmentedcontrol/

看看这个答案

codeButton.segmentedControlStyle = UISegmentedControlStyleBar;
codeButton.momentary = YES;

【讨论】:

    【解决方案2】:

    可能不是最干净的方法,但如果您在 UISegmentedControl 控件的“值已更改”事件上运行 for 循环,它就可以工作。

    更新: 这是正确的方法,适用于 iOS 5 及更高版本:

    NSDictionary *textAttributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont boldSystemFontOfSize:14], UITextAttributeFont, nil];
    [self.segmentControl setTitleTextAttributes:textAttributes forState:UIControlStateNormal];
    

    【讨论】:

    • UITextAttributeFont 后来在 iOS7 上被弃用。请改用 NSFontAttributeName。
    猜你喜欢
    • 2016-05-31
    • 2012-06-12
    • 1970-01-01
    • 2010-12-28
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-10
    • 1970-01-01
    相关资源
    最近更新 更多