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)