【问题标题】:Swift UIButton : Selected Emoji disappearSwift UIButton:选定的表情符号消失
【发布时间】:2016-03-01 14:37:55
【问题描述】:

我正在使用 5 UIButton,并且在此按钮中获取表情符号字符串。但问题是,当我单击按钮时,表情符号会在屏幕上消失。我猜这是突出显示或选择的颜色问题,但我没有弄清楚。我该怎么办?

我的代码:

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");

    }

}

快照:

【问题讨论】:

    标签: swift uibutton emoji selected sender


    【解决方案1】:

    嗯,从未使用过表情符号,但你的代码有点奇怪。单击按钮时,将所有按钮设置为selected = false,然后设置sender.selected = !sender.selected(这意味着sender.selected = true,前提是发件人是buttonsNotSelected() 中的按钮之一)。然后检查是否选择了sender,如果选择了,则再次将其设置为true,然后添加表情符号。

    如果sender.selected = true 会发生什么?好吧,您将使用buttonsNotSelected() 将其设置为false,然后将其反转并将其设置为true,即使它可能应该是false(前提是sender 是所述方法中的按钮之一)。虽然不确定这是否有任何问题,但在我看来,表情符号消失的原因是因为 .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
    
    }
    

    【讨论】:

    • 哦,我解决了这个问题。选择按钮没问题。当我选择按钮时,我会激活从发件人中选择的内容。我会回答我的问题:) 无论如何谢谢。
    【解决方案2】:

    我解决了这个问题。问题是,您需要为按钮设置标题标签颜色。如果你不这样做,它就会消失。

    解决的代码:

    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
    
        }
    

    快照:

    而且看起来很完美:D

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-12
      • 2017-10-28
      • 2016-04-13
      • 1970-01-01
      • 2016-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多