0
雖然與UIView animation
玩弄,我碰到一個情況,我覺得需要一些重構:的iOS:UIView的動畫重構
以下視圖,其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
在重構過程中會有用嗎?
與複雜性很好地進行擴展一個非常聰明的解決方案。 +1 –
@DavidRönnqvist,謝謝。 (友善的話和upvote。) –
@DuncanC感謝分享。我會去看看它,看看我是否可以從動畫重構的角度來學習它。提前+1。 – Unheilig