[swift]删除以编程方式添加的 UIImageView

标签: UIImageView Swift
发布时间: 2017/3/4 23:41:31
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我创建生成按钮单击纸牌游戏。我使用这段代码来执行此操作︰

var imageView = UIImageView(frame: CGRectMake(CGFloat(pos), 178, 117, 172));
    var image = UIImage(named: "\(deck[Int(card)])_of_\(suits[Int(arc4random_uniform(4))])")
    imageView.image = image
    self.view.addSubview(imageView)

却将重置游戏的另一个按钮。我想要能够删除只能以编程方式添加的卡。任何帮助,这一点将不胜感激。

解决方法 1:

你可以跟踪的 imageView 在一些属性,和当你想要删除它时你只需︰

imageView.removeFromSuperview()  // this removes it from your view hierarchy 
imageView = nil;                 // if your reference to it was a strong reference, make sure to `nil` that strong reference

顺便说一句,正如你可能知道, UIImage(named:...) 将缓存在内存中的图像。如果你想要的很好,但如果不是,你可能想要使用 UIImage(contentsOfFile:...) 与该资源的完全限定路径。如果您使用 UIImage(named:...) ,图像都会留在记忆甚至后 UIImageView 已被删除。正如文件所说︰

如果你有只显示一次,希望确保,它不会加到系统的缓存中的图像文件,您应该相反你图像使用创建 imageWithContentsOfFile: 。这会使你单使用图像从系统图像缓存,可能改善您的应用程序的内存使用特性。

赞助商