Editar limites do UIView ao apresentar oculta o teclado no iOS 8
Eu apresento um pequeno "login"UIViewController
como umUIModalPresentationFormSheet
com limites personalizados. NoviewWillLayoutSubviews
método, altero o tamanho da visualização para (300.250). Isso funcionou no iOS 5/6/7, mas não funciona mais no 8.
Quando a visualização é apresentada e umUITextField
é tocado, o aplicativo fica sem resposta (sem congelar, apenas sem responder a toques). Quase como se o teclado fosse apresentado, mas não aparecendo. Métodos delegados são chamados corretamente. Se eu remover oself.view.superview.bounds = CGRectMake(0, 0, 300, 250);
deviewWillLayoutSubviews
método, o teclado funciona, mas a visualização agora é de tamanho completoUIModalPresentationFormSheet
estilo.
Isso só acontece no iOS 8, portanto, só posso assumir que é um problema com a forma como o teclado é apresentado e com a maneira como estou ocultando / redimensionando a exibição, mas não sei como resolver a solução.
Apresentando o ViewController -
UserLoginViewController *loginVC = [[UserLoginViewController alloc] initWithNibName:@"UserLoginViewController" bundle:nil];
loginVC.modalPresentationStyle = UIModalPresentationFormSheet;
loginVC.delegate = self;
[self presentViewController:loginVC animated:YES completion:nil];
Editando os limites da 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);
}