在日常的功能实现中,UITextField 或者 UITextView位置位于底部时会被键盘的弹出而遮盖,这是经常出现的问题。
上午查找了半个小时,发现网上的方法实现起来比较麻烦,1.根据键盘高度改变视图位置,这种需要适配不同机型而且还要考虑中英文转换的情况。直接说自己的另类做法吧。
UITextField本身有inputAccessoryView这个属性,这个视图是直接加载到键盘上方的。代码前后实现的界面如下。
像上面一样,将底部的UIView整个加载到键盘的上方,无论任何机型和系统都可以适配。代码如下。
将同样的视图写出两个,一个用来放在底部,一个用来当作InputAccessoryView。将两个textField的文字相关联,监听文字的改变。(如下)
- (void) textFieldDidChange:(id) sender {
UITextField *_field = (UITextField *)sender;
_bottomField1.text = _field.text;
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
这样就可以简单的实现输入框与键盘的遮挡问题。