2017-04-16 7 views
0

アニメーション中にimageimageViewに変更したいと思います。私はimageViewを持っていて、私のアニメーションはこれをimageViewにします。このアニメーションの間に、私はこの写真に新しい写真をロードする必要があります(インターネットからダウンロードした後)。imageViewは、最初の位置に戻ります。この問題を起こさずに新しい画像を読み込むにはどうすればいいですか?UIViewアニメーション中に画像を更新する方法

マイコード:私はあなたのイメージ図が中に配置されていることを推測するつもりだ、私はviewDidAppear

override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 

    UIView.animate(withDuration: 5, delay: 0, options: [.curveEaseOut, .allowAnimatedContent, .allowUserInteraction], animations: { [unowned self] _ in 
      self.userProfileImageView.center.y = 300 
     }, completion: nil) 

} 

答えて

1

に開始viewDidLoad

override func viewDidLoad() { 
    super.viewDidLoad() 

    viewModel.downloadImage({ [weak self] image in 
     DispatchQueue.main.async { 
      self?.userImageView.image = image 
     } 
    }) 
} 

アニメーションの方法で

ロードイメージ機能オートレイアウト制約を使用したスト​​ーリーボード。イメージビューのイメージを変更すると、レイアウトが実行されます。つまり、自動レイアウトの制約が引き継ぎ、アニメーションを開始する前の位置にイメージビューを配置します。

教訓は単純です:そのビューは、自動レイアウトの制約により位置決めされている場合、ビューのcenter(またはframeまたはbounds)をアニメーション化しようとしないでください。代わりにの制約をアニメートできます。

関連する問題