我正在尝试一些相对简单的事情。我有一个加载图像的UIButton:
@IBOutlet var peer5Outlet: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
peer5Outlet.enabled = true
var img = UIImage(named: "camera")
peer5Outlet.setImage(UIImage(named: "camera"),forState: UIControlState.Normal) }
加载后,我只想通过调用方法来更新该图像:
func updateButtonImage() {
peer5Outlet.imageView!.image = UIImage(named: "connected")!
print("peer5Outlet.imageView!.image = \(peer5Outlet!.imageView!.image!)")
}
但是,我仍然无法更新图像;原始图像在视图中永远不会改变。
也许我错过了某种视图重载方法?
答案 0 :(得分:1)
将updateButtonImage
功能更新为
func updateButtonImage() {
peer5Outlet.setImage(UIImage(named: "connected"), forState: .Normal)
print("peer5Outlet.imageView!.image = \(peer5Outlet!.imageView!.image!)")
}
答案 1 :(得分:1)
尝试
peer5Outlet.setBackgroundImage(UIImage(named: "connected"), forState: UIControlState.Normal)
编辑:为了使用setImage方法,您需要将按钮的类型更改为"自定义" ...
答案 2 :(得分:0)
只要您在UI上触摸UIImage
,就需要使用主线程GCD - main vs background thread for updating a UIImageView
func updateButtonImage() {
dispatch_async(dispatch_get_main_queue()) {
// update image
}
}