iOS 8自定义键盘应用扩展-更改方向的高度

乔恩

根据文档,更改自定义键盘的高度很简单这是Apple文档中显示的等效代码版本

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)

    let constraint = NSLayoutConstraint(item: self.view, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 0.0, constant: 400.0)
    self.view.addConstraint(constraint)
}

确实可以,但是它将高度更改为CONSTANT值,如果您更改设备的方向,则不希望这样做。在纵向模式下将键盘高度设置为400.0可能很好,但在横向模式下可能不合适。例如:iPhone 5的标准键盘视图大小为纵向320,216和横向568,162。设置恒定的高度会将键盘视图的尺寸在纵向下更改为320,400,在横向上更改为568,400(实际上是整个屏幕)。

我现在唯一的想法是创建一个字典,其中包含每种设备类型和每个方向的键盘视图大小,然后在每次设备更改方向时更新恒定的高度约束。有没有人找到更优雅的解决方案?

yr

我是通过willAnimateRotationToInterfaceOrientation:在键盘的视图控制器中实现来实现的。从理论上讲,我们应该使用new, willTransitionToTraitCollection:withTransitionCoordinator:或者理想情况下使用viewWillTransitionToSize:withTransitionCoordinator:,但至少从8.0.2版本开始,这些似乎没有在UIInputViewControllers上被调用。因此,目前最好的选择似乎是保留对heightConstraint的引用,并在实现中修改常量willAnimateRotation

我还记得,实际上要弄清楚新的方向有些困惑。我最终做了类似的事情:

let isLandscape: Bool = UIInterfaceOrientationIsLandscape(toInterfaceOrientation) 然后使用它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以为我的应用禁用自定义键盘(iOS8)吗?

NSUserDefaults不在iOS 8中的应用程序和自定义键盘之间存储值

使用iOS 8自定义键盘发送图像?

iOS 8自定义键盘按住按钮删除?

iOS 8自定义键盘在“设置”页面中更改语言

在iOS 8的自定义键盘中检测键盘类型的更改

程序化更改界面方向,但键盘方向与iOS 8上的状态栏不同

如何为自定义键盘扩展ios8使用自动建议视图?

如何检查ios8自定义键盘扩展名是否具有开放访问权限?

如何检测ios8自定义键盘扩展是否在非iPhone 6优化应用程序中运行?

在自定义iOS键盘中检测应用

如何使用自定义键盘扩展iOS 8在textDocumentProxy中设置图像?

iOS和Swift 4中自定义键盘的高度

iOS自定义键盘增加UIInputViewController的高度

无法启用iOS8自定义键盘

iOS 8自定义键盘

设备上的iOS 8自定义键盘

在iOS 8中更改formSheet的高度

应用是否有可能在iOS 8中不允许自定义键盘?

iOS 8自定义键盘自动布局问题

iOS 8更改键盘高度

自定义键盘未显示自定义键盘iOS 8

iOS 8自定义键盘自动布局键

自定义键盘扩展中的iOS8 UIImagePickerController

ios 8自定义键盘出现延迟

iOS自定义键盘扩展功能

Xamarin.iOS iOS 8 UITableView自定义单元格高度不变

自定义高度UIPickerView iOS 8

在Swift中,我如何将永久变量从主iOS应用传递到扩展程序(例如,今天的扩展程序,自定义键盘)