当键盘出现在键盘高度时,我试图改变按钮的底部常数,增加8点。
但是以下
if let keyboardHeight = (n.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
saveButtonBottomConstant.constant = keyboardHeight + 8.0
}
转换为Swift 3时,在Xcode 8.0 beta 6中给出了以下错误
二进制运算符'+'不能应用于'CGRect'和'Double'类型
我理解为什么会发生这种情况,但是我的尝试导致的错误多于解决问题。
如何在Swift 3中简单地将Double添加到CGRect值?
答案 0 :(得分:3)
UIKeyboardFrameBeginUserInfoKey
以屏幕坐标返回键盘的框架,因此keyboardHeight
为CGRect
类型。
您可以按如下方式获得键盘的高度:
if let keyboardFrame = (n.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
saveButtonBottomConstant.constant = keyboardFrame.height + 8.0
}
答案 1 :(得分:2)
您的代码无法正常运行,因为您尝试将Double
(8.0)添加到CGRect
(keyboardHeight
)。当您使用Swift 3时CGRectGetHeight()
不可用,因此您应该使用它:
saveButtonBottomConstant.constant = keyboardHeight.height + 8.0
答案 2 :(得分:0)
您应该有2个Double值或2个GCRect值。将其中一个更改为另一个,然后重试。