美文网首页
枚举enum控制UI布局

枚举enum控制UI布局

作者: 拖不垮打不烂 | 来源:发表于2023-01-05 10:57 被阅读0次

这是对iOS 数据源控制TableView,尽可能减少逻辑判断的优化, 也可以对其他数据在控制器中创建时简化大量代码.

新增ZWTableViewExampleEnum枚举类, 分别对应Cell上的UI展示数据:

enum ZWTableViewExampleEnum: String {
    case classification = "分类"
    case course = "我的课表"
    case money = "我的余额"
    case message = "消息"
    case version = "当前版本"
    
    case other = "其他"
    
    // 根据枚举对属性进行赋值
    var imgStr: String {
        switch self {
        case .classification:
            return "fenlei"
        case .course:
            return "kebiao"
        case .money:
            return "qianbao"
        case .message:
            return "xiaoxi"
        case .version:
            return "lishi"
        default:
            return ""
        }
    }
    
    var content: String {
        switch self {
        case .version:
            return "1.2.1"
        default:
            return ""
        }
    }
    
    var isMore: Bool {
        switch self {
        case .version:
            return false
        default:
            return true
        }
    }
}

ZWTableViewExampleModel新增枚举属性,并新增创建方法:

 var type: ZWTableViewExampleEnum? // 增加枚举属性
    
    /// 点击每行cell点击事件,传索引
    var itemClick : ((_ indexPath: IndexPath) -> ())?
    
    /// 利用枚举创建
    class func initModel(type: ZWTableViewExampleEnum?) -> ZWTableViewExampleModel{
        let item = ZWTableViewExampleModel()
        item.type = type
        return item
    }

修改ZWTableViewExampleVC数据源创建方法:

 let model0_0 = ZWTableViewExampleModel.initModel(type: .classification)
        model0_0.itemClick = { indexPath in
        print("点击了分类")
  }
        
  modelData = [
               [model0_0]
              ]

修改ZWTableViewExampleCell的赋值方法:

 var model: ZWTableViewExampleModel? {
        didSet {
            titleL.text = model?.type?.rawValue
            contentL.text = model?.type?.content
            imgV.image = UIImage.init(named: model?.type?.imgStr ?? "")
            moreImgV.isHidden = !(model?.type?.isMore ?? true)
        }
    }

相关文章

  • 枚举enum控制UI布局

    这是对iOS 数据源控制TableView,尽可能减少逻辑判断[https://www.jianshu.com/p...

  • 枚举型typedef

    一. 定义枚举型 //常用typedef NS_ENUM(NSInteger, UIButtonType) {UI...

  • swift3语法(八)

    枚举/结构体 枚举 定义形式enum 枚举名 { 枚举值} // 例如enum CompassPoint {...

  • iOS NS_ENUM 枚举在位域的使用

    enum 枚举 枚举 NS_ENUM 在程序开发中我们经常会用到,一般用于给控制器中加上一个枚举值可以区别我们的业...

  • Rust 编程语言-6-枚举和模式匹配

    6. Enum和Pattern matching 6.1 Enum枚举 IP地址枚举 消息类型枚举:可以看到枚举中...

  • Flutter -- 枚举

    枚举 枚举是一种有穷序列集的数据类型 使用关键字enum定义一个枚举 枚举常用于代替常量,控制语句等 Dart枚举...

  • 菜鸡学Swift3.0 12.枚举

    1. 枚举定义 enum 定义枚举类型 { case 枚举项 ... } 2.原始值 rawValue enum...

  • Swift Day03 枚举 可选项

    一、枚举 1. 枚举(enum)的基本写法? 2. 枚举(enum)的关联值(Associated Value)?...

  • Python_枚举

    一、枚举 Enum类 Python中所有枚举类型都是enum模块下的Enum类的子类。 枚举中的标识最好全部使用大...

  • 枚举学习

    java enum枚举类 enum(枚举)类介绍 **java枚举类是一组预定义常量的集合,使用enum关键字声明...

网友评论

      本文标题:枚举enum控制UI布局

      本文链接:https://www.haomeiwen.com/subject/mucmqdtx.html