您的位置:首页 > 移动开发 > IOS开发

ios tableView多个cell处理键盘遮挡内容视图的问题

2016-05-10 16:48 603 查看
首先是获取点击的textField在当前View中的位置,这里用到了坐标系转换的方法

  

CGPoint pt = [self.view
convertPoint:center fromView:cell];
然后在监听键盘弹出事件中,判断键盘是不是会遮挡住该输入框,算出遮盖的高度差,然后设置tableView的contentInset,多次尝试的是contentoffert不是很准确而且效果不是很好
 NSDictionary *info = [notification
userInfo];

        CGRect keyboardSize = [[info
objectForKey:UIKeyboardFrameEndUserInfoKey]
CGRectValue];
        CGFloat height =
UI_CURRENT_SCREEN_HEIGHT -
self.selectTextFieldOffset -
64;
        if (keyboardSize.size.height +
35 > height) {
            CGFloat heightOffset =
IS_IPAD_DEVICE?0:55;
            self.safeTableView.contentInset =
UIEdgeInsetsMake(0,
0, keyboardSize.size.height-heightOffset,
0);
            self.safeTableView.scrollIndicatorInsets =
UIEdgeInsetsMake(0,
0, keyboardSize.size.height-heightOffset,
0);
        } else{
            self.safeTableView.contentInset =
UIEdgeInsetsZero;
            self.safeTableView.scrollIndicatorInsets =
UIEdgeInsetsZero;
        }
最后在键盘收回的方法中

self.safeTableView.contentInset = UIEdgeInsetsZero;
    self.safeTableView.scrollIndicatorInsets = UIEdgeInsetsZero;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: