gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 22:16:47 25 4
gpt4 key购买 nike

根据 documentation 更改自定义键盘的高度很简单.这是 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 的标准键盘 View 尺寸为纵向 320,216 和横向 568,162。设置恒定高度会将键盘 View 大小更改为纵向 320,400 和横向 568,400(实际上是整个屏幕)。

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

最佳答案

我通过在键盘的 View Controller 中实现 willAnimateRotationToInterfaceOrientation: 来完成此操作。理论上我们应该使用新的
willTransitionToTraitCollection:withTransitionCoordinator:
或理想情况下可能是 viewWillTransitionToSize:withTransitionCoordinator:,但这些似乎不会在 UIInputViewControllers 上调用,至少从 8.0.2 开始是这样。因此,目前最好的选择似乎是保留对您的 heightConstraint 的引用,并修改 willAnimateRotation 实现中的常量。

我还记得在实际确定新方向时遇到了一些问题;我最终做了类似的事情:

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

关于iOS 8 自定义键盘应用程序扩展 - 更改方向高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25962551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com