首页 > 其他分享 >Swift 优雅的 Enum

Swift 优雅的 Enum

时间:2024-08-08 21:49:29浏览次数:8  
标签:155 image Enum 优雅 UIColor 255.0 Swift CGFloat

声名 Enum

enum Color {
    static func RGB(r: CGFloat, g: CGFloat, b: CGFloat) -> UIColor? {
        UIColor(red: r/255.0, green: g/255.0, blue: b/255.0, alpha: 1)
    }
    static func RGBA(r: CGFloat, g: CGFloat, b: CGFloat, a: CGFloat) -> UIColor? {
        UIColor(red: r/255.0, green: g/255.0, blue: b/255.0, alpha: 1)
    }
    static func Hex(hex: String) -> UIColor? {
        //....
    }
}

使用 Enum

Color.RGB(r: 155, g: 155, b: 155)

Color.RGBA(r: 155, g: 155, b: 155, a: 0.5)

声名 嵌套 Enum


enum R {
    enum string: String {
        case add = "添加"
    }
    enum image: String {
        case logo = "logo"
    }
}
extension UIImage {
    convenience init?(r: R.image) {
        self.init(named: r.rawValue)
    }
}

extension UIButton {
    func setTitle(r: R.string, for state: UIControl.State){
        self.setTitle(r.rawValue, for: state)
    }
}

使用 嵌套 Enum

// 图片使用
let image: UIImage? = UIImage(r: R.image.logo)

// 按钮使用
let btn: UIButton? = UIButton()
btn?.setTitle(r: R.string.add, for: .normal)

标签:155,image,Enum,优雅,UIColor,255.0,Swift,CGFloat
From: https://www.cnblogs.com/IT-IOS-MAN/p/18349811

相关文章

  • Swift 引用 OC 的类库
    1、创建引用文件///{项目名称}-Bridging-Header.hXQTest-Bridging-Header.h2、创建OC类@interfaceAuth:NSObject@property(nonatomic,assign)NSIntegercode;@property(nonatomic,strong)NSString*name;-(instancetype)initWithCode:(NSInteger)codename:......
  • 使用 Python 优雅地编排 Dockerfile
    使用python替代dockercompose编排容器dockercompose是docker的容器编排工具,它是基于YAML配置,YAML是一种配置文件格式,支持传递环境变量,但是对于复杂的容器编排显得力不从心。于是我便开发这个程序,可以像写程序一样编排docker,可以充分发挥程序猿的想象力。pipi......
  • 推荐一款界面优雅、功能强大的 .NET + Vue 权限管理系统
    目录前言项目简介项目特点项目预览项目演示1、系统登录2、系统首页 3、系统页面 4、插件示例 5、移动端项目地址总结前言今天推荐一款用.NET和Vue3实现的开源权限管理系统。它的界面清爽干净,功能强大,还具备灵活的角色权限分配功能,能够满足不同规模企业......
  • 【禁止血压飙升】阿里大佬写的 Controller 太优雅了!
    作者:小塵链接:https://juejin.cn/post/7357172505961578511前言见过几千行代码的controller吗?我见过。见过全是trycatch的controller吗,我见过。见过全是字段校验的controller吗,我见过。见过全是业务代码的controller吗?不好意思,我们公司很多业务写在controller的......
  • Laravel --最优雅的 PHP 框架
    在PHP生态系统中,有许多框架可供开发者选择。在众多选择中,Laravel突出其优雅的设计、简洁的语法和强大的功能,迅速成为最受欢迎的PHP框架之一。本文将探讨Laravel的一些关键特性,通过数据支持、实际操作案例和代码示例来展示其优雅性和实用性。1.Laravel的优雅设计1.1......
  • `EnumSet` 和 `EnumMap` 枚举类
    EnumSet和EnumMap枚举类目录EnumSet和EnumMap枚举类EnumSet创建EnumSetEnumSet操作EnumMap创建EnumMapEnumMap操作EnumSetEnumSet是基于位向量(bitvector)的集合实现,专为枚举类型设计,提供了非常高效的内存和性能表现。EnumSet不允许包含null元素,并且所有元素都必......
  • 如何优雅的填充公共字段
    如何优雅的填充公共字段在平时的web开发中,最多的就是编写CRUD逻辑,而CRUD中有很多公共字段,比如创建时间、创建人、更新时间、更新人等,这些字段在每次新增和修改的时候都需要手动填充,这样无疑增加了代码量,降低了开发效率,那么有没有一种优雅的方式来实现这些公共字段的填充呢?1.建......
  • MyBatis-Pager: 一个轻量且优雅的 MyBatis 分页组件
    优点无侵入:仅需在mapper层接口中增加Pager<T>参数即可。零配置:无需额外增加配置项,能够自动推断数据库分页方言。使用方法SpringBoot2项目引入maven依赖<dependency><groupId>cn.codest</groupId><artifactId>mybatis-pager-spring-boot2-starter</art......
  • go的并发任务如何优雅的实现错误终止
    errgroup使用案例在Go语言中,并发任务通常通过goroutine来实现,而错误处理和任务终止的优雅性则依赖于适当的同步机制和错误传播策略。场景:管理一个任务的一组子任务,每个子任务一个协程每个子任务必须保证都成功,一个出现失败应当立马停止所有子任务想知道子任务失败的原因......
  • 【禁止血压飙升】阿里大佬写的 Controller 太优雅了!
    作者:小塵链接:https://juejin.cn/post/7357172505961578511前言见过几千行代码的controller吗?我见过。见过全是trycatch的controller吗,我见过。见过全是字段校验的controller吗,我见过。见过全是业务代码的controller吗?不好意思,我们公司很多业务写在controller的......