//
// 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 点击按钮切换多种颜色
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- Git: https://github.com/DrunkenMouse/clickCutViewAndConta...
- 解决办法:在cell的layoutSubviews中重新设置颜色即可,如下:
- self.tempBtn.selected = NO;buybtn.selected=YES; self.temp...