在显示新图像之前,在同一UIImageView中加载多个图像会闪烁最后一张图像

目标是使用相同的UIImageView渲染不同的图像。 每次用户点击不同的按钮时,在UIImageView中呈现不同的图像。

示例用户流程:

  • 用户点击图像1的按钮.UIImageView显示加载图像1。
  • 用户点击不同的按钮关闭UIImageView。 UIImageView被隐藏起来。
  • 用户点击图像2的不同按钮.UIImageView加载图像2然后取消隐藏。 在图像2出现之前,图像1出现片刻。

这是第一次工作。 然而,每个后续时间在显示第二图像之前显示先前图像的瞬间扫描,导致闪烁的用户体验。 例如,在查看第二张图像时,您会在第二张图像显示在屏幕上之前看到第一张图像。

如何修复后续加载,以便不显示先前的图像?

此函数将新图像加载到UIImageView中:

private func loadImage(targetView: UIImageView, imageURL: String) { // Get file path to  let imageURL = getFilePath(imageURL) // Create image & show in  if let image = UIImage(named: imageURL) { targetView.contentMode = .ScaleAspectFill targetView.image = image targetView.clipsToBounds = true targetView.hidden = false } else { print("Error rendering image for \(imageURL)") } } 

解决方案是在关闭时重置UIImageView,以便第二个图像基本上重新加载到一个新的UIImageView中。

我不确定你想要完成什么,但这肯定会让你找到解决方案。 我试图尽可能地减少它,但我可以回答你的任何问题。

 class RandomImage: UITableViewCell { @IBOutlet weak var ImageView: UIImageView! @IBOutlet weak var ChangingButton: UIButton! override func awakeFromNib() { super.awakeFromNib() // Initialization code self.ChangingButton.setTitle("Change", forState: UIControlState.Normal) } @IBAction func changeImageTapped(sender: UIButton){ var firstRandomNumber = arc4random_uniform(NUMBER) + 1 var firstImageString:String = String(format: "image%i", firstRandomNumber) self.ImageView.image = UIIMAge(named: firstImageString) } 

}

连接sockets并调整代码中所需的信息后,您应该会看到一个按钮,单击该按钮会在每次单击后返回一个随机图像。 我希望这可以帮助你。

干杯。