Swift - 是否有 UIImageView 委托?

Swift - Is there an UIImageViewDelegate?

所以我已经离开 iOS 编码世界一段时间了,现在我正在经历 Swift。

在 Objective-C 中,我能够即时更改图像,但为此我必须设置图像委托。我设置委托的另一个原因是我可以隐藏 UIImageView

在 Swift 中,我似乎对此有疑问。 有了 playground,我可以做到这一点:

let responseImageView:UIImageView!
responseImageView.hidden = true

但是在项目中这不起作用。

有人可以帮我吗?

在我的项目中我有这样的代码:

@IBOutle var responseImageView: UIImageView!

//Inside a function I have this:
let smile = "smile.png"
imageName = UIImage(named: smile)!
responseImageView = UIImageView(image: imageName)

该代码无效。

我无法通过这样做隐藏图像:

responseImageView.hidden = true

如果您在 Storyboard 或 Interface Builder 中创建了实际的 UIImageView(并正确连接了 IBOutlet - 如果某些地方没有按预期工作,最好仔细检查一下!)您不应该尝试实例化它再次在代码中只是为了改变图像。相反,通过访问 UIImageView 的 .image 属性 来更改图像,如下所示:

let smile = "smile.png"
let image = UIImage(named: smile)
responseImageView.image = image

编辑:

澄清一下:"instantiate" 我特别指的是您项目代码中的这一行:

responseImageView = UIImageView(image: imageName)

在您的函数中执行此操作会中断您在情节提要中建立的连接。如果你在该行或 println("\(responseImageView.superview)") 之后放置一个断点,你会看到你的 responseImageView 实例现在不再附加到超级视图(解释为什么你可以更改它的图像或隐藏或取消隐藏它所有你想要的 -您永远不会在应用程序中看到任何变化)。