美文网首页iOS表格绘制
ios 键盘弹出视图上移指定位置

ios 键盘弹出视图上移指定位置

作者: 本客 | 来源:发表于2020-06-15 15:31 被阅读0次

    我们在开发中经常遇见,键盘弹出后,直接把输入框给遮挡了,用户看不见自己输入的什么,这个时候我们就需要把视图上移指定距离把输入框显示出来

    //监听键盘弹出

    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];

    //监听键盘消失

    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];

    #pragma mark监听键盘弹出,计算计算高度

    -(void)keyboardWillShow:(NSNotification*)note{

        //键盘的高度

        CGRect keyBoardRect=[note.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];

        //取出键盘弹出需要花费的时间

        double duration = [note.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue];

        //如果键盘的高度遮盖住了买入或者卖出的按钮,那么就上移表格cell,(控件的位置如果大于屏幕的高减去键盘的高,这个就是遮挡住该控件了,那么就需要上移视图)

        if((self.cell.buyOrSellBtn.frame.origin.y+self.cell.buyOrSellBtn.frame.size.height) > (ScreenHeight-keyBoardRect.size.height)){

            [UIView animateWithDuration:duration animations:^{

    //这里视图上移的时间就是键盘弹出的时间,同时进行,那么具体上移多少,导航条高度加上控件的位置-屏幕的高度减去键盘的高度

            self.tbv.contentOffset=CGPointMake(0,SafeAreaTopHeight+self.cell.buyOrSellBtn.frame.origin.y+self.cell.buyOrSellBtn.frame.size.height- (ScreenHeight- keyBoardRect.size.height));

            }];

        }

    }

    #pragma mark键盘消失,视图最初位置

    -(void)keyboardWillHide:(NSNotification*)note{

        self.tbv.contentOffset=CGPointMake(0, 0);

    }

    相关文章

      网友评论

        本文标题:ios 键盘弹出视图上移指定位置

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