[相關(guān)信息:Xcode7.2 ; Swift2.0]
上一篇我們已經(jīng)把控件和事件都綁定好了拔疚,那接下來就是按照邏輯把代碼寫出來
然后我們運(yùn)行來看下效果
我們點(diǎn)擊第二行的按鈕返咱,下方都會(huì)輸出它的背景顏色色值,那么問題來了,我們要怎么把點(diǎn)擊的按鈕以外的按鈕的邊框去掉樱拴?(好像有點(diǎn)繞啊,吃葡萄不吃葡萄皮潘拱,來~說20遍)
我的思路是疹鳄,點(diǎn)擊按鈕以后把所有按鈕的邊框去掉拧略,然后再把點(diǎn)擊的按鈕的邊框加上芦岂,嗯~對(duì),就這么干
@IBAction func typeBtnCheck(sender: UIButton) {
for btn in typeBtn {
btn.layer.borderWidth = 0
} // for循環(huán)遍歷 typeBtn 集合垫蛆,把集合里的按鈕的邊框設(shè)為0
sender.layer.borderWidth = 1
sender.layer.borderColor = UIColor.init(red: 176/255.0, green: 176/255.0, blue: 176/255.0, alpha: 1).CGColor
}
然后我們運(yùn)行APP禽最,就可以看到我們要的效果出現(xiàn)了。
最后就是我們的標(biāo)題的功能了袱饭,怎么讓按鈕的圖片變顏色 (很顯然川无,我不會(huì)用N張圖片換替換按鈕的Image,這樣顯得太low了虑乖。我們只要幾行代碼就可以讓按鈕的背景圖片變顏色懦趋,還是想要什么顏色就變什么顏色。)
.[不明真相的觀眾姥爺]: 別逗疹味,要是真有這么簡(jiǎn)單這么好仅叫,還要美工干嘛
設(shè)置完之后是這樣子的
莫急莫急,請(qǐng)讓我墨跡墨跡洪灯。
在很前面的文章里我記得是提醒過的 點(diǎn)擊傳送門
那我們現(xiàn)在把圖片換一下吧
好,這邊設(shè)置好了憎夷,我們繼續(xù)去打碼...
override func viewDidLoad() {
super.viewDidLoad()
selectColor = typeColorBtn[0].backgroundColor // 給selectColor設(shè)置一個(gè)默認(rèn)的顏色假消,我這取的顏色是塊色第一個(gè)的顏色作為默認(rèn)的顏色
// Do any additional setup after loading the view.
}
@IBAction func typeBtnCheck(sender: UIButton) {
for btn in typeBtn {
btn.layer.borderWidth = 0
}
sender.layer.borderWidth = 1
sender.layer.borderColor = UIColor.init(red: 176/255.0, green: 176/255.0, blue: 176/255.0, alpha: 1).CGColor
sender.tintColor = selectColor //只要這一句,就搞定
}
運(yùn)行APP看效果 (Command+R)
是不是覺得很神奇傲虢印富拗?
這里我們還需要在改進(jìn)一下,讓未點(diǎn)擊的按鈕變成原來的顏色
@IBAction func typeBtnCheck(sender: UIButton) {
for btn in typeBtn {
btn.layer.borderWidth = 0
btn.tintColor = typeColorBtn[0].backgroundColor //點(diǎn)擊時(shí)還原其它按鈕的顏色
}
sender.layer.borderWidth = 1
sender.layer.borderColor = UIColor.init(red: 176/255.0, green: 176/255.0, blue: 176/255.0, alpha: 1).CGColor
sender.tintColor = selectColor
}
到此鸣戴,Button的Image變色功能就完成了啃沪。
最后感嘆一句,xcode太TM神奇了窄锅。??????
補(bǔ)一段完整代碼
class EidtViewController: UIViewController {
@IBOutlet var typeBtn: [UIButton]!
@IBOutlet var typeColorBtn: [UIButton]!
var selectColor: UIColor?
override func viewDidLoad() {
super.viewDidLoad()
selectColor = typeColorBtn[0].backgroundColor
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func typeBtnCheck(sender: UIButton) {
for btn in typeBtn {
btn.layer.borderWidth = 0
btn.tintColor = typeColorBtn[0].backgroundColor
}
sender.layer.borderWidth = 1
sender.layer.borderColor = UIColor.init(red: 176/255.0, green: 176/255.0, blue: 176/255.0, alpha: 1).CGColor
sender.tintColor = selectColor
}
@IBAction func typeColorBtnCheck(sender: UIButton) {
selectColor = sender.backgroundColor
print(selectColor)
}
}