iOS: cambia la fuente de text para cada segmento en UISegmentController

Tengo un UISegmentedControl llamado mySegmentedControl

 @property (nonatomic) IBOutlet UISegmentedControl *mySegmentedControl; 

con 3 segmentos, y cambiaría la fuente de text para cada segmento … ¿Es posible?

Sí puedes —– Prueba esto

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

Puede usar cualquier image en lugar de text. Esto le dará una personalización flexible para la apariencia.

 NSArray *segemtImages = [NSArray arrayWithObjects:[UIImage imageNamed:@"1st.png"],[UIImage imageNamed:@"2nd.png"],[UIImage imageNamed:@"3rd.png"], nil]; UISegmentedControl *segmentControl = [[UISegmentedControl alloc] initWithItems:segemtImages]; 

No creo que eso sea posible. Sus únicas opciones son utilizar una implementación de código abierto personalizada o configurar una image personalizada con el text para cada segmento.

Modifico el código de @Anand Natan: en el guión gráfico, la primera label "1111111111111" es cambiar su ancho pnetworkingeterminado. Porque cambiar la label no cambia el tamaño del control de segmento.

  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; } } } 
 NSDictionary *textAttributes = [NSDictionary dictionaryWithObjectsAndKeys:[UIFont boldSystemFontOfSize:12], NSFontAttributeName, nil]; [_sgmntStatusUI setTitleTextAttributes:textAttributes forState:UIControlStateNormal]; 

para ios7 versiones posteriores