【问题标题】:Stop IOS animations appearing all at once停止 IOS 动画一次出现
【发布时间】:2013-02-04 00:15:44
【问题描述】:

听说IOS会批量制作动画。

例如,我有大约 4 个方法(在主线程上)进行一些更新,当它们完成后,我调用一个方法来淡入显示其完成的复选标记的图像。 (见下文)但似乎它们都同时出现。我怎样才能让它们出现在每个方法调用之后?

[mySubClass1 UpdateAllGeneralData_Single];
[self FadeImageGeneralInfo];

[mySubClass1 UpdateAllMeetingData_Single];
[self FadeImageMeetingList];

[mySubClass1 UpdateAllSpeakerData_Single];
[self FadeImageSpeakerList];

【问题讨论】:

    标签: ios objective-c ios-simulator


    【解决方案1】:

    您可以使用计时器将每个后续调用 FadeImage____List 延迟一定的时间,或者您可以使用 UIView animateWithDuration:delay:options:animations:completion: 类方法来延迟每个后续动画。

    如果您选择选项 2,实现它的最简单方法可能是更改 FadeImage______List 以接受延迟参数。然后,例如(如果每个动画耗时 0.5 秒):

    [mySubClass1 UpdateAllGeneralData_Single];
    [self FadeImageGeneralInfoWithDelay:0];
    
    [mySubClass1 UpdateAllMeetingData_Single];
    [self FadeImageMeetingListWithDelay:0.5];
    
    [mySubClass1 UpdateAllSpeakerData_Single];
    [self FadeImageSpeakerListWithDelay:1.0];
    

    【讨论】:

    • 谢谢,我还是新手。延迟方法会是什么样子?
    • ...或使用“completion:”块链接动画
    • 做到了!感谢您的帮助。
    • @epatel 我不推荐使用完成块的原因是因为看起来 OP 试图通过对模型执行更新来分离他们的模型和视图代码,然后在三个单独的视图中设置动画块。为了链接完成块,需要将动画代码引入控制器并与模型更新内联调用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多