动画视图后,textFieldDidBeginEditing不是正在调用

时间:2014-03-25 06:30:06

标签: ios iphone objective-c animation uiscrollview

我在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 就不会被调用

1 个答案:

答案 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