Swift - 是否有UIImageViewDelegate?

时间:2015-08-07 23:32:34

标签: swift uiimageview

所以我已经离开了iOS编码世界,我现在正在浏览Swift。

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

在Swift中,我似乎遇到了这个问题。 在操场上,我可以做到这一点:

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

1 个答案:

答案 0 :(得分:1)

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

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

编辑:

只是为了澄清:通过“实例化”,我特别指的是项目代码中的这一行:

responseImageView = UIImageView(image: imageName)

在您的函数中执行此操作将破坏您在故事板中设置的连接。如果你在该行或println("\(responseImageView.superview)")之后放置一个断点,你会看到你的responseImageView实例现在不再附加到superview(解释为什么你可以改变它的图像或隐藏或取消隐藏它你想要的一切 - 你永远不会在应用程序中看到任何变化。)