如何在集合视图中更改UIbutton?

时间:2019-04-28 15:39:14

标签: swift uibutton

我有一个集合视图,每个视图上都有一个喜欢的按钮。我也有一个刷新按钮,尽管我不知道它是否相关。

按下按钮后如何更改按钮的图像?

我尝试添加此内容,但没有任何反应:

@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()
        }
    }

1 个答案:

答案 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)
}