在我的项目中,我有带有关联输入键盘的textViews,它在 iOS8 下的 iPhone 6 Plus 上的横向模式下看起来很奇怪,如下所示:
似乎它有时在内部有不同的方向。
但在某些情况下,键盘可以很好地旋转,但在方向更改和其他可见错误期间仍然有白色间隙:
最后我们有普通的扩展景观视图:
问题是如何获得没有错误的扩展键盘,如下所示:
在我的项目中,我有带有关联输入键盘的textViews,它在 iOS8 下的 iPhone 6 Plus 上的横向模式下看起来很奇怪,如下所示:
似乎它有时在内部有不同的方向。
但在某些情况下,键盘可以很好地旋转,但在方向更改和其他可见错误期间仍然有白色间隙:
最后我们有普通的扩展景观视图:
问题是如何获得没有错误的扩展键盘,如下所示:
xCode5.1
在将项目从(和更早的)迁移到时要做的非常重要的事情是通过添加密钥xCode6
来修改文件Info.plist
Launch screen interface file base name
您可以将其设置为空字符串(通常是 的名称Launch xib
)。如果没有这个简单的第一行,就会出现上面屏幕截图中出现的所有问题。
没有Launch screen interface file base name
结果在兼容模式下与旧设备的标准分辨率工作。让我们在每种情况下在项目中运行以下代码
NSLog(@"bounds = %@", NSStringFromCGRect(UIScreen.mainScreen.bounds));
Launch xib
一个得到
bounds = {{0, 0}, {414, 736}} // for iPhone 6Plus
bounds = {{0, 0}, {375, 667}} // for iPhone 6
没有它,你会得到
bounds = {{0, 0}, {320, 568}}
所以,最后一种情况确实是兼容模式。
我发现了同样的问题。当我只允许我的视图控制器中的一个旋转时。当我进入屏幕内部时,我正在启用屏幕旋转,而当我离开屏幕时,我正在禁用它。除了键盘 UI 之外,一切都工作正常。所以我搜索了许多论坛以寻找解决方案,但没有发现任何有用的东西。无论如何,我试图理解这种模式并发现我使用的是 viewDidDisappear 而不是 viewWillDisappear。
在进入另一个屏幕之前禁用方向很重要。希望这会有所帮助。