ios - 未调用 UIView 动画完成 block
<p><p>我在正在开发的应用程序中发现了一个奇怪的错误。在我进入细节之前,我会陈述我的问题是</p>
<p>1 - 为什么不能调用 UIView 动画完成 block </p>
<p>2 - 为什么 UIView 动画完成 block 会在模态视图出现后被调用?</p>
<p>我有一系列在 ViewController 出现后开始的 UIView 动画。他们有完成 block 。大多数情况下,动画完成 block 都会被调用。但每隔一段时间,应用就会进入完成 block 不被调用的状态。</p>
<p>此外,当我从当前 ViewController 模态显示新的 ViewController 时,之前未调用的动画完成 block 都会被调用。</p>
<p>一旦应用处于这种状态,动画完成 block 就不会再次被调用,除非我再次呈现模态视图。</p>
<p>我的动画 block 基本上是这样的:</p>
<pre><code> 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,)
if(finished && (i == (-1)))
{
NSLog(@"if statement passed");
// My completion block stuff goes here
}
}
];
i++;
}
</code></pre></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>尝试关注</p>
<pre><code>[UIView animateWithDuration:CELL_ANIMATION_DISMISS_DURATION
delay:(i)*CELL_ANIMATION_STAGGER_INTERVAL
options:UIViewAnimationOptionCurveEaseIn
animations:^{
int i = 0;
for (UIView *view in self.cellImageViews)
{
view.transform = CGAffineTransformTranslate(view.transform, 0, CELL_ANIMATION_DISMISS_TRANSLATION);
i++;
}
} completion:^(BOOL finished) {
if(finished)
{
NSLog(@"if statement passed");
// My completion block stuff goes here
}
}
];
</code></pre></p>
<p style="font-size: 20px;">关于ios - 未调用 UIView 动画完成 block ,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/24945017/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/24945017/
</a>
</p>
页:
[1]