通过情节提要自定义键盘高度
Posted
技术标签:
【中文标题】通过情节提要自定义键盘高度【英文标题】:Custom Keyboard Height via Storyboard 【发布时间】:2017-03-17 23:25:22 【问题描述】:所以我正在制作一个自定义键盘,但是由于某种原因它的高度是强制的。我尝试更改视图的属性和大小检查器中的一些选项,但没有帮助。
这是我迄今为止的尝试。Attempt 1 smallAttempt 1 temporary
如您所见,当我运行我的项目时,与 Apple 的 ios 键盘相比,键盘的高度变得太小了。我注意到有那么一瞬间,键盘的高度变得正常(与 Apple 的 iOS 键盘大小相同)。
然后我试图通过给键盘的包含视图一个固定的高度来强制高度,而不是仅仅将它固定到容器的顶部边框。它有效,但它覆盖了所有粗糙的屏幕,所以它完全不实用。
所以我试着给它一个相对于容器高度成比例的高度,使用不同的乘数值,比如 0.3,但它恢复到原来的行为。它还用白色背景色填充了通常由正确的 Apple iOS 键盘尺寸占用的剩余空间。
我正在使用一个垂直 StackView,其中包含 3 个带所有按钮的水平 StackView。我尝试删除 StackViews 并仅使用普通视图进行测试,但它也以同样的方式缩小,所以我想这与这是一个自定义键盘扩展这一事实有关。 至于代码,我没有编辑键盘的 ViewController 模板中的任何内容,除了按钮读取标题和插入文本的操作。
如果不清楚,我通过创建一个单视图应用程序项目进入了这个阶段,并向它添加了一个自定义键盘扩展,作为一个新的目标。我添加了一个故事板,并将主界面指向它。
关于如何实现作为容器高度函数的自定义高度的任何想法?
非常感谢
【问题讨论】:
我不明白为什么我的问题被否决了,即使这个问题从未在 Stack Overflow 上得到正确回答。 我也面临同样的问题,还没有找到解决办法。我正在寻找 gBoard 到底喜欢什么。一旦你得到解决方案,请告诉我。我的问题***.com/questions/48802380/… 【参考方案1】:我在 Reddit 上回答了你,但那是错误的。我的键盘设置与你不同。您是否尝试过在 viewDidLoad() 中添加约束
let constraint = NSLayoutConstraint(item: self.view,
attribute: .height,
relatedBy: .equal,
toItem: nil,
attribute: .notAnAttribute,
multiplier: 0.0,
constant: 500) // Set custom height here
self.view.addConstraint(constraint)
【讨论】:
由于我的学习,我还没有机会尝试任何建议,但我尝试的一件事是在 XIB 文件中设计我的键盘。令人惊讶的是,它就像一个魅力,它继承了 Apple 的 iOS 默认键盘的高度,无论设备大小和方向如何。我可能不需要更改高度,因为默认键盘的高度很好(至少在我项目的这个阶段),但至少它不像我在 Storyboard 中遇到的问题,它会自行缩小。 好吧,这实际上与键盘的 NIB 文件一起工作得很好。所以在不设置约束的情况下,键盘会继承默认的 iOS 键盘高度。这简直完美。我在 updateViewConstraints() 方法中添加了代码,在 viewDidLoad() 中添加了 NIB 的代码。运行良好并自动适应不同的方向。我仍然想知道 Storyboards 到底有什么问题:S 我将您的解决方案标记为已接受。再次感谢:)以上是关于通过情节提要自定义键盘高度的主要内容,如果未能解决你的问题,请参考以下文章