将按钮的文本颜色从黑色更改为白色,然后恢复原状
Change text color of buttons from black to white and then revert back
我在滑出式菜单中有十个按钮。如何通过 selection 将十个按钮的文本颜色从黑色更改为白色,然后在用户单击另一个按钮时恢复到原始状态。
我正在一个一个地循环按钮,我使用了代码
@IBAction func onBtnClick(sender: UIButton) {
hmImg.hidden = true
editprofileImg.hidden = true
cntctsReqImg.hidden = true
cntctsManImg.hidden = true
preferencesImg.hidden = true
timeRuleImg.hidden = true
helpImg.hidden = true
logoutImg.hidden = true
var a: NSInteger = sender.tag
if a == 1
{
homeBtn.setTitleColor(UIColor.whiteColor(), forState:UIControlState.Normal)
hmImg.hidden = false
}
else if a == 2
{
editProfileBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
editprofileImg.hidden = false
}
else if a == 3
{
cntctsRequetsBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
cntctsReqImg.hidden = false
}
else if a == 4
{
cntctMangBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
cntctsManImg.hidden = false
}
else if a == 5
{
preferenceBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
preferencesImg.hidden = false
}
else if a == 6
{
timeruleBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
timeRuleImg.hidden = false
}
else if a == 7
{
helpBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
helpImg.hidden = false
}
else if a == 8
{
logoutBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
logoutImg.hidden = false
}
此状态的问题是当我 select 其他按钮时按钮颜色保持白色。当用户 select 使用另一个按钮
时,我想将文本颜色更改为黑色
当我点击按钮
时,selection 的控制状态几乎不会出现几秒钟
您可能想要为特定状态设置颜色,然后在需要时更改按钮状态。听起来你想要一个单选按钮集,所以把按钮放在一个数组中,当任何一个按钮被点击时,将该按钮的状态更改为 "selected",将其他按钮的状态更改为 "normal" 或类似的东西。
试试这个:
let buttons = [homeBtn, editProfileBtn, ...]
let images [hmImg, ....]
func selectItemAtIndex(index:Int) {
buttons.forEach {
[=10=].setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)
}
images.forEach {
[=10=].hidden = true
}
buttons[index].setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
images[index].hidden = false
}
@IBAction func onBtnClick(sender: UIButton) {
let index = sender.tag
selectItemAtIndex(index - 1) // your tags is 1 based.
}
或者您可以使用不同的方式来减少循环。
let images [hmImg, ....]
var currentBtn: UIButton!
var currentImg: UIImageView!
@IBAction func onBtnClick(sender: UIButton) {
currentBtn?.setTitleColor(UIColor.blackColor(), forState:UIControlState.Normal)
sender.setTitleColor(UIColor.whiteColor(), forState:UIControlState.Normal)
currentBtn = sender
let index = sender.tag - 1 // one based tages
currentImg?.hidden = true
currentImg = images[index]
currentImg.hidden = false
}
我在滑出式菜单中有十个按钮。如何通过 selection 将十个按钮的文本颜色从黑色更改为白色,然后在用户单击另一个按钮时恢复到原始状态。
我正在一个一个地循环按钮,我使用了代码
@IBAction func onBtnClick(sender: UIButton) {
hmImg.hidden = true
editprofileImg.hidden = true
cntctsReqImg.hidden = true
cntctsManImg.hidden = true
preferencesImg.hidden = true
timeRuleImg.hidden = true
helpImg.hidden = true
logoutImg.hidden = true
var a: NSInteger = sender.tag
if a == 1
{
homeBtn.setTitleColor(UIColor.whiteColor(), forState:UIControlState.Normal)
hmImg.hidden = false
}
else if a == 2
{
editProfileBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
editprofileImg.hidden = false
}
else if a == 3
{
cntctsRequetsBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
cntctsReqImg.hidden = false
}
else if a == 4
{
cntctMangBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
cntctsManImg.hidden = false
}
else if a == 5
{
preferenceBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
preferencesImg.hidden = false
}
else if a == 6
{
timeruleBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
timeRuleImg.hidden = false
}
else if a == 7
{
helpBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
helpImg.hidden = false
}
else if a == 8
{
logoutBtn.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
logoutImg.hidden = false
}
此状态的问题是当我 select 其他按钮时按钮颜色保持白色。当用户 select 使用另一个按钮
时,我想将文本颜色更改为黑色当我点击按钮
时,selection 的控制状态几乎不会出现几秒钟您可能想要为特定状态设置颜色,然后在需要时更改按钮状态。听起来你想要一个单选按钮集,所以把按钮放在一个数组中,当任何一个按钮被点击时,将该按钮的状态更改为 "selected",将其他按钮的状态更改为 "normal" 或类似的东西。
试试这个:
let buttons = [homeBtn, editProfileBtn, ...]
let images [hmImg, ....]
func selectItemAtIndex(index:Int) {
buttons.forEach {
[=10=].setTitleColor(UIColor.blackColor(), forState: UIControlState.Normal)
}
images.forEach {
[=10=].hidden = true
}
buttons[index].setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
images[index].hidden = false
}
@IBAction func onBtnClick(sender: UIButton) {
let index = sender.tag
selectItemAtIndex(index - 1) // your tags is 1 based.
}
或者您可以使用不同的方式来减少循环。
let images [hmImg, ....]
var currentBtn: UIButton!
var currentImg: UIImageView!
@IBAction func onBtnClick(sender: UIButton) {
currentBtn?.setTitleColor(UIColor.blackColor(), forState:UIControlState.Normal)
sender.setTitleColor(UIColor.whiteColor(), forState:UIControlState.Normal)
currentBtn = sender
let index = sender.tag - 1 // one based tages
currentImg?.hidden = true
currentImg = images[index]
currentImg.hidden = false
}