2016-08-17 14 views
-1

画面に表示されているときにラベルをフェードインまたはフェードアウトしようとしています。現在、私は単純にそれを隠しています。(スウィフト)ラベルのフェードインとアウト

button.hidden = true 

とfalseを使用して非表示にしています。私はフェードインとフェードインでこのプロセスをアニメーション化したいと思います。助けを感謝します!

ここで私が使用しているコードはエラーになります。 http://imgur.com/a/HI4eg

class ViewController: UIViewController { 
@IBOutlet weak var yeah: UILabel! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    UIView.animateWithDuration(1.0, delay: 0.0, options: .CurveEaseOut, animations: { 
     self.yeah.alpha = 0.0 
     }, completion: { 
      (finished: Bool) -> Void in 

      //Once the label is completely invisible, set the text and fade it back in 
      self.yeah.text = "your Text " 

      // Fade in 
      UIView.animateWithDuration(1.0, delay: 0.0, options: .CurveEaseIn, animations: { 
       self.yeah.alpha = 1.0 
       }, completion: { 
        (finished: Bool) -> Void in 

        //Once the label is completely invisible, set the text and fade it back in 
        self.yeah.text = "your Text " 

        // Fade in 
        UIView.animateWithDuration(1.0, delay: 0.0, options: .CurveEaseIn, animations: { 
         self.yeah.alpha = 1.0 
         }, completion:nil) 




      }) 
    // Do any additional setup after loading the view, typically from a nib. 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

} }

+0

を説明し、あなたはフェードアウトと非表示を探している、とフェードで表示しています実際には?デフォルトではhideはアニメーション化できません。 – Shripada

答えて

5

としてはandrew bancroft's blog

 // Move our fade out code from earlier 
    UIView.animateWithDuration(1.0, delay: 0.0, options: .CurveEaseOut, animations: { 
     self.yourLabel.alpha = 0.0 
     }, completion: { 
      finished in 

      if finished { 
       //Once the label is completely invisible, set the text and fade it back in 
       self.yourLabel.text = "your Text " 

       // Fade in 
       UIView.animateWithDuration(1.0, delay: 0.0, options: .CurveEaseIn, animations: { 
        self.yourLabel.alpha = 1.0 
       }, completion: nil) 
      } 
    }) 

に変更された回答

UIView.animateWithDuration(1.0, delay: 0.0, options: .CurveEaseOut, animations: { 
     self.yourLabel.alpha = 0.0 
     }, completion: { 
      finished in 

      if finished { 
       //Once the label is completely invisible, set the text and fade it back in 
       self.yourLabel.text = "your Text " 

       // Fade in 
       UIView.animateWithDuration(1.0, delay: 0.0, options: .CurveEaseIn, animations: { 
        self.yourLabel.alpha = 1.0 
        }, completion: { 
         finished in 

         if finished { 
          //Once the label is completely invisible, set the text and fade it back in 
           self.yourLabel.text = "your Text " 

          // Fade in 
          UIView.animateWithDuration(1.0, delay: 0.0, options: .CurveEaseIn, animations: { 
           self.yourLabel.alpha = 0.0 
           }, completion: nil) 
         } 
       }) 
      } 
    }) 
+1

終了したら{}をクロージャに追加してください。完了ブロック_might_は未完了時に呼び出されます。 –

+0

あなたが誰かのコードを参照する場合は、最初に参照として名前を書くことをお勧めします。 –

+0

@DipenPanchasara - 確かに私の仲間、私はあなたの道に従って答えを変更することができます –

関連する問題