我有一个 Collection View ,每个 View 上都有一个赞按钮。我也有一个刷新按钮,虽然我不知道它是否相关。
如何在按下按钮后更改按钮的图像?
我尝试添加这个,但没有任何反应:
@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()
}
}
最佳答案
您的 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)
}
关于swift - 如何更改 Collection View 中的 UIbutton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55891857/