Swift 如何更改集合视图中的UIbutton?

Swift 如何更改集合视图中的UIbutton?,swift,uibutton,Swift,Uibutton,我有一个集合视图,每个视图上都有一个like按钮。我也有一个刷新按钮,虽然我不知道它是否相关 按下按钮后,如何更改按钮的图像 我尝试添加此项,但什么也没发生: @IBOutlet weak var likeNot: UIButton! @IBAction func likeIt(_ sender: UIButton) { func viewDidLoad() { super.viewDidLoad() sel

我有一个集合视图,每个视图上都有一个like按钮。我也有一个刷新按钮,虽然我不知道它是否相关

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

我尝试添加此项,但什么也没发生:

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

当我这样做时,当我按下按钮时会出现此错误。线程1:EXC_BAD_指令(代码=EXC_I386_INVOP,子代码=0x0),我认为原因是它位于集合视图上。我只想在特定的集合视图上按它,而不是在其中任何一个视图上尝试选择它。我假设likeIt位于UICollectionViewCell子类中。无论何时选择单元格内的按钮,都应该调用@iAction,不会出现任何问题。不幸的是,这个错误几乎可以是任何东西,我真的帮不了你。可能会重新检查插座是否正确连接,图像是否正在加载等。它位于类PhotoCollectionViewCell:UICollectionViewCell{}中。这是否正确?