博客
关于我
强烈建议你试试无所不能的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

你可能感兴趣的文章
【vijos】【树形dp】佳佳的魔法药水
查看>>
聚合新闻头条
查看>>
Ubuntu 关闭锁屏界面的 on-screen keyboard
查看>>
凸优化学习笔记
查看>>
使用ehcache-spring-annotations开启ehcache的注解功能
查看>>
Charles设置HTTPS抓包
查看>>
NGUI出现Shader wants normals, but the mesh UIAtlas doesn't have them
查看>>
Boost.Asio c++ 网络编程翻译(14)
查看>>
Codeforces Round #306 (Div. 2) D.E. 解题报告
查看>>
uva 1557 - Calendar Game(博弈)
查看>>
HDU1051 Wooden Sticks 【贪婪】
查看>>
十大经典数据挖掘算法
查看>>
Rhythmbox乱码的解决的方法
查看>>
中纪委:抗震中官员临危退缩玩忽职守将被严处
查看>>
MySQL 8.0.12 基于Windows 安装教程
查看>>
在hue中使用hive
查看>>
eclipse快捷键
查看>>
在指定文本里记录内容
查看>>
Android WebView常见问题及解决方案汇总
查看>>
[BZOJ4025]二分图
查看>>