UIModalPresentationFormSheet 中的 UITextView 冻结应用 iOS 10

UITextView in UIModalPresentationFormSheet freezes app iOS 10

我在视图控制器中有一个 UITextView,我使用模态形式呈现它 sheet

vc.modalPresentationStyle = UIModalPresentationFormSheet;
[AppDelegate.rootController presentViewController:vc animated:YES completion:nil];

一切都很好,直到 iOS 9.3。然后是iOS 10/10.0.1

有了这个,每次用户在文本字段内点击以调出键盘时,应用程序都会冻结。我不知道为什么。 我尝试将 UITextView 作为第一响应者。这可以很好地启动键盘,我可以键入并按下 VC 上的按钮来执行操作。 VC 和键盘都被关闭了。但同样,如果不点击按钮,如果我尝试简单地关闭键盘,应用程序会冻结。

任何人有什么想法吗?

今天早些时候遇到过类似的事情。 对我的修复如下(不确定为什么,iOS 10 中一定发生了某些变化)。

在遗留代码中:

- (void)viewWillLayoutSubviews {
    self.view.superview.bounds = CGRectMake(0,self.view.superview.bounds.origin.y, 768, 256);
    [super viewWillLayoutSubviews];
}

删除它解决了我的问题。

我将我的代码从 viewWillLayoutSubviews 移到了 viewDidLayoutSubviews。它不再冻结了。在我看来像是 iOS 10 个错误。

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    self.view.superview!.bounds = CGRectMake(0,0, 500, 300)
}