键盘遮挡输入框,不需要使用UIScrollView也可以解决。
2017-02-17 本文已影响17人
MaShuai丨
话不多说,直接上代码。
先定义两个输入框
//用户名
@property(nonatomic,strong)UITextField*userField;
//密码
@property(nonatomic,strong)UITextField*passwordField;
监听键盘弹出的方法
-(void)AddObserverForKeyboard
{
//监听当键盘出现或改变时收出消息
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification
object:nil];
//监听当键退出时收出消息
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification
object:nil];
}
获取键盘的高度
- (void)keyboardWillShow:(NSNotification *)aNotification
{
NSDictionary *userInfo = [aNotification userInfo];
double duration = [[userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue];
CGRect keyboardRect = [[userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGFloat mark =(Height -CGRectGetMaxY(self.bigBgView.frame)+
KIphoneSize_Height(100))-keyboardRect.size.height;
if (mark<0) {
[UIView animateWithDuration:duration animations:^{
self.bigBgView.transform =CGAffineTransformMakeTranslation(0, mark);
}];
}
}
背景图随键盘移动的高度
CGRectGetMaxY(self.bigBgView.frame)+
KIphoneSize_Height(100))-keyboardRect.size.height;