2016-11-16 60 views
0

我在CollectionViewController的标题中有2个按钮。当我点击其中一个我使用UIControlState - > .normal .selected更改这个按钮的图像。我想在点击它时更改UIButton图像

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按钮状态时点击它。

回答

0

要在水龙头上更改按钮图像,您应该使用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) 
+0

当我突出显示它在窃听过程中正常工作。这就是为什么我使用.selected,因为当我点击按钮1它必须保持。选中,当我点击按钮2我希望它成为.selected和按钮1必须回到.normal – SunCode

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


} 
+0

我现在面临的问题(正如我刚刚实现这一点)一旦我按下按钮,将其设置为默认图像 – Anonymous