UIImageView の画像を変更するときにフェード/ディゾルブする 質問する

UIImageView の画像を変更するときにフェード/ディゾルブする 質問する

2 つの を作成するのではなくUIImageViews、1 つのビューの を変更する方が合理的に思えますimage。その場合、2 つの画像を瞬時に切り替えずにフェード/クロス ディゾルブする方法はありますか?

ベストアンサー1

新しいブロックベースのUIKit animation方法を使用すると、はるかに簡単になります。

次のコードがビュー コントローラーにあり、クロスディゾルブする UIImageView が、プロパティを介してアドレス指定可能な self.view のサブビューであるとします。self.imageView必要なのは次のコードだけです。

UIImage * toImage = [UIImage imageNamed:@"myname.png"];
[UIView transitionWithView:self.imageView
        duration:5.0f
        options:UIViewAnimationOptionTransitionCrossDissolve
        animations:^{
  self.imageView.image = toImage;
} completion:nil]

終わり。

Swift でこれを行うには、次のようになります。

let toImage = UIImage(named:"myname.png")
UIView.transitionWithView(self.imageView,
                          duration:5,
                          options: UIViewAnimationOptions.TransitionCrossDissolve, animations: { self.imageView.image = toImage }, completion: nil)

スイフト3、4、5

let toImage = UIImage(named:"myname.png")
UIView.transition(with: self.imageView,
                  duration: 0.3,
                  options: .transitionCrossDissolve,
                  animations: { self.imageView.image = toImage },
                  completion: nil)

おすすめ記事