美文网首页Objective-C
键盘遮挡输入框,不需要使用UIScrollView也可以解决。

键盘遮挡输入框,不需要使用UIScrollView也可以解决。

作者: MaShuai丨 | 来源:发表于2017-02-17 14:57 被阅读17次

    话不多说,直接上代码。
    先定义两个输入框

    //用户名

    @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;
    

    相关文章

      网友评论

        本文标题:键盘遮挡输入框,不需要使用UIScrollView也可以解决。

        本文链接:https://www.haomeiwen.com/subject/jedhwttx.html