UISegmentcontrol aspectos que causan problemas

Necesito ayuda en mis apariencias UISegment, configuré esto en mi delegado de aplicaciones, todo funciona bien.

hasta que agregué este código para cambiar el color de mi segmento seleccionado, causó problemas.

i llamó a IBAction cuando viewDidLoad.

se supone que debe mostrar esto

pero en cambio muestra esto, sé que son los problemas de apariencia, pero ahora no estoy seguro de solucionarlo ... cuando comenté los códigos de apariencia, será la primera foto.

appdelegate

   //normal segment
    [[UISegmentedControl appearance] setTitleTextAttributes:
     [NSDictionary dictionaryWithObjectsAndKeys:
      [UIFont fontWithName:@"Rokkitt" size:20.0],UITextAttributeFont,
      [UIColor colorWithRed:75.0/255.0 green:75.0/255.0 blue:75.0/255.0 alpha:1.0], UITextAttributeTextColor, 
      [UIColor clearColor], UITextAttributeTextShadowColor,
      [NSValue valueWithUIOffset:UIOffsetMake(0, 1)], UITextAttributeTextShadowOffset,
      nil] forState:UIControlStateNormal];


    //selected segment
    [[UISegmentedControl appearance] setTitleTextAttributes:
     [NSDictionary dictionaryWithObjectsAndKeys:
      [UIFont fontWithName:@"Rokkitt" size:20.0],UITextAttributeFont,
      [UIColor whiteColor], UITextAttributeTextColor, 
      [UIColor clearColor], UITextAttributeTextShadowColor,
      [NSValue valueWithUIOffset:UIOffsetMake(0, 1)], UITextAttributeTextShadowOffset,
      nil] forState:UIControlStateHighlighted];

IBAction call

// Get number of segments
    int numSegments = [infoSegment.subviews count];

    // Reset segment's color (non selected color)
    for( int i = 0; i < numSegments; i++ ) {
        // reset color
        [[infoSegment.subviews objectAtIndex:i] setTintColor:[UIColor colorWithRed:196.0/255.0 green:223.0/255.0 blue:155.0/255.0 alpha:1]];
    }

    // Sort segments from left to right
    NSArray *sortedViews = [infoSegment.subviews sortedArrayUsingFunction:compareViewsByOrigin context:NULL];

    // Change color of selected segment
    [[sortedViews objectAtIndex:infoSegment.selectedSegmentIndex] setTintColor:[UIColor colorWithRed:51.0/255.0 green:166.0/255.0 blue:85.0/255.0 alpha:1]];
        // Remove all original segments from the control
    for (id view in infoSegment.subviews) {
        [view removeFromSuperview];
    }

    // Append sorted and colored segments to the control
    for (id view in sortedViews) {
        [infoSegment addSubview:view];
    }

Respuestas a la pregunta(4)

Su respuesta a la pregunta