[英]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上创建了一个示例应用程序,它正是这样做的:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.