防止输入时键盘遮住视图

写程序的时候如果把输入框放到这种位置,输入的时候键盘必然会挡住输入框

就像这样:

这里面用到了点击背景隐藏键盘的黑科技

所以有一种解决方法是,当点击输入框时,我们把视图升高一部分。然后当输入完成时,将视图回复原来的位置。

实现这个需要实现两个代理:

当开始输入时把界面升高216,因为键盘高度是216

1
2
3
4
5
6
7
8
9
10
11
12
//OC
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
[UIView animateWithDuration:0.3f animations:^{
CGRect frame = self.view.frame;
/**
* 键盘高度是216
*/
frame.origin.y -= 216;
self.view.frame = frame;
}];
}

输入完成后点击完成,再把界面降216个高度,然后隐藏键盘

1
2
3
4
5
6
7
8
9
10
11
12
//OC
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[UIView animateWithDuration:0.3f animations:^{
CGRect frame = self.view.frame;
frame.origin.y +=216;
self.view.frame = frame;
}];
[textField resignFirstResponder];
return YES;
}

效果是这样: