我想讓它看起來好像我的影像正在從上到下慢慢過濾。我正在添加兩個影像視圖。我處理的影像在背景中,在前面未處理。我將未處理影像的高度設為 0。這是我的代碼。
imageView.frame = CGRect(x: 0, y: 100, width: self.view.bounds.size.width, height: 400)
imageView.image = processedImage
let nonProcessedImageView = UIImageView()
nonProcessedImageView.frame = CGRect(x: 0, y: 100, width: self.view.bounds.size.width, height: 400)
nonProcessedImageView.image = nonProcessedImage
view.addSubview(nonProcessedImageView)
UIView.transition(with: nonProcessedImageView,
duration: 5.0,
animations: {
nonProcessedImageView.frame = CGRect(x: 0, y: 500, width: self.view.bounds.size.width, height: 0)
},
completion: {_ in
})
未處理的影像甚至不會出現在已處理的頂部。
uj5u.com熱心網友回復:
問題似乎是y在使用 UIView.Animate 函式時更改影片塊中框架的坐標會導致問題。
看到這個
為獲得最佳效果,請將新影像視圖添加到 UIView 并減少 UIView 的高度而不是 UIImageView
var newImageFrame = imageView.frame
let containerView = UIView(frame: newImageFrame)
containerView.clipsToBounds = true
let nonProcessedImageView = UIImageView()
nonProcessedImageView.frame = containerView.bounds
nonProcessedImageView.clipsToBounds = true
nonProcessedImageView.contentMode = .scaleAspectFit // same as original
nonProcessedImageView.image = imageView.image
containerView.addSubview(nonProcessedImageView)
view.addSubview(containerView)
newImageFrame.size.height = 1
imageView.image = processedImage
UIView.animate(withDuration: 3.0) {
containerView.frame = newImageFrame
}
completion: { (isComplete) in
if isComplete {
containerView.removeFromSuperview()
}
}
這應該給你你想要的:

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/449589.html
標籤:IOS 迅速 uiimageview
