2015-06-14 100 views
0

如何爲不同的按鈕設置動畫效果?我提出在16個按鈕用於循環:將不同的按鈕設置爲正確的位置

for i in 1..<17 
{ 
    if(i == 5 || i == 9 || i == 13){ 
     added = 0 
     moveToBottom += 60 
    } 
    var button = UIButton(frame: CGRectMake(CGFloat(Int(middleWidth) + added), CGFloat(moveToBottom), 50, 50)) 
    self.view.addSubview(button) 

    UIView.animateWithDuration(2, animations:{ 
     button.frame = CGRectMake(CGFloat(Int(middleWidth) + added), CGFloat(Int(middleHeight) + moveToBottom), 50, 50) 
    },completion: nil) 
} 

而且我把它們動畫到正確的地方,但我得到的是,所有的按鈕確切的同一時間做動畫。這不是我想要的,按鈕必須在不同時間對其位置進行動畫處理,我該怎麼做?

回答

1

你是說一個接一個地向按鈕添加動畫嗎?

嘗試此功能,並配置延遲參數。

UIView.animateWithDuration(duration: NSTimeInterval, delay: NSTimeInterval, options: UIViewAnimationOptions, animations: {() -> Void in 
    // your animate code... 
}, completion: 
    // completion block .... 
) 

在你的條件,而不是這樣寫:

UIView.animateWithDuration(2, delay: 2*(i-1), options: UIViewAnimationOptions.CurveLinear, animations: {() -> Void in 
    button.frame = CGRectMake(CGFloat(Int(middleWidth) + added), CGFloat(Int(middleHeight) + moveToBottom), 50, 50) 
}, completion: nil)