Code Monkey home page Code Monkey logo

xcodemanlcx / mvvmtableview Goto Github PK

View Code? Open in Web Editor NEW
6.0 4.0 0.0 753 KB

多个一行代码组件(解耦型)! 1 一行代码处理数据为空逻辑;2 一行代码处理网络异常逻辑;3 UITablviView的解耦型复用组件:初始化一行代码、注册cell一行代码(无需命名复用id)、布局适配一行代码;4 自定义UITableViewCell:自定义Cell的便利使用、一行代码处理cell的逻辑;5 加载更多与刷新:加载更多一行代码、上拉刷新一行代码;6 MVVM架构;7 状态切换无bug:有无网络、有无数据、刷新与加载更多各种状态切换;8 每个功能都是独立解耦的;9 可dealloc检看无内存泄漏;

License: MIT License

Objective-C 99.61% Ruby 0.39%

mvvmtableview's Introduction

MVVMTableView(MoreDataTableView):解耦实现多个一行代码处理组件

  • 有无网络提示UI;
  • 有无数据提示UI;
  • 上拉刷新与下拉加载;
  • UITableView的初始化、注册复用cell(免命名复用cell的id)、布局适配、cell中响应事件处理;
  • 快速自定义UITableViewCell;

思路

  • 解耦:UI与逻辑分离;
  • 高复用性、高度自定义、可维护性强:组件功能单一职责化,尽量单层封层实现;
  • 避免冲突:复用性强的类名与类的category(扩展属性或方法)加了前缀;
  • 使用:简洁、解耦的一行代码;

工具说明

一行代码:处理数据为空UI

  • #import "NSObject+LCXDataNullViewHandle.h":数据为空UI逻辑(结合了自定义UI);
  • #import "NSObject+LCXDataNull.h":自定义UI逻辑;
  • #import "LCXDataNullView.h":自定义UI;

一行代码:处理无网络UI

  • #import "NSObject+LCXNoNetWork.h":无网络UI逻辑(结合了自定义UI);
  • #import "NSObject+LCXNoNetWork.h":自定义UI逻辑;
  • #import "LCXNoNetworkView.h":自定义UI;

一行代码:实现MJRefresh的上拉加载,或下拉刷新,或加载更多-数组逻辑

  • #import "UIScrollView+LCXRefresh.h":实现MJRefresh的上拉加载,或下拉刷新
  • #import "NSMutableArray+LCXHandleMoreData.h":加载更多-数据源逻辑处理

UITableView工具

一行代码:TableView初始化

  • #import "LCXInitTableView.h":函数式编程,代码简洁;但函数内部不能使用self,书写返回值和参数时基本无提示;

一行代码:TableView的复用Cell批量注册(无需命名复用cell的id)

#import "UITableView+LCXRegisterCellClasses.h":扩展了UITableView的NSArray属性,作为自定义cell的key(即复用id)容器;而key是复用cell类名;

一行代码:TableView布局适配(使用masonry)

  • #import "UIView+LCXMasonry.h"

一行代码:TableView的Cell响应事件处理

  • #import "UITableView+LCXHandleActionCell.h"

TableView的delegate分离(delegate的block写法)

  • #import "LCXTableBlockDelegate.h":delegate的block写法;

UITableViewCell工具

  • #import "LCXTableViewCell.h":可作为自定义Cell的父类,处理自定义UI、刷新model方法、响应cell的点击事件非常方便,快速自定义Cell;

UIView通用工具

  • #import "UIView+LCXActionBlock.h":扩展block属性,方便回调;

mvvmtableview's People

Contributors

xcodemanlcx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.