在 iPad 上使用 iPhone 应用程序时,键盘扩展只能知道 iPad 的屏幕尺寸,但实际上我应该知道它就像在 iPhone 上运行一样,并且得到像 iPhone 一样的尺寸。
我当前的代码在 iPad 上的 iPhone 应用程序中运行,如下所示:
在 iPad 上使用 iPhone 应用程序时,键盘扩展只能知道 iPad 的屏幕尺寸,但实际上我应该知道它就像在 iPhone 上运行一样,并且得到像 iPhone 一样的尺寸。
我当前的代码在 iPad 上的 iPhone 应用程序中运行,如下所示:
在viewDidAppear
中UIInputViewController
,我实际上可以得到 的帧self.inputView
,在这种情况下是 320。
但是,self.view
andself.inputView
的框架都CGRecteZero
在viewDidload
orviewWillAppear
中,这就是为什么我们应该只在[super viewDidAppear]
.
在 UIInputViewController 的 viewDidLayoutSubviews 中调用 [super viewDidLayoutSubviews] 后,可以立即查看键盘视图(self.view.frame)的实际大小。它是第一个检查大小的地方,比 viewDidAppear 快得多。
您的键盘扩展应该是通用的,如果是这样,那么您可以使用以下代码获取设备类型(iPhone/iPad)。
let isPad = UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad
您可能正在使用以下方法来获取屏幕边界
UIScreen.mainScreen().bounds.size
该方法给出了设备的整个高度,键盘扩展的宽度。
您可以通过使用上述两个条件来使用嵌套条件来解决您的问题。