2017-03-17 57 views
0

因此,我正在制作自定义键盘,但其高度因某种原因被强制。我试图改变视图的属性和大小检查器中的一些选项,但它从来没有帮助。通过故事板自定义键盘高度

这是我迄今为止的尝试。
Attempt 1 small
Attempt 1 temporary

正如你所看到的,当我跑我的项目,相比苹果的iOS键盘键盘的高度变得太小。我注意到,短暂的一秒钟,键盘的高度就变得正常了(与Apple的iOS键盘相同)。

然后,我试图通过给键盘的包含视图一个固定的高度来强制高度,而不是将它固定到容器的顶部边框。它的工作,但它涵盖了所有粗糙的屏幕,所以它是完全不实际的。

所以我试着给它一个与容器高度成比例的高度,用不同的乘数值(如0.3),但它恢复了原来的行为。它还填充了通常由正确的苹果iOS键盘尺寸占据的剩余空间,并具有白色背景颜色。

我正在使用垂直StackView,其中包含3个水平StackViews与所有按钮。我尝试删除堆栈视图和测试只是一个普通的看法,但它也缩小了相同的方式,所以我想这是一个事实,这是一个自定义的键盘扩展。 至于代码,我没有编辑键盘的ViewController的模板中的任何东西,除了按钮的动作读取他们的标题和插入文本。

如果不清楚,我通过创建一个单一视图应用程序项目到达了这个阶段,并为它添加了一个自定义键盘扩展,作为一个新的目标。我添加了一个Storyboard,并将其主界面指向它。

关于如何实现可以作为容器高度的函数的自定义高度的任何想法?

非常感谢

+0

我不明白为什么我的问题了下来投连寿这个问题从来没有正确回答堆栈溢出。 – Tarek

回答

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) 
+0

我还没有机会尝试任何建议,但因为我的学习,但我尝试的一件事是在XIB文件中设计我的键盘。令人惊讶的是,它像一个魅力,它继承了苹果的iOS默认键盘的高度,无论设备的大小和方向。我可能不需要改变高度,因为默认键盘的高度是好的(至少在我的项目的这个阶段),但至少它的工作方式不同于我在Storyboard中它自己缩小的问题。 – Tarek

+0

好吧,这实际上与键盘的NIB文件一起工作良好。因此,如果不设置约束,键盘将继承默认的iOS键盘高度。这只是完美的作品。 我在updateViewConstraints()方法中添加了代码,并在viewDidLoad()中添加了NIB的代码。运作良好,并自动适应不同的方向。 我仍然想知道故事板究竟有什么问题:S我的解决方案标记为Accepted。再次感谢 :) – Tarek