博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UICollectionViewController的简单使用及一些注意点(json)
阅读量:4992 次
发布时间:2019-06-12

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

UICollectionViewController在使用之前必须要做的两件事:

一. 为UICollectionViewController指定布局方式

二. 为UICollectionViewController注册单元格

流式布局小例子:

#import "SZMProductCollectionViewController.h"#import "SZMProductModel.h"#import "SZMProductCell.h"@interface SZMProductCollectionViewController ()@property (nonatomic,strong)NSArray *products;@end@implementation SZMProductCollectionViewControllerstatic NSString * const reuseIdentifier = @"Cell";- (NSArray *)products{    if (!_products) {        //加载数据                //获取json文件路径        NSString *path = [[NSBundle mainBundle]pathForResource:@"more_project.json" ofType:nil];        //把json文件加载到一个NSData对象中        NSData *jsonData = [NSData dataWithContentsOfFile:path];        //把NSData转换为一个字典数组        NSArray *arrayDicts = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil];        //把字典数组转换为一个模型数组        NSMutableArray *modelArray = [NSMutableArray array];        for (NSDictionary *dict in arrayDicts) {            SZMProductModel *modle = [SZMProductModel productWithDict:dict];            [modelArray addObject:modle];        }        _products = modelArray;    }    return _products;}- (instancetype)init{    //创建一个流式布局对象    UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init];    //设置每个cell的大小    layout.itemSize = CGSizeMake(80, 80);    //设置每个cell间的最小水平间距    layout.minimumInteritemSpacing = 0;    //设置每个cell间的行间距    layout.minimumLineSpacing = 5;    //设置每一组距离四周的内边距    layout.sectionInset = UIEdgeInsetsMake(5, 0, 0, 0);        //返回    return [super initWithCollectionViewLayout:layout];    }- (void)viewDidLoad {    [super viewDidLoad];    //注册类:注册单元格:告诉系统(UICollectionView),当缓存池中没有现成的cell对象以后,要创建哪个类的对象作为cell来使用    //[self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:reuseIdentifier];        //注册xib    UINib *nib = [UINib nibWithNibName:@"SZMProductCell" bundle:nil];    [self.collectionView registerNib:nib forCellWithReuseIdentifier:reuseIdentifier];        [self.collectionView setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"bg"]]];    }- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{        SZMProductModel *model = self.products[indexPath.row];    NSLog(@"%@",model.title);}- (void)didReceiveMemoryWarning {    [super didReceiveMemoryWarning];    // Dispose of any resources that can be recreated.}#pragma mark 
//返回多少组- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { return 1;}//每组返回多少格子- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { return self.products.count;}//每个格子返回什么内容- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { //1.获取数据 SZMProductModel *model = self.products[indexPath.row]; //2.创建cell SZMProductCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:reuseIdentifier forIndexPath:indexPath]; //3.为cell设置数据 cell.product = model; return cell;}@end

 

转载于:https://www.cnblogs.com/ZMiOS/p/5031209.html

你可能感兴趣的文章
Python之Linux下的 virtualenv
查看>>
ASP.NET Web开发框架之三 报表开发
查看>>
大家好
查看>>
PHP文件上传类
查看>>
Python基础 --- 使用 dict 和 set
查看>>
仿迅雷播放器教程 -- 基于VLC的MFC播放器 (6)
查看>>
Python之数据结构基础
查看>>
WPF:如何高速更新Model中的属性
查看>>
hdu 1010(DFS) 骨头的诱惑
查看>>
(转)Android SDK Manager国内无法更新的解决方案
查看>>
SQL语句修改表
查看>>
ubutnu 挂载磁盘
查看>>
continue 和 break的实例
查看>>
Java学习笔记()ArrayList
查看>>
redis缓存清除
查看>>
django Highcharts制作图表--显示CPU使用率
查看>>
文本处理 tr ,col,join,paste
查看>>
oracle权限
查看>>
java方法的虚分派和方法表
查看>>
【转】字符串和浮点数格式化输出小结
查看>>