gpt4 book ai didi

ios - 未调用 UIView 动画完成 block

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:04:38 24 4
gpt4 key购买 nike

我在我正在处理的应用程序中发现了一个奇怪的错误。在我进入细节之前,我会陈述我的问题是

1 - 为什么不能调用 UIView 动画完成 block

2 - 为什么在呈现模态视图后调用 UIView 动画完成 block ?

我有一系列在 View Controller 出现后开始的 UIView 动画。他们有完成 block 。绝大多数时间动画完成 block 被调用。但是,应用程序经常会进入未调用完成 block 的状​​态。

此外,当我从当前 View Controller 模态地呈现一个新的 View Controller 时,之前未调用的动画完成 block 都会被调用。

一旦应用处于此状态,动画完成 block 就不会再被调用,除非我再次呈现模态视图。

我的动画 block 基本上是这样的:

 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++;
}

最佳答案

尝试关注

[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
}
}
];

关于ios - 未调用 UIView 动画完成 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24945017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com