# CoreListMVC **Repository Path**: nsdictionary/CoreListMVC ## Basic Information - **Project Name**: CoreListMVC - **Description**: 大型列表MVC体系,强大的封装,Charlin精华倾情奉献!!! - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2015-03-12 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Charlin出框架的目标:简单、易用、实用、高度封装、绝对解耦! # CoreListMVC 大型列表MVC体系,强大的封装,Charlin精华倾情奉献!!!
####框架特性:
>1.高度封装了列表的事个网络请求过程
>2.封装了上拉下拉加载
>3.创新使用配置模型的方式,让更多变成可能
>4.高度统一了tableView和collectionView两个列表加载的整个过程全部共享一套业务,如果修改了任何一个地方,两个同时改变
>5.优秀的数据解析、错误处理、网络错误处理及信息指示集成
>6.多线程全部完美考虑。
>7.支持所有系统和屏幕!


####使用说明:
>(1)本框架集成了没有缓存功能的TableView列表、CollectionView列表。
>(2)本框架依赖以下框架:CoreArchive、MJExtension、CoreHttp、CoreRefresh、CoreViewNetWorkStausManager
>(3)使用前,一定要清醒的认识到,父类控制器一个ViewController,他里面分别装有TableView和CollectionView,并非纯正的TableViewVC和CollectionViewVC,因为这样很难统一封装网络请求及上拉下拉加载业务。


####使用步骤: 1.UITableViewMVC的集成:
>(1)控制器: 建立控制器,继承自CoreLTVC,建立LTConfigModel模型并传递。

>(2)视图: 建立视图cell,继承自LTCell,重写+(instancetype)cellPrepare方法,创建cell(父类默认从同名Nib创建,也可自行使用代码创建,注意cell从nib创建,nib中需要指定和类名相同的rid。)。

>(3)模型: 继承通用模型,继承自CoreListCommonModel:重写+(NSArray *)modelPrepare:方法,解析并返回列表的字典数组。

2.UICollectionViewMVC的集成:
>(1)控制器: 建立控制器,继承自CoreLCVC,控制器内部建立UICollectionViewFlowLayout及LTConfigModel模型并传递。

>(2)视图cell:建立cell,继承自LCCell,内部实现-(void)dataFill即可。(注意cell从nib创建,nib中需要指定和类名相同的rid。)

>(3)模型: 建立模型,继承自CoreListCommonModel,重写+(NSArray *)modelPrepare:方法,解析并返回列表的字典数组。



####使用示例:
Tableviewmvc的集成: //控制器: /** * 模型配置 */ -(void)config{ LTConfigModel *configModel=[[LTConfigModel alloc] init]; //url configModel.url=@"http://218.244.141.72:8080/carnet/driver.php?m=Driver&c=User&a=test_fy"; //请求方式 configModel.httpMethod=LTConfigModelHTTPMethodPOST; //模型类 configModel.ModelClass=[ShopModel class]; //cell类 configModel.ViewForCellClass=[ShopListCell class]; //标识 configModel.lid=NSStringFromClass(self.class); //pageName configModel.pageName=@"p"; //pageSizeName configModel.pageSizeName=@"pagesize"; //起始页码 configModel.pageStartValue=1222; //行高 configModel.cellHeight=100.0f; //配置完毕 self.configModel=configModel; } //模型; +(NSArray *)modelPrepare:(id)obj{ NSArray *dA=obj[@"data"][@"data"]; return dA; } //视图: /** * cell的创建 */ +(instancetype)cellPrepare{ return [super cellPrepare]; } -(void)dataFill{ //模型转换 ShopModel *shopModel=(ShopModel *)self.model; _indexLabel.text=[NSString stringWithFormat:@"%i",shopModel.mid]; _titleLabel.text=shopModel.title; _descLabel.text=shopModel.content; } CollectionMVC的集成: - (instancetype)init { UICollectionViewFlowLayout *layout=[[UICollectionViewFlowLayout alloc] init]; layout.itemSize=CGSizeMake(100, 100); layout.minimumLineSpacing=10; layout.minimumInteritemSpacing=10; layout.sectionInset=UIEdgeInsetsMake(10, 10, 10, 10); //注册cell self = [super initWithCollectionViewLayout:layout]; if (self) { } return self; } - (void)viewDidLoad { [super viewDidLoad]; self.title=@"九宫格列表"; [self.collectionView registerNib:[UINib nibWithNibName:@"TGCell" bundle:nil] forCellWithReuseIdentifier:@"TGCell"]; self.collectionView.backgroundColor=[UIColor whiteColor]; //模型配置 [self config]; } /** * 模型配置 */ -(void)config{ LTConfigModel *configModel=[[LTConfigModel alloc] init]; //url configModel.url=@"http://218.244.141.72:8080/carnet/driver.php?m=Driver&c=User&a=test_fy"; //请求方式 configModel.httpMethod=LTConfigModelHTTPMethodPOST; //模型类 configModel.ModelClass=[TGModel class]; //cell类 configModel.ViewForCellClass=[TGCell class]; //标识 configModel.lid=NSStringFromClass(self.class); //pageName configModel.pageName=@"p"; //pageSizeName configModel.pageSizeName=@"pagesize"; //起始页码 configModel.pageStartValue=0; //行高 configModel.cellHeight=100.0f; //每页数量 configModel.pageSize=18; //配置完毕 self.configModel=configModel; } //视图: -(void)dataFill{ //模型转换 TGModel *tgModel=(TGModel *)self.model; self.noLabel.text=[NSString stringWithFormat:@"%i",tgModel.mid]; self.titleLabel.text=tgModel.title; self.descLabel.text=tgModel.content; } //模型 +(NSArray *)modelPrepare:(id)obj{ NSArray *dA=obj[@"data"][@"data"]; return dA; }

----- CoreListMVC 大型列表MVC体系,强大的封装,Charlin精华倾情奉献!!! -----

#### 版权说明 RIGHTS
作品说明:本框架由iOS开发攻城狮Charlin制作。
作品时间: 2013.03.12 17:28
#### 关于Chariln INTRODUCE
作者简介:Charlin-四川成都华西都市报旗下华西都市网络有限公司技术部iOS工程师!

#### 联系方式 CONTACT
Q Q:1761904945(请注明缘由)
Mail:1761904945@qq.com