博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS tableview嵌套collectionview
阅读量:5897 次
发布时间:2019-06-19

本文共 2844 字,大约阅读时间需要 9 分钟。

还是项目需求,需要在一个列表实现多个图片滑动的效果,所以就用了tableview嵌套collectionview来实现,废话不多说,直接上代码

这是tableView的创建,collectionview直接写在了自定义的tableviewCell里#pragma make --tableView代理方法-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{    return self.dataArr.count;}-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{    ZQWMyOrderCell *cell = [tableView dequeueReusableCellWithIdentifier:tableViewCellId];    ZQWMyOrderModel *model = self.dataArr[indexPath.row];    cell.model = model;    return cell;}这里是自定义tableviewcell的方法//collectionView        UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];        layout.itemSize = CGSizeMake(100, 100);        layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;                self.collectionView = [[UICollectionView alloc] initWithFrame:CGRectMake(15, lineView.y + 1, myWidth - 30, 100) collectionViewLayout:layout];        layout.minimumInteritemSpacing = 3;        self.collectionView.delegate = self;        self.collectionView.dataSource = self;        [self.collectionView registerClass:[ZQWMyOrderCollectionCell class] forCellWithReuseIdentifier:collectionViewCellId];        self.collectionView.backgroundColor = [UIColor whiteColor];        [self.contentView addSubview:self.collectionView];//tableviewcell的model 的set方法里获取每个collectionview的数据-(void)setModel:(ZQWMyOrderModel *)model{NSData *data = [[NSData alloc] initWithData:[model.orderItemList dataUsingEncoding:NSUTF8StringEncoding]];    NSArray *dataArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];//这里的数组一定不能懒加载,否则数据就会出问题    self.dataArr = [NSMutableArray array];    for (NSDictionary *modelDict in dataArray) {        ZQWMyOrderItemModel *model = [ZQWMyOrderItemModel new];        [model setValuesForKeysWithDictionary:modelDict];        [self.dataArr addObject:model];    }    //对你的collectionView进行刷新    dispatch_async(dispatch_get_main_queue(), ^{                [self.collectionView reloadData];            });}剩下的就是正常的赋值,事件的处理了#pragma make --collectionView代理方法-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{        return self.dataArr.count;}-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{    ZQWMyOrderCollectionCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:collectionViewCellId forIndexPath:indexPath];    ZQWMyOrderItemModel *model = self.dataArr[indexPath.row];        cell.model = model;    return cell;}-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{    NSLog(@"collectionView点击事件");}到这里就结束了,希望能帮到你!!复制代码

转载于:https://juejin.im/post/5a311bc26fb9a045263b9670

你可能感兴趣的文章
SecureCRT上传、下载文件 使用rz【上传】& sz【下载】命令
查看>>
golang map to struct
查看>>
jdk1.8.0_101/bin下各文件解释
查看>>
Duilib将UI资源文件打包到exe教程
查看>>
Redis集群(二):Redis的安装
查看>>
Android之消息机制Handler,Looper,Message解析
查看>>
利用Shodan和Censys进行信息侦查
查看>>
关于《ASP.NET MVC企业级实战》
查看>>
shell脚本:Kill掉MySQL中所有sleep的client线程
查看>>
Sublime text 神器小记
查看>>
我对知乎前端相关问题的十问十答(转)
查看>>
FormatMessage函数的使用方法
查看>>
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
查看>>
优化后的组合算法
查看>>
JspSmartUpload 实现上传
查看>>
Android c/c++ 应用向linux 平台迁移执行
查看>>
【postman】谷歌postman插件的基本选项含义
查看>>
连通性问题--Algorithms IN C读书笔记
查看>>
postgresql解决锁表
查看>>
虚拟化技术总览
查看>>