Swift UIButton:选定的表情符号消失
Posted
技术标签:
【中文标题】Swift UIButton:选定的表情符号消失【英文标题】:Swift UIButton : Selected Emoji disappear 【发布时间】: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");
快照:
【问题讨论】:
【参考方案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
【讨论】:
以上是关于Swift UIButton:选定的表情符号消失的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用任何形式的查找表的情况下在 Swift for iOS 8 中列出(几乎)所有表情符号?