Zhe*_*hen 4 objective-c font-size uisegmentedcontrol ios
我使用以下代码实现并随后更改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]];
}
}
}
Run Code Online (Sandbox Code Playgroud)
这最初有效(见下面的截图)

但是,在我单击"常用"选项卡(非活动选项卡)后,字体大小似乎返回到其原始默认字体大小

我该怎么做才能防止字体大小变回默认大小?
小智 9
可能不是最干净的方法,但是如果你在UISegmentedControl控件的'value Changed'事件上运行for循环,它就可以工作.
更新: 这是正确的方法,可在iOS 5及更高版本中使用:
NSDictionary *textAttributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont boldSystemFontOfSize:14], UITextAttributeFont, nil];
[self.segmentControl setTitleTextAttributes:textAttributes forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7379 次 |
| 最近记录: |