switch stepper selectedsegmentindex segmented objective control ios iphone ios7 uisegmentedcontrol

ios - stepper - El título para el segmento seleccionado en UISegmentedControl desaparece cuando se toma una captura de pantalla de forma programática



stepper ios (1)

Tengo un UISegmentedControl agregado a una UIToolbar :

UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:toolbarFrame]; toolbar.barStyle = UIBarStyleBlack; toolbar.translucent = YES; toolbar.barTintColor = [UIColor colorWithRed:0.97 green:0.97 blue:0.97 alpha:1.0]; [self.view addSubview:toolbar]; UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:@[@"Last week", @"Last month", @"All time"]; [segmentedControl setSelectedSegmentIndex:0]; [toolbar addSubview:segmentedControl];

La barra de herramientas se agrega a un controlador de vista. Cuando tomo una captura de pantalla del controlador de vista, sucede algo extraño. El título del segmento seleccionado desaparece.

La captura de pantalla se está tomando usando:

UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, YES, [[UIScreen mainScreen] scale]); [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext();

Vista renderizada:

Captura de pantalla:

Se apreciará cualquier puntero sobre dónde comenzar a buscar.


He reemplazado

[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];

Con

[self.view drawViewHierarchyInRect:self.view.bounds afterScreenUpdates:YES];

Y ahora funciona como se esperaba. Todavía no entiendo por qué sucede eso.

Tenga en cuenta que drawViewHierarchyInRect:afterScreenUpdates: es iOS 7.