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