Bearbeiten der Grenzen von UIView beim Anzeigen der verborgenen Tastatur in iOS 8
Ich präsentiere ein kleines "Login"UIViewController
Als einUIModalPresentationFormSheet
mit benutzerdefinierten Grenzen. In demviewWillLayoutSubviews
-Methode ändere ich die Größe der Ansicht auf (300,250). Dies hat in iOS 5/6/7 funktioniert, funktioniert aber in 8 nicht mehr.
Wenn die Ansicht angezeigt wird und einUITextField
enn Sie auf @ tippen, reagiert die App nicht mehr (nicht eingefroren, reagiert nur nicht auf Berührungen). Fast so, als würde die Tastatur angezeigt, aber nicht angezeigt. Delegate-Methoden werden korrekt aufgerufen. Wenn ich das @ entferself.view.superview.bounds = CGRectMake(0, 0, 300, 250);
von demviewWillLayoutSubviews
Methode Die Tastatur funktioniert, aber die Ansicht ist jetzt in voller Größe.UIModalPresentationFormSheet
style.
Das passiert nur in iOS 8, daher kann ich nur davon ausgehen, dass es ein Problem mit der Art und Weise gibt, wie die Tastatur dargestellt wird und wie ich die Ansicht maskiere / deren Größe verändere. Bei der Lösung bin ich jedoch ratlo
Presenting ViewController -
UserLoginViewController *loginVC = [[UserLoginViewController alloc] initWithNibName:@"UserLoginViewController" bundle:nil];
loginVC.modalPresentationStyle = UIModalPresentationFormSheet;
loginVC.delegate = self;
[self presentViewController:loginVC animated:YES completion:nil];
Bearbeiten der Ansichtsgrenzen -
- (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);
}