如何在 UIView 动画期间更新图像视图
Posted
技术标签:
【中文标题】如何在 UIView 动画期间更新图像视图【英文标题】:How to update image View during UIView Animation 【发布时间】: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)
【问题讨论】:
【参考方案1】:我猜测您的图像视图使用自动布局约束定位在情节提要中。当您更改图像视图的图像时,会导致布局发生;这意味着自动布局约束接管并将图像视图定位在动画开始之前的位置。
道理很简单:如果视图由自动布局约束定位,则不要尝试为视图的center
(或frame
或bounds
)设置动画。您可以改为为其约束设置动画。
【讨论】:
以上是关于如何在 UIView 动画期间更新图像视图的主要内容,如果未能解决你的问题,请参考以下文章