美文网首页
枚举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布局

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