我在textFields
上动态创建UIScrollView
,如果键盘正在隐藏它,我会动画查看以将textField置于键盘上方。使用下面给出的代码来设置动画视图:
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
CGRect textFiledFrame = textField.frame;
if (textFiledFrame.origin.y > 219 && textField.tag > 150 && viewAnimated == 0) {
CGRect superViewFrame = textField.superview.frame;
superViewFrame.origin.y = superViewFrame.origin.y - 120;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.6];
[textField.superview setFrame:superViewFrame];
[UIView commitAnimations];
viewAnimated = 1;
}
}
我每次点击textField textFieldDidBeginEditing:(UITextField *)textField
时都会被调用,但一旦视图变为动画,textFieldDidBeginEditing:(UITextField *)textField
就不会被调用
答案 0 :(得分:0)
您的代码有几个问题:
您不应该硬编码任何与键盘相关的尺寸。而是使用iOS框架为您提供的键盘信息(请参阅此处:How to make a UITextField move up when keyboard is present?)
你在if语句中设置ViewAnimated = 1
- 你有没有把它放到0?如果没有,当你检查if子句中的ViewAnimated == 0
时,永远不会再输入if语句......
变量不应以大写字母(Rect,ViewAnimated)开头 - 更好的是textRect en viewAnimated