iOS 8自定义键盘的高度限制根本不起作用
Posted
技术标签:
【中文标题】iOS 8自定义键盘的高度限制根本不起作用【英文标题】:Height constraint to iOS 8 custom keyboard not working at all 【发布时间】:2015-03-03 00:17:00 【问题描述】:我尝试使用以下代码更改键盘的高度(来自https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/ExtensibilityPG/Keyboard.html)
CGFloat _expandedHeight = 500;
NSLayoutConstraint *_heightConstraint = [NSLayoutConstraint constraintWithItem: self.keyboard attribute: NSLayoutAttributeHeight relatedBy: NSLayoutRelationEqual toItem: nil attribute: NSLayoutAttributeNotAnAttribute multiplier: 0.0 constant: _expandedHeight];
[self.keyboard addConstraint: _heightConstraint];
但它并没有改变高度。 (self.keyboard 来自 @property (strong,nonatomic) Keyboard *keyboard;)。我在键盘内部也有一个视图 (self.keyboard.view1)。
View1 在情节提要中也有约束(尾随空格到:Superview,前导空格到:Superview,底部空格到:Superview,顶部空格到:Superview)。
【问题讨论】:
【参考方案1】:您不应该将乘数设置为 1.0 而不是 0.0?
CGFloat _expandedHeight = 500;
NSLayoutConstraint *_heightConstraint = [NSLayoutConstraint constraintWithItem: self.keyboard attribute: NSLayoutAttributeHeight relatedBy: NSLayoutRelationEqual toItem: nil attribute: NSLayoutAttributeNotAnAttribute multiplier: 1.0 constant: _expandedHeight];
[self.keyboard addConstraint: _heightConstraint];
更新:
此链接似乎包含您要执行的操作的代码。在这里他们将约束添加到键盘控制器的 inputView 中。
iOS 8 Custom Keyboard: Changing the Height
【讨论】:
我改变了它,但它仍然没有改变高度。我还将self.keyboard
更改为self.view
。
文档中的注释说:“在 iOS 8.0 中,您可以在主视图最初在屏幕上绘制后随时调整自定义键盘的高度。”所以看起来你必须在屏幕上显示之后调用你的代码。你在这样做吗?
我注意到其他地方有一条评论说,在该函数中,您应该在更改之后而不是之前调用 [super updateViewConstraints]。可能不会有所作为,并且可能是您已经在做的事情。我也认为这个函数实际上被调用了?
我没有在那之前进行更改,但是当我这样做时,什么也没发生。我不确定该函数是否被调用,而且很难判断,因为您无法从键盘登录。
您必须能够在该函数的调试器中放置一个断点以查看其是否输入?以上是关于iOS 8自定义键盘的高度限制根本不起作用的主要内容,如果未能解决你的问题,请参考以下文章