我得到了一个名为mySegmentedControl的UISegmentedControl
@property (nonatomic) IBOutlet UISegmentedControl *mySegmentedControl;
有3个段,我会更改每个段的文本字体..可能吗?
答案 0 :(得分:1)
是的,你可以-----试试这个
for(uint i=0;i<[mySegmentedControl subviews].count;i++)
{
for(UIView *view in [[[mySegmentedControl subviews] objectAtIndex:i] subviews])
{
if([view isKindOfClass:[UILabel class]])
{
if(i==0) // set First segment font
[(UILabel*)view setFont:[UIFont fontWithName:@"HelveticaNeue-Light" size:27]];
if(i==1) // set Second segment font
[(UILabel*)view setFont:[UIFont fontWithName:@"HelveticaNeue-Light" size:17]];
if(i==2) // set Third segment font
[(UILabel*)view setFont:[UIFont fontWithName:@"HelveticaNeue-Light" size:7]];
}
}
}
答案 1 :(得分:0)
我认为这是不可能的。您唯一的选择是使用自定义开源实现,或使用每个段的文本设置自定义图像。
答案 2 :(得分:0)
您可以使用任何图片而不是文字。这将为您提供灵活的外观定制。
NSArray *segemtImages = [NSArray arrayWithObjects:[UIImage imageNamed:@"1st.png"],[UIImage imageNamed:@"2nd.png"],[UIImage imageNamed:@"3rd.png"], nil];
UISegmentedControl *segmentControl = [[UISegmentedControl alloc] initWithItems:segemtImages];
答案 3 :(得分:0)
我修改了@Anand Natan的代码: 在故事板中设置第一个标签&#34; 1111111111111&#34;是改变它的默认宽度。因为更改标签不会改变segmentcontroll的大小。
for(uint i=0;i<[_menuBarTop subviews].count;i++){
for(uint j=0;j<[[[[_menuBarTop subviews] objectAtIndex:i] subviews]count];j++){
UIView* view = [[[_menuBarTop subviews] objectAtIndex:i] subviews][j];
if([view isKindOfClass:[UILabel class]]){
UILabel* label = (UILabel*)view;
if([label.text isEqualToString:@"1111111111111"]){
label.text = LANGLOC(@"videolist_category_choosen");
}else if([label.text isEqualToString:@"2"]){
label.text = LANGLOC(@"videolist_category_followed");
}
break;
}
}
}
答案 4 :(得分:-1)
NSDictionary *textAttributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont boldSystemFontOfSize:12], NSFontAttributeName, nil];
[_sgmntStatusUI setTitleTextAttributes:textAttributes forState:UIControlStateNormal];
for ios7稍后的游离