ios在tableview上添加textField后避免键盘遮挡
2016-07-02 本文已影响2386人
来宝
最近做项目的时候需要在tableview上添加很多textField输入框,但是当键盘弹出后会遮挡输入框,后来在网上找过很多方案,但皆不尽如人意。大多是使用使用监听事件,通过监听键盘事件来调整UITableView的frame。但是计算偏移量不是很精确,不是偏移的多了就是偏移的少了,而且还特别麻烦!如下图,当我准备在输入邮箱的位置输入内容,结果会被键盘挡住:
9750A5B5-8BA8-4D6E-AF60-B6A3CC3C4498.png 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;
}
1CBF703E-095C-46BB-AE4B-E79CD064745A.png