我想在点击它时更改 UIButton Image
Posted
技术标签:
【中文标题】我想在点击它时更改 UIButton Image【英文标题】:I want to change UIButton Image when tapped on it 【发布时间】:2016-11-16 14:15:27 【问题描述】:我在 CollectionViewController 的标题中有 2 个按钮。当我点击其中一个时,我正在使用 UIControlState -> .normal .selected 更改此按钮的图像。
override func viewDidLoad()
super.viewDidLoad()
collectionView.delegate = self
collectionView.dataSource = self
engSwitchButton.setImage(#imageLiteral(resourceName: "abc"), for: .normal)
geoSwitchButton.setImage(#imageLiteral(resourceName: "abg"), for: .normal)
engSwitchButton.setImage(#imageLiteral(resourceName: "abc2"),for: UIControlState.selected)
geoSwitchButton.setImage(#imageLiteral(resourceName: "abg2"), for: UIControlState.selected)
engSwitchButton.tag = Language.english.rawInt
geoSwitchButton.tag = Language.georgian.rawInt
@IBAction func languageSwitchTapped(_ sender: UIButton)
sender.isSelected = !sender.isSelected
selectedLanguage = Language(rawInt: sender.tag)!
collectionView.reloadData()
我想要我首先点击的按钮,当我通过点击它来改变 2d 按钮的状态时返回到 .normal 状态。
【问题讨论】:
【参考方案1】:要在点击时更改按钮图像,您应该使用UIControlState.highlighted
。
所以改变:
engSwitchButton.setImage(#imageLiteral(resourceName: "abc2"),for: UIControlState.selected)
geoSwitchButton.setImage(#imageLiteral(resourceName: "abg2"), for: UIControlState.selected)
到这里:
engSwitchButton.setImage(#imageLiteral(resourceName: "abc2"),for: UIControlState.highlighted)
geoSwitchButton.setImage(#imageLiteral(resourceName: "abg2"), for: UIControlState.highlighted)
【讨论】:
当我使用 .highlighted 时,它只在点击时起作用。这就是我使用 .selected 的原因,因为当我点击按钮 1 时,它必须保持 .selected 状态,而当我点击按钮 2 时,我希望它变为 .selected 并且按钮 1 必须恢复为 .normal【参考方案2】:@IBAction func yourFirstButton(_ sender: Any)
firstButton.setImage(UIImage(named: "yourButtonPressedImage")!, for: .normal)
secondbutton.setImage(UIImage(named: "yourNormalImage")!, for: .normal)
在您的第二个按钮中,@IBAction 方法只需切换按钮的图像
@IBAction func yourSecondButton(_ sender: Any)
secondButton.setImage(UIImage(named: "yourButtonPressedImage")!, for: .normal)
firsBbutton.setImage(UIImage(named: "yourNormalImage")!, for: .normal)
【讨论】:
我现在面临的问题(正如我刚刚实现的那样)是按下按钮后将其设置为默认图像以上是关于我想在点击它时更改 UIButton Image的主要内容,如果未能解决你的问题,请参考以下文章
使用 UIButton 自定义 UITableViewCell:无法更改 UIImage