Es fácil cambiar el color de UISegmentedControl. Encontré varias soluciones como this, this site y la mejor this solution. Pero ninguno era lo que quiero.UISegmentedControl con color personalizado: error de línea de separador
He intentado crear una cosa simple y funciona muy fácil, este fue mi código: (estoy usando el iOS 4.2, no el Xcode 5.0 y 4.0.2)
id segment[3];
UISegmentedControl *segmentedControl;
- (id)init
{
NSArray *itens = [NSArray arrayWithObjects: @"Option 1", @"Option 2", @"Option 3", nil];
segmentedControl = [[UISegmentedControl alloc] initWithItems:itens];
[segmentedControl setFrame:CGRectMake(0, 0, 500, 30)];
[segmentedControl setSegmentedControlStyle:UISegmentedControlStyleBar];
[segmentedControl addTarget:self
action:@selector(segmentedControl:)
forControlEvents:UIControlEventAllEvents];
switch (type) {
case type1: [segmentedControl setSelectedSegmentIndex:0]; break;
case type2: [segmentedControl setSelectedSegmentIndex:1]; break;
case type3: [segmentedControl setSelectedSegmentIndex:2]; break;
}
for (int i=0; i<3; i++) {
//The most important trick to work, have to retain the subviews
segment[i] = [[[segmentedControl subviews] objectAtIndex:i] retain];
}
[self changeColor];
[self addSubview:segmentedControl];
return self;
}
- (void)segmentedControl:(id)sender
{
//do some thing
[self changeColor];
}
- (void)changeColor{
for (int i=0; i<3; i++) {
[segment[i] setTintColor:[UIColor lightGrayColor]];
}
int select = segmentedControl.selectedSegmentIndex;
[segment[select] setTintColor:[UIColor blueColor]];
}
Por lo tanto, crear la siguiente:
Muy bien, a continuación, hacer clic en Option 2
Wow, esto es exacly lo que quiero, así que haga clic en Option 3
Ahora el problema, esta línea azul estúpida (marcado en rojo cuadrado) entre Option 1
y Option 2
. Si hago clic en Option 1
nuevo, voy a tener:
que la línea azul aparece de nuevo. Esto significa que cada lado izquierdo en el segmento viejo cliqueado (pero no con el primero) tendrá esta línea azul. Si voy de derecha a izquierda, no sucede.
No tengo ni idea de cómo solucionar esto. ¿Cómo puedo acceder a esta línea y cambiar tu color? O tendré que usar otros códigos. Tal vez tendrán el mismo problema ...
Tuve el mismo problema que usted y pasé los días buscando el problema. Muchas gracias amigo me salvaste la vida ... !!!! – chatur