2015年11月16日月曜日

UIButtonの画像のアニメーション

UIImageViewに表示するUIImageはパラパラアニメができるけど、UIButtonに表示する画像もアニメーションができる。
これで、点滅するボタンとかが作れるわけだ。

UIButtonに画像を表示する機能はUIImageViewを使ってるようで、UIButtonのimageViewプロパティにアクセスする。
このプロパティ、リファレンスを読むとreadOnlyってなってるんだけど、さらにその配下にあるanimationImagesなどのプロパティには値をセットすることができる。

やり方はUIImageViewと一緒で、アニメのコマを入れた配列を用意し、animationImagesに設定。
Duration(時間)やRepeatCount(繰り返し回数。0だと無限繰り返し)を設定し、startAnimation()関数で開始する。

唯一注意点はUIButtonのsetImage()関数で、UIButtonに画像を表示する設定にしてやることだ。
通常の、文字だけ表示する設定じゃダメってことね。

        let imageArray:[UIImage] = [
            UIImage(named: "image01")!,
            UIImage(named: "image02")!
        ]
        animeBtn.setImage(imageArray[0], forState: .Normal) //これ必要
        animeBtn.imageView?.animationImages = imageArray
        animeBtn.imageView?.animationDuration = 1.0
        animeBtn.imageView?.animationRepeatCount = 0

        animeBtn.imageView?.startAnimating()

0 件のコメント:

コメントを投稿