【发布时间】:2014-09-16 16:13:15
【问题描述】:
我在正在开发的应用程序中发现了一个奇怪的错误。在我进入细节之前,我会陈述我的问题是
1 - 为什么不能调用 UIView 动画完成块
2 - 为什么 UIView 动画完成块会在模态视图出现后被调用?
我有一系列在视图控制器出现后开始的 UIView 动画。他们有完成块。大多数情况下,动画完成块都会被调用。但每隔一段时间,应用就会进入完成块不被调用的状态。
此外,当我从当前视图控制器模态显示新的视图控制器时,之前未调用的动画完成块都会被调用。
一旦应用处于这种状态,动画完成块就不会再被调用,除非我再次呈现模态视图。
我的动画块基本上是这样的:
int i = 0;
for (UIView *view in self.cellImageViews)
{
[UIView animateWithDuration:CELL_ANIMATION_DISMISS_DURATION
delay:(i)*CELL_ANIMATION_STAGGER_INTERVAL
options:UIViewAnimationOptionCurveEaseIn
animations:^{
view.transform = CGAffineTransformTranslate(view.transform, 0, CELL_ANIMATION_DISMISS_TRANSLATION);
} completion:^(BOOL finished) {
NSLog(@"Animation Completed: i:%d, finished:%d, count%d",i,finished,[self.oldCellImageViews count])
if(finished && (i == ([self.cellImageViews count]-1)))
{
NSLog(@"if statement passed");
// My completion block stuff goes here
}
}
];
i++;
}
【问题讨论】:
标签: ios ios7 uiview objective-c-blocks uiviewanimation