想要达到的效果是当键盘出现的时候,底部的button和label会自动上挪,处于键盘上方的位置。而当键盘消失的时候,button和label会自动回到底部。
我用的是添加scrollView的方法,然后监控键盘的状态,但是遇到的问题是:键盘消失时,button和label的确在底部,但是当键盘出现时,button和label会被出现的键盘盖住。有没有什么方法可以解决这个问题?多谢
想要达到的效果是当键盘出现的时候,底部的button和label会自动上挪,处于键盘上方的位置。而当键盘消失的时候,button和label会自动回到底部。
我用的是添加scrollView的方法,然后监控键盘的状态,但是遇到的问题是:键盘消失时,button和label的确在底部,但是当键盘出现时,button和label会被出现的键盘盖住。有没有什么方法可以解决这个问题?多谢
监听键盘通知 UIKeyboardWillShowNotification UIKeyboardWillHideNotification, 分别调用键盘处理方法
取出键盘的 frame
取出键盘弹出需要花费的时间
修改约束
[self.view layoutIfNeeded]
监听键盘通知 UIKeyboardWillChangeFrameNotification 在方法中做键盘处理,处理方式和方法一一致
通过 tranform 做键盘处理,
取出键盘最终的frame
CGRect rect = [note.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];
取出键盘弹出需要花费的时间
double duration = [note.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
修改transform
[UIView animateWithDuration:duration animations:^{
CGFloat ty = [UIScreen mainScreen].bounds.size.height - rect.origin.y;
self.view.transform = CGAffineTransformMakeTranslation(0, - ty);
}];
用 Swift 的话,推荐一个库 IQKeyboardManager
2 回答1k 阅读
1 回答1.1k 阅读✓ 已解决
1 回答2.7k 阅读
1 回答1.5k 阅读
1 回答1.4k 阅读
1.7k 阅读
1 回答1.1k 阅读
如果用的地方不多,可以注册键盘出现和隐藏的通知,并参考如下代码做视图偏移
如果用的地方比较多,建议使用IQKeyboardManager