【问题标题】:How to update image View during UIView Animation如何在 UIView 动画期间更新图像视图
【发布时间】:2017-04-16 20:13:26
【问题描述】:

我想在动画期间将image 更改为imageView。我有一个imageView,我的动画把这个imageView 降下来了。在这个动画中,我需要将新照片加载到这个imageView(从互联网下载后),但在我尝试这样做的任何时候,这个imageView回到第一个位置。如果没有这个问题,如何加载新图像?

我的代码:

viewDidLoad中加载图片功能

override func viewDidLoad() {
    super.viewDidLoad()

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

我从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) 

}

【问题讨论】:

    标签: ios swift uiview uiviewanimation


    【解决方案1】:

    我猜测您的图像视图使用自动布局约束定位在情节提要中。当您更改图像视图的图像时,会导致布局发生;这意味着自动布局约束接管并将图像视图定位在动画开始之前的位置。

    道理很简单:如果视图由自动布局约束定位,则不要尝试为视图的center(或framebounds)设置动画。您可以改为为其约束设置动画。

    【讨论】:

      猜你喜欢
      • 2023-04-10
      • 2015-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多