Objective-C

键盘遮挡输入框,不需要使用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;
上一篇下一篇

猜你喜欢

热点阅读