swift 点击按钮切换多种颜色

//
//  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!
        }
    }

}


最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容