这里实现是如果点击某个TextField的时候整体的View通过计算会向上移动一部分使用户能够看到输入框。(还有一种常用的是用户通过屏幕拖拉让整个view向上滚动,这里不研究)
几个步骤:
1、实现代理UITextFieldDelegate
2、在viewDidLoad中加入
self.textFiled.delegate =self;(这里的textField是你需要向上移动的输入框的控制对象)
3、在ViewController.m文件中实现UITextFieldDelegate的三个方法:
textFieldDidBeginEditing
textFieldShouldReturn
textFieldDidEndEditing
很简单吧,但在我原来的项目中,1、3步都有,就忘了实现第2步,就没有实现该功能(你需要加几个TextFiled输入框,就加几句2里的代码)。
补充:如果有几个编辑控件就加几个,但这样不利于后面的扩展,每增加一个还要手动在加一行,于是做了一个一劳永逸的方法,在viewDidLoad里面加一个遍历,找出每个控件,然后判断是否为编辑控件,是的话就加入委托。代码如下:
//遍历view下的控件,如果是TextField的编辑控件就加委托
for (UIView *subView in self.view.subviews) {
for (id controll in subView.subviews)
{
if ([controll isKindOfClass:[UITextField class]])
{
[controll setDelegate:self];
}
}
}