//
// ViewController.swift
// MoreColorStatus
//
// Created by zhi zhou on 2017/1/4.
// Copyright © 2017年 zhi zhou. All rights reserved.
//
import UIKit
/// 状态枚举
enum StatusType {
case Not // 空值
case Base // 基本
case Bad // 差
case Okay // 还行
case Good // 好
/// 枚举数组
static let allValues = [Not, Base, Bad, Okay, Good]
}
class ViewController: UIViewController {
// MARK:- 属性
/// 用户点击按钮
@IBOutlet weak var userButton: UIButton!
/// 按钮背景颜色状态变量
var buttonStatus: StatusType = .Base
// MARK:- 系统函数
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
// MARK:- 按钮点击事件
@IBAction func changeButton(_ sender: UIButton) {
// 状态判断与改变
switch buttonStatus {
case .Base:
userButton.backgroundColor = .gray
case .Bad:
userButton.backgroundColor = .red
case .Okay:
userButton.backgroundColor = .yellow
case .Good:
userButton.backgroundColor = .green
default:
userButton.backgroundColor = .white
}
// 当前状态在枚举数组中的 index
let currentIndex = StatusType.allValues.index(of: buttonStatus)
// 枚举数组中最后一个元素的 index
let option = StatusType.allValues.last!
let lastIndex = StatusType.allValues.index(of: option)
// 每次点击后都修改按钮的背景颜色状态为下一个, 以此来实现点击按钮切换多种背景颜色的效果
if currentIndex! < lastIndex! {
buttonStatus = StatusType.allValues[currentIndex! + 1]
} else {
buttonStatus = StatusType.allValues.first!
}
}
}
swift 点击按钮切换多种颜色
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Git: https://github.com/DrunkenMouse/clickCutViewAndConta...
- 解决办法:在cell的layoutSubviews中重新设置颜色即可,如下:
- self.tempBtn.selected = NO;buybtn.selected=YES; self.temp...