繁体   English   中英

iOS:UIView动画重构

[英]iOS: UIView Animation Refactoring

在玩UIView animation ,我遇到了一种情况,我认为需要进行一些重构:

以下视图的opacity最初设置为0.0f

例如:

[UIView animateWithDuration:1.0f
                 animations:^
                 {
                     firstView.layer.opacity = 1.0f;
                 }
                 completion:^(BOOL finished)
                 {
                     [UIView animateWithDuration:1.0f
                                      animations:^
                      {
                          secondView.layer.opacity = 1.0f;
                          firstView.layer.opacity = 0.0f;
                      }
                      completion:^(BOOL finished)
                      {
                          [UIView animateWithDuration:1.0f
                                           animations:^
                           {
                               thirdView.layer.opacity = 1.0f;
                               secondView.layer.opacity = 0.0f;

                           }
                           completion:^(BOOL finished)
                           {
                               thirdView.layer.opacity = 0.0f;
                           }];
                     }];  
                }];

所有3个视图都只是UIView的子类,它们被添加为主视图的子视图。

这简单地将第一个视图的不透明度设置为1.0f,然后将第二个视图的不透明度设置为第三个视图的不透明度。

简单。 这里没什么特别的。

我的问题是:

如果我有更多的视图,比方说100,我想执行相同的操作(相同的动画序列),这个代码块会扩展和扩展。

因此,为了重构和遵守编写代码的良好实践,我认为可以通过使用方法和可能的循环来完成更少的代码。

关于重构,你能否就此启发我; 另外,如果需要循环, dispatch_apply会在重构过程中有用吗?

如果要为100个图像设置动画,则可能需要使用2个视图并将交替图像加载到每个图像中。 我最近在github上创建了一个示例应用程序,它正是这样做的:

使用交叉渐变不透明度更改动画UIImages

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM