解决方法:
UIViewController
包含UITableview
自定义单元格。每个单元格都包含带UIView
的cusom UITextField
。
我们都知道,可以管理UITextField
个代表并向上/向下显示UIView
以显示键盘出现时不可见的UITextField
。
问题:
此处UITableView
的内容是动态的,其决定的运行时间是哪个单元格包含UITextField
。
我为键盘上/下视图尝试了很多解决方案。但仍然存在一些问题。
所以现在决定只为那些没有出现在屏幕上或键盘后面的UITextField
进行翻译。
有没有办法知道这一点
键盘外观的响应者UITextField
是在键盘后面还是在键盘上方?
有更好的方法吗?
如果问题不清楚,请添加评论。
答案 0 :(得分:1)
根据当前的textField frame y位置,你可以检查它是否在键盘后面或不使用
-(void)textFieldDidBeginEditing:(UITextField *)textField {
CGPoint textFieldPosition = [textField convertPoint:CGPointZero toView:self.tableView];
}
现在检查y值并根据y值移动你的UIVIe ..
答案 1 :(得分:1)
当键盘可见时,您可以重新构建tableView,而不是检查所有这些。
在viewDidLoad()
中添加此
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardShow) name:UIKeyboardDidShowNotification object:nil];
在接收器中设置新帧
- (void)keyboardShow{
[tableView setFrame:newFrame]
}
再次在name:UIKeyboardDidHideNotification
当键盘不存在时重置为初始帧