UICollectionView(九宫格)
//
// XZProductsController.m
// Created by chao on 14-8-16.
// Copyright (c) 2014年chao. All rights reserved.
//
#import"XZProductsController.h"
#import"XZProduct.h"
#import"XZProductCell.h"
staticNSString*ProductCellID =@"ProductCell";
@interfaceXZProductsController()
/**
*数据模型
*/
@property(nonatomic,strong)NSArray*products;
@end
@implementationXZProductsController
//加载数据模型
- (NSArray*)products
{
if(_products==nil)_products= [XZProductproducts];
return_products;
}
/**
UICollectionView must be initialized with a non-nil layout parameter
UICollectionView必须使用一个非空的布局参数实例化
@property(nonatomic) CGFloat minimumLineSpacing;最小行间距
@property(nonatomic) CGFloat minimumInteritemSpacing;格子之间最小间距
@property(nonatomic) CGSize itemSize;格子大小
@property(nonatomic) UIEdgeInsets sectionInset;内边距
*/
#warning mark -会在第一个调用后再调用viewDidLoad
//必须使用一个非空的布局参数实例化
- (instancetype)init
{
//创建UICollectionView布局的实例对象
UICollectionViewFlowLayout*layout = [[UICollectionViewFlowLayoutalloc]init];
//格子的大小
layout.itemSize=CGSizeMake(80,80);
//格子之间最小间距
layout.minimumInteritemSpacing=0.0f;
//最小行间距
layout.minimumLineSpacing=16.0f;
//内边距上左下右
layout.sectionInset=UIEdgeInsetsMake(20,0,0,0);
//调用父类的给CollectionView传入指定的布局参数
return[superinitWithCollectionViewLayout:layout];
}
- (void)viewDidLoad
{
[superviewDidLoad];
//设置collectionView背景
self.collectionView.backgroundColor= [UIColorcolorWithPatternImage:[UIImageimageNamed:@"bg"]];
//读取xib文件
UINib*nib = [UINibnibWithNibName:@"XZProductCell"bundle:nil];
//注册cell告诉collectionView以指定的xib文件来创建
[self.collectionViewregisterNib:nibforCellWithReuseIdentifier:ProductCellID];
}
#pragma mark -数据源方法
//里面有多少个item (里面总共有多少个框框、件)
- (NSInteger)collectionView:(UICollectionView*)collectionView numberOfItemsInSection:(NSInteger)section
{
//取出数组里的模型个数有多少件
returnself.products.count;
}
/**
*每个item(框框、件)的内容
*/
- (UICollectionViewCell*)collectionView:(UICollectionView*)collectionView cellForItemAtIndexPath:(NSIndexPath*)indexPath
{
// indexPath参数要求单元格必须要提前注册
XZProductCell*cell = [collectionViewdequeueReusableCellWithReuseIdentifier:ProductCellIDforIndexPath:indexPath];
//给cell传数据设置cell里面的内容
cell.product=self.products[indexPath.item];
returncell;
}
#pragma mark -代理方法
//选中某个框框
- (void)collectionView:(UICollectionView*)collectionView didSelectItemAtIndexPath:(NSIndexPath*)indexPath
{
NSLog(@"摸我了");
//获取当前点击的数据模型
XZProduct*p =self.products[indexPath.item];
//拼接url路径// url :协议+资源路径
NSString*urlStr = [NSStringstringWithFormat:@"%@://%@", p.customUrl, p.ID];
//字符串转url
NSURL*url = [NSURLURLWithString:urlStr];
//判断本机是否安装了点击的软件如果没装就去AppStrore下载已下载就打开软件
if(![[UIApplicationsharedApplication]canOpenURL:url]) {
//打开指定的链接下载
[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:p.url]];
}else{
//打开安装软件
[[UIApplicationsharedApplication]openURL:url];
}
}
@end