美文网首页
UICollectionView(九宫格)

UICollectionView(九宫格)

作者: 143db5b5572a | 来源:发表于2016-07-02 23:58 被阅读0次

//

//  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

相关文章

网友评论

      本文标题:UICollectionView(九宫格)

      本文链接:https://www.haomeiwen.com/subject/vjnqjttx.html