2016-09-19 67 views
-1

我在使用addsubview創建按鈕時遇到了動畫我的按鈕的問題。即使當我在循環中增加動畫的延遲時,它們也會立即顯示出來。我會感謝任何能夠提供幫助的人。在swift中創建多個子視圖時添加動畫

func createButton() { 
    var setx = 50 
    var sety = 100 
    var delay = 0.4 
    var wordsInCharacters = [String]() 
    for letter in "RAILROAD".characters{ 
     wordsInCharacters.append("\(letter)") 
    } 
    while wordsInCharacters.count > 0 { 
     let randomIndex = Int(arc4random_uniform(UInt32(wordsInCharacters.count))) 
     // Creating the buttons 
     let button = SpringButton() 
     button.frame = CGRect(x: setx, y: sety, width: 64, height: 64) 
     button.setTitle("\(wordsInCharacters[randomIndex])", for: .normal) 
     button.setTitleColor(UIColor.white, for: .normal) 
     button.backgroundColor = UIColor.gray 
     button.titleLabel?.font = UIFont(name: "HelveticaNeue", size: 30) 
     // Add animation 
     UIView.animate(withDuration: 1, delay: delay, options: .curveEaseInOut, animations: { 
      self.view.addSubview(button) 
     }, completion: nil) 
     if setx <= 200 { 
      setx += 100 
     } 
     else{ 
      setx = 50 
      sety += 100 
     } 
     wordsInCharacters.remove(at: randomIndex) 
     delay += 0.2 

    } 
} 
+0

你想對按鈕做什麼樣的動畫?褪色? – xmhafiz

+1

問題是,「addSubview」不是一個神奇的動畫的東西。只有動畫視圖屬性可以在UIView.animate動畫函數中動畫。沒有關於添加可動畫的子視圖的概念;它甚至不是一個可見的屬性! – matt

回答

1

用於製作一個簡單的動畫不要在動畫塊中添加視圖。 首先將Button Alpha值設置爲0,然後將該按鈕作爲子視圖添加。 在animationblock中,將button.alpha設置爲1. Voila ...