我有一个集合视图,每个视图上都有一个喜欢的按钮。我也有一个刷新按钮,尽管我不知道它是否相关。
按下按钮后如何更改按钮的图像?
我尝试添加此内容,但没有任何反应:
@IBOutlet weak var likeNot: UIButton!
@IBAction func likeIt(_ sender: UIButton) {
func viewDidLoad() {
super.viewDidLoad()
self.likeNot.setImage(UIImage(imageLiteralResourceName: "like"), for: .normal)
self.likeNot.setImage(UIImage(imageLiteralResourceName: "likeSelected"), for: .selected)
// likeIt.setImage(UIImage(named: "likeSelected"), for: .highlighted)
}
}
我还有一个刷新按钮。这会干扰吗?
@IBAction func refresh_TouchUpInside(_ sender: Any) {
loadTopPosts()
}
func loadTopPosts() {
ProgressHUD.show("Loading...", interaction: false)
self.posts.removeAll()
self.collectionView.reloadData()
Api.Post.observeTopPosts { (post) in
self.posts.append(post)
self.collectionView.reloadData()
ProgressHUD.dismiss()
}
}
答案 0 :(得分:1)
您的likeIt(_:)
函数没有做任何事情,因为您只是出于某种原因在其中定义了另一个函数(viewDidLoad
)。只需在没有内部功能的情况下调用按钮上的setImage(_:for:)
:
@IBAction func likeIt(_ sender: UIButton) {
self.likeNot.setImage(UIImage(imageLiteralResourceName: "like"), for: .normal)
self.likeNot.setImage(UIImage(imageLiteralResourceName: "likeSelected"), for: .selected)
// likeIt.setImage(UIImage(named: "likeSelected"), for: .highlighted)
}