Edición de límites de UIView al presentar el teclado oculto en iOS 8
Presento un pequeño "inicio de sesión"UIViewController
como unUIModalPresentationFormSheet
con límites personalizados En elviewWillLayoutSubviews
método, cambio el tamaño de la vista a (300,250). Esto ha funcionado en iOS 5/6/7 pero ya no funciona en 8.
Cuando se presenta la vista y unUITextField
se toca, la aplicación deja de responder (no se congela, simplemente no responde a los toques). Casi como si el teclado se presentara pero no apareciera. Los métodos delegados SON llamados correctamente. Si elimino elself.view.superview.bounds = CGRectMake(0, 0, 300, 250);
desde elviewWillLayoutSubviews
El teclado funciona, pero la vista ahora es de tamaño completoUIModalPresentationFormSheet
estilo.
Esto solo ocurre en iOS 8, por lo que solo puedo suponer que es un problema con la forma en que se presenta el teclado y la forma en que estoy enmascarando / cambiando el tamaño de la vista, pero no estoy seguro de la solución.
Presentando ViewController -
UserLoginViewController *loginVC = [[UserLoginViewController alloc] initWithNibName:@"UserLoginViewController" bundle:nil];
loginVC.modalPresentationStyle = UIModalPresentationFormSheet;
loginVC.delegate = self;
[self presentViewController:loginVC animated:YES completion:nil];
Edición de los límites de la vista:
- (void)viewWillLayoutSubviews {
[super viewWillLayoutSubviews];
self.view.superview.layer.cornerRadius = 10.0;
self.view.superview.layer.masksToBounds = YES;
self.view.superview.bounds = CGRectMake(0, 0, 300, 250);
}