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.