2016-09-05 50 views
1

我試圖改變鍵盤的底部常數,當鍵盤出現在鍵盤的高度並增加8點時。二元運算符'+'不能用於鍵入'CGRect'和'雙'

然而以下

if let keyboardHeight = (n.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue { 

    saveButtonBottomConstant.constant = keyboardHeight + 8.0 
} 

轉換爲夫特3

二進制運算符「+」不能被應用到輸入「的CGRect」和'時給我以下錯誤在Xcode 8.0的β6 Double'

我明白爲什麼會發生這種情況,但是我的嘗試造成了比解決問題更多的錯誤。

如何在Swift 3中簡單地將一個Double添加到CGRect值?

回答

2

UIKeyboardFrameBeginUserInfoKey以屏幕座標返回鍵盤的框架,因此keyboardHeightCGRect類型。

你可以得到鍵盤的高度如下:

if let keyboardFrame = (n.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue { 
    saveButtonBottomConstant.constant = keyboardFrame.height + 8.0 
} 
0

你應該有任何2個雙人牀值或者2個GCRect值。將其中一個更改爲另一個,然後重試。

1

由於您試圖將Double(8.0)添加到CGRectkeyboardHeight),您的代碼將不起作用。當你使用斯威夫特3 CGRectGetHeight()不可用,所以你應該使用這個:

saveButtonBottomConstant.constant = keyboardHeight.height + 8.0 
相關問題