ios在tableview上添加textField后避免键盘遮挡的解决方案

最近做项目的时候需要在tableview上添加很多textField输入框,但是当键盘弹出后会遮挡输入框,后来在网上找过很多方案,但皆不尽如人意。大多是使用使用监听事件,通过监听键盘事件来调整UITableView的frame。但是计算偏移量不是很精确,不是偏移的多了就是偏移的少了,而且还特别麻烦!如下图,当我准备在输入邮箱的位置输入内容,结果会被键盘挡住:


ios在tableview上添加textField后避免键盘遮挡的解决方案_第1张图片
9750A5B5-8BA8-4D6E-AF60-B6A3CC3C4498.png
ios在tableview上添加textField后避免键盘遮挡的解决方案_第2张图片
9187D114-8ED8-4D75-82D1-1513F08E54BB.png

最近在网上找到了更好的解决办法,见代码:

-(UITableView *)tableView{
    
    if (!_tableView) {
        
        _tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, kWidth, kHeight-64) style:UITableViewStyleGrouped];
       
        //处理键盘遮挡问题
        UITableViewController *tvc = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
        [self addChildViewController:tvc];
        _tableView = tvc.tableView;
       ----------->加上以上三行代码完美解决问题!
        
        _tableView.backgroundColor = KGrayColor;
        _tableView.delegate = self;
        _tableView.dataSource = self;
        _tableView.rowHeight = 55;
        _tableView.separatorStyle = 0;//去掉分割线
        _tableView.tableHeaderView = [self headView];
        _tableView.tableFooterView = [self footerView];
        
    }
    return _tableView;
}
ios在tableview上添加textField后避免键盘遮挡的解决方案_第3张图片
1CBF703E-095C-46BB-AE4B-E79CD064745A.png

你可能感兴趣的:(ios在tableview上添加textField后避免键盘遮挡的解决方案)