UITextField委托方法中的动画不会执行

时间:2015-07-17 08:40:24

标签: objective-c iphone

当我点击文本框txtAge时,会调用委托方法,但动画不会执行:

-(void)textFieldDidBeginEditing:(UITextField *)textField {

    NSLog(@"field Edited");
    if (textField.tag == 0) {
        NSLog(@"IF Block ");
        [UIPickerView beginAnimations:nil  context:nil];
        [UIPickerView setAnimationDuration:0.3];
        PkrView .frame = CGRectMake(0, 450, 414, 215);
    }
    else
    {
        NSLog(@" else");
    }
    return; }

你能弄明白为什么吗?

1 个答案:

答案 0 :(得分:0)

您错过了commitAnimations来电。但是,引自Apple文档中有关beginAnimations

的文章
  

在iOS 4.0及更高版本中不鼓励使用此方法。您应该使用基于块的动画方法来指定动画。

您应该按照以下方式转换动画:

[UIPickerView animateWithDuration:0.3 animations:^{
    self.view.frame = CGRectMake(0, 450, 414, 215);
} completion:^(BOOL finished){
    // optional, do something after animation completed
}];