从uisscreen .main.bounds中确定UIInputViewController的安全区域



我正在用UIInputViewController制作一个自定义键盘。

我想在一个矩形内显示一个xib布局。现在,我确定了正确的CGRect的大小,我把我的xib布局,从UIScreen.main.bounds。但是,当我将iPhone 11旋转到横向方向时,UIScrren.main.bounds.width比安全区域宽度长。结果,我的矩形太宽,部分没有显示。iphone11屏幕

如何确定安全边界?我想用UIScreen.main.safeArea之类的东西代替UIScreen.main.bounds,但似乎我必须做一些比这更复杂的事情。

我应该只用UIScreen.main.nativeBounds吗?如果是这样,我不确定如何从像素转换为点。

首先,如果你正在检测高度,我不确定你会需要什么,因为你不使用键盘视图中的最大高度。但是要检测最大宽度,这似乎是您链接的屏幕帽中的问题,请尝试以下操作:

self.view.bounds.size.width代替UIScreen.main.bounds来检测宽度。这似乎是由操作系统设置的,并将反映操作系统设置后您可以使用的最大宽度。当第一次显示屏幕时,我最早可以检测到这个值是在viewWillLayoutSubviews()中。在屏幕被旋转的情况下,我最早可以检测到新的尺寸,在旋转之后,是在viewLayoutMarginsDidChange()事件。

由于viewLayoutMarginsDidChange()事件也在视图显示时被触发,因此您可以在两种情况下使用该事件。

相关内容

  • 没有找到相关文章

最新更新