【发布时间】:2016-12-17 21:54:25
【问题描述】:
我已经构建了一个 iPad UI,我在其中展示了一个来自自定义 UIViewController 类的 UIPopoverPresentationController。 UI 由一个 UICollectionView 和许多单元格组成,每个单元格都包含一个按钮,该按钮将显示弹出框。弹出框将其 sourceRect 和 sourceView 属性设置为该按钮的相应属性;分别是frame和superview。
在这个弹出窗口中,有一个 UITextField。在自定义 UIViewController 初始化并呈现后第一次选择此字段时,在键盘呈现之前会有很长的延迟(大约 10 秒)。过程中没有控制台输出。随后的键盘演示流畅如丝。委托方法 popoverPresentationController:willRepositionPopoverToRect:inView 在这里根本没有被调用,而其他委托方法按预期触发。
我也尝试在相同的情况下使用旧的 UIPopoverController,产生相同的结果。
需要注意的是,UI 只是横向模式,并且弹出框会延伸到屏幕底部,因此在呈现时,弹出框会调整大小以适应键盘。我怀疑是这种调整大小导致了延迟,但我没有任何实际依据。
有没有其他人看到过这种行为和/或能够以某种方式克服它?对我来说,它闻起来像是苹果方面的一个错误,因为它只是第一次出现......但这对我并没有太大帮助。
感谢所有建议和想法。
另外,如果有足够声誉的读者可以为更新的 UIPopoverPresentationController 创建标签,那就太好了。
【问题讨论】:
标签: ios objective-c ipad uipopovercontroller first-responder