iphone - UIView animateWithDuration 立即返回

标签 iphone objective-c animation

我正在尝试为 UIView 中嵌入的标签设置动画。

这是代码:

-(void)displayText:(NSString*)text {


[label setText:text];


[UIView animateWithDuration:5.0
                      delay:0.0
                    options:UIViewAnimationOptionCurveEaseIn
                 animations:^{
                     [labelView setAlpha:1.0];
                 }
                 completion:nil
 ];

[UIView animateWithDuration:5.8
                      delay:0.0
                    options:UIViewAnimationOptionCurveEaseIn
                 animations:^{
                     [labelView setAlpha:0.0];
                 }
                 completion:nil
 ];
}

为了验证该方法被调用,我设置了一个断点。

调用立即返回,但仅显示动画结束。

我将 UIView 连接到 Controller 。

请帮忙,我被困住了。

提前致谢! 帕特里克

最佳答案

正确,

当您像这样对 View 进行动画处理时,动画实际上不会在屏幕上发生,直到运行循环的下一次传递(即,一旦您的方法返回)。

UIView 将合并按顺序编程的动画。

使用完成 block 淡出。代码看起来有点奇怪,但效果很好!

[UIView animateWithDuration:5.0
                      delay:0.0
                    options:UIViewAnimationOptionCurveEaseIn
                 animations:^{
                     [labelView setAlpha:1.0];
                 }
                 completion:^(BOOL completed){
                     [UIView animateWithDuration:5.8
                                           delay:0.0
                                         options:UIViewAnimationOptionCurveEaseIn
                                      animations:^{[labelView setAlpha:0.0];}
                                      completion:nil];
                 }];

回应您的评论:

直到下一次运行循环运行时动画才会开始。在您的应用程序完成其操作之前,它们不会启动。如果您在循环中等待,您将遇到同样的问题,并且还会卡住您的界面。考虑为每个字母使用单独的标签,并为每个动画添加逐渐增大的延迟。所有这些动画指令将立即排队,然后在接下来的几秒钟内播放。想象一下你就像一个电影导演,你告诉每个 Actor 在下一个场景中做什么。然后,一旦每个人都知道该怎么做,你就坐下来大喊“行动”,然后看着这一切发生。

关于iphone - UIView animateWithDuration 立即返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8963184/

相关文章:

iphone - 如何将视频添加到 iPad 模拟器?

ios - 当 UIViewController 关闭 iOS 时,int 值仍然保持不变

ios - 使用自动布局时如何从代码更改 UITableView 的高度?

html - 动态文本的动态宽度

r - 在 R gganimate 中做动画时如何保留以前的数据层?

iphone - NSMutableDictionary 禁用排序

ios - Titanium:无需设备即可生成 IPA

iphone - 将选项卡添加到 MasterView Controller 项目

Objective-C for循环设置变量文本值

c# - 用于滑入/滑出页面的 WPF 框架动画无法与数据触发器一起正常工作