2016-03-01 2 views
1

Я использую 5 UIButton, и я получаю emoji string в этих кнопках. Но проблема в том, что когда я нажимаю кнопку, emoji исчезает на экране. Я предполагаю, что это выделенная или выделенная проблема с цветом, но я не понял. Что я должен сделать для этого?Swift UIButton: Selected Emoji исчезают

Мой код:

func buttonSelectedNot(){ 
    button1.selected = false 
    button2.selected = false 
    button3.selected = false 
    button4.selected = false 
    button5.selected = false 
} 

@IBAction func favoriteButtonAction(sender: UIButton) { 

    // Save Data 
    buttonSelectedNot() 
    sender.selected = !sender.selected; 
    if (sender.selected) 
    { 
     sender.selected = true 
     emojiString = (sender.titleLabel?.text)! 
     print(emojiString) 

    } 
    else 
    { 
     print("Not Selected"); 

    } 

} 

моментальные снимки: enter image description here

enter image description here

ответ

1

Хм, никогда не работал с emojistrings, но ваш код немного странно. Когда нажимается кнопка, вы устанавливаете все кнопки на selected = false, тогда вы устанавливаете sender.selected = !sender.selected (что означает, что sender.selected = true при условии, что отправитель является одной из кнопок в buttonsNotSelected()). Затем вы проверяете, выбрано ли значение sender, и если он выбран, вы снова установите его в true и затем добавьте emojistring.

Что произойдет, если sender.selected = true? Ну, вы установите его на false, используя buttonsNotSelected(), а затем вы инвертируете его и установите для него значение true, хотя оно, вероятно, должно быть false (при условии, что sender является одной из кнопок в указанном методе). Не уверен, что это какая-то проблема, но, похоже, мне кажется, что причина исчезновения emoji заключается в том, что .selected настроен неправильно.

Попробуйте очистить ваш код немного

func buttonSelectedNot(){ 
    button1.selected = false 
    button2.selected = false 
    button3.selected = false 
    button4.selected = false 
    button5.selected = false 
} 

@IBAction func favoriteButtonAction(sender: UIButton) { 

    // Save Data 
    sender.selected = !sender.selected; 
    if (sender.selected) { 
     emojiString = (sender.titleLabel?.text)! 
     print(emojiString) 

    } else { 
     print("Not Selected"); 
    } 

    // SET ALL BUTTONS, EXCEPT SENDER, TO FALSE 

} 
+0

О, я решил эту проблему. Нет проблем с выбранной кнопкой. Когда я выбираю кнопку, я активирую выбранную из отправителя. Я отвечу на мой вопрос :) спасибо в любом случае. – jorjj

0

Я решил проблему. Проблема в том, что вам нужно установить цвет ярлыка для кнопки. Если вы этого не сделаете, он исчезнет.

решаемые код:

func buttonSelectedNot(){ 
     button1.selected = false 
     button2.selected = false 
     button3.selected = false 
     button4.selected = false 
     button5.selected = false 
    } 

    @IBAction func favoriteButtonAction(sender: UIButton) { 

     // Save Data 
     buttonSelectedNot() 
     sender.selected = !sender.selected; 
     if (sender.selected) 
     { 
      sender.selected = true 
      emojiString = (sender.titleLabel?.text)! 

      **//need to set title color for the button.** 
      sender.setTitleColor(UIColor.blackColor(), forState: .Selected) 
      print(emojiString) 

     } 
     else 
     { 
      print("Not Selected"); 

     } 
     sender.selected = true 

    } 

Snapshot: enter image description here

И это выглядеть идеально: D