我在商店里有一个应用程序,为了支持所有的设备和键盘,我要根据键盘的高度改变底部的约束高度。它适用于所有iOS版本,但iOS11除外。按钮不改变其位置,如下图所示。
谢谢!
这是iOS10预览

这是iOS11预览

码
func keyboardWillShow(notification: NSNotification) {
if !keyboardIsHidden{
return;
}
if let keyboardSize = (notification.userInfo?[UIKeyboardFrameBeginUserInfoKey] as? NSValue)?.cgRectValue {
keyboardIsHidden = false
nextButtonBottmConstraint.constant = nextButtonBottmConstraint.constant + keyboardSize.height
}
}发布于 2017-09-28 08:44:08
如果使用UIKeyboardWillShowNotification获取键盘高度,则使用UIKeyboardFrameEndUserInfoKey更改UIKeyboardFrameBeginUserInfoKey
UIKeyboardFrameBeginUserInfoKey返回iOS 11中键盘rect高度值为0。将其更改为UIKeyboardFrameEndUserInfoKey可能解决此问题。
目标-C
- (void)keyboardWasShown:(NSNotification*)aNotification {
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;
//Change constraints
}Swift 3
func keyboardWasShown(_ aNotification: Notification) {
let info = aNotification.userInfo
let kbSize: CGSize? = info?[UIKeyboardFrameEndUserInfoKey]?.cgRectValue?.size
//Change constraints
}发布于 2020-01-29 08:25:37
Swift
使用IHKeyboardAvoiding
第一步)豆荚'IHKeyboardAvoiding‘
步骤2)复制以下代码
import IHKeyboardAvoiding
override func viewDidAppear(_ animated: Bool) {
KeyboardAvoiding.avoidingView = Your_View
}https://stackoverflow.com/questions/46464528
复制相似问题