Objective c UIView beginAnimations在选择器上失败

Objective c UIView beginAnimations在选择器上失败,objective-c,ios,ipad,Objective C,Ios,Ipad,当在viewDidLoad函数上手动调用或使用按钮点击时,上面的代码块工作正常。但当我尝试在下面这样的选择器函数中调用该块时,动画并没有效果。对象跳转到位置。那会是什么原因呢 [UIView beginAnimations:nil context:NULL]; [UIView setAnimationDelay:4]; [UIView setAnimationDuration:5]; navigation.frame = CGRectOffset(navigation.frame, 0, 430

当在viewDidLoad函数上手动调用或使用按钮点击时,上面的代码块工作正常。但当我尝试在下面这样的选择器函数中调用该块时,动画并没有效果。对象跳转到位置。那会是什么原因呢

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDelay:4];
[UIView setAnimationDuration:5];
navigation.frame = CGRectOffset(navigation.frame, 0, 430);
[UIView commitAnimations];

仍然不知道rea问题,但是

if ([delegate respondsToSelector:@selector(carouselDidEndScrollingAnimation:)])
{
    [delegate carouselDidEndScrollingAnimation:self];
}


- (void) carouselDidEndScrollingAnimation:(iCarousel *)carousel{
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:5];
    navigation.frame = CGRectOffset(navigation.frame, 0, 430);
    [UIView commitAnimations];
}
解决了我的问题

希望帮助任何人


仍然需要更好的解决方案。谢谢您的建议。

我想您会发现0的延迟可能也同样有效。代码所做的是将效果延迟到下一个屏幕更新周期(约1/60秒),这可能会防止它受到正在进行的任何其他动画的干扰。
[self performSelector:@selector(makeAnim) withObject:nil afterDelay:0.0001];