2016-11-16 29 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