在显示新图像之前,在同一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并调整代码中所需的信息后,您应该会看到一个按钮,单击该按钮会在每次单击后返回一个随机图像。 我希望这可以帮助你。
干杯。
- Facebook分享对话框:权限错误 – OAuth“Facebook平台”“insufficient_scope(#200)权限错误”
- 如何使用AudioKit保存音频文件?
- 在自定义Cocoapods中使用Storyboard和Image资源
- Apple MDM OTA – 在配置文件中嵌入SCEP与PKCS12的身份证书
- Xcode,Swift; 检测UIWebView中的超链接点击
- 应该Xcode故事板支持从UITableView与“dynamic原型”细胞?
- 使用AudioKit捕获系统或应用程序audio
- GCM推送通知到iOS与content_available(不工作从非激活状态调用)
- 我怎样才能收到其他应用程序的推送通知?