El control segmentado de barra tiene relleno en la barra de herramientas en iOS7 iPhone 5s dispositivo real

Me estoy topando con un problema. La barra de herramientas agrega relleno en el frente del dispositivo real iOS7 iphone 5s.

imágenes de error ;

sin embargo, el problema no se ve en el simulador ni en los dispositivos iOS7 iphone 4s.

Mi configuration es como

Ui confguration

¿Alguien puede señalar lo que podría estar mal? Gracias por adelantado

Incluso enfrenté el mismo problema (sin embargo, lo estaba viendo tanto en el simulador como en el dispositivo). setWidth post setWidth para limitar el ancho de cada segmento. Entonces, algo así:

 [segmentedControl setWidth:75.0f forSegmentAtIndex:0]; 

Debería resolver este problema. No estaba usando storyboards

No estoy orgulloso de esta solución, pero me la arregla:

 // in the app delegate class #define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrdenetworkingAscending) // in the view - (void)fixToolbarWidth { if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) { float adjust = -10.5f; // self.toolbar is linked to the UIToolbar self.toolbar.frame = CGRectMake(adjust, 0, [SizeHelper getSizeInOrientation].width-adjust, self.toolbar.frame.size.height); // self.segmentedControl is linked to the UISegmentedControl self.segmentedControl.frame = CGRectMake(0, 0, self.toolbar.frame.size.width+(adjust*2), self.segmentedControl.frame.size.height); } } - (void)viewDidLoad { [super viewDidLoad]; // fix on first load [self fixToolbarWidth]; } - (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { [super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration]; // resize if they rotate the device [self fixToolbarWidth]; } 

VERSIÓN ACTUALIZADA / SIMPLER

Siempre que su barra de herramientas y el controller segmentado estén configurados correctamente para escalar el ancho completo en el file .xib, puede hacer lo siguiente en viewDidLoad

 if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0")) { // use a different adjustment for iPad vs iPhone/touch float adjust = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) ? -14.0f : -9.0f; self.toolbar.frame = CGRectMake(adjust, 0, self.toolbar.frame.size.width-adjust, self.toolbar.frame.size.height); self.segmentedControl.frame = CGRectMake(0, 0, self.segmentedControl.frame.size.width+adjust, self.segmentedControl.frame.size.height); } 

También tengo el mismo problema. Lo que hago es poner el control de segmento fuera de la barra de herramientas. Es trabajo para mi introduzca la descripción de la imagen aquí

Si alguien todavía está buscando una respuesta que no incluya la fijación del ancho del segmento, debe usar Flexible Space alnetworkingedor del Segmented Control UIToolbar en la UIToolbar

introduzca la descripción de la imagen aquí