//  AppDelegate.m
// UI3_UICollectionViewMuti
//
// Created by zhangxueming on 15/7/16.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import "AppDelegate.h"
#import "ViewController.h" @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
ViewController *root = [[ViewController alloc] init];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:root];
self.window.rootViewController = nav;
self.window.backgroundColor = [UIColor whiteColor]; return YES;
}
//  ViewController.h
// UI3_UICollectionViewMuti
//
// Created by zhangxueming on 15/7/16.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import <UIKit/UIKit.h> @interface ViewController : UIViewController @end //
// ViewController.m
// UI3_UICollectionViewMuti
//
// Created by zhangxueming on 15/7/16.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import "ViewController.h"
#import "DataModel.h"
#import "HeaderCollectionReusableView.h"
#import "FooterCollectionReusableView.h"
#import "DataCollectionViewCell.h" #define kCellReuseID @"cellId" #define kHeaderReuseID @"headerId"
#define kFooterReuseId @"footerId" //UICollectionViewDelegateFlowLayout 遵守 UICollectionViewDelegate
@interface ViewController () <UICollectionViewDelegateFlowLayout,UICollectionViewDataSource>
{
UICollectionView *_collectionView;
NSMutableArray *_dataList;
} @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//创建数据源
[self createDatadList];
//创建UI
[self createUI];
//代理
} - (void)createDatadList
{
_dataList = [NSMutableArray array];
for (int i=0; i<4; i++) {
NSMutableArray *array = [NSMutableArray array];
for (int j=0; j<5; j++) {
NSString *name = [NSString stringWithFormat:@"picture%d",i*5+j];
NSString *path = [[NSBundle mainBundle] pathForResource:name ofType:@"png"];
DataModel *model = [[DataModel alloc] init];
model.title = [NSString stringWithFormat:@"图片%d",i*5+j];
model.image = [UIImage imageWithContentsOfFile:path];
[array addObject:model];
}
[_dataList addObject:array];
}
} - (void)createUI
{
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
_collectionView = [[UICollectionView alloc] initWithFrame:self.view.frame collectionViewLayout:layout];
_collectionView.backgroundColor = [UIColor whiteColor]; //注册cell [_collectionView registerClass:[DataCollectionViewCell class] forCellWithReuseIdentifier:kCellReuseID];
//注册headerView footerView
//注册headerView
//UICollectionElementKindSectionHeader headerView 类型
[_collectionView registerClass:[HeaderCollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:kHeaderReuseID];
//注册footerView
[_collectionView registerClass:[FooterCollectionReusableView class] forSupplementaryViewOfKind:UICollectionElementKindSectionFooter withReuseIdentifier:kFooterReuseId]; //设置代理
_collectionView.delegate = self;
_collectionView.dataSource = self;
[self.view addSubview:_collectionView];
} #pragma mark ---UICollectionViewDataSource--- //返回分区的个数
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return _dataList.count;
} //返回cell的个数 - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return [_dataList[section] count];
} //返回cell - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
DataCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:kCellReuseID forIndexPath:indexPath];
DataModel *model = [[_dataList objectAtIndex:indexPath.section] objectAtIndex:indexPath.item];
[cell config:model];
return cell;
} #pragma mark ---UICollectionViewDelegateFlowLayout---
//返回cell的大小
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
return CGSizeMake(150, 120);
} //返回上下左右边距
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section
{
return UIEdgeInsetsMake(10, 5, 10, 5);
} //返回竖向的间距
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section
{
return 20;
}
//返回横向的间距
- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section
{
return 5;
} //获取headerView footerView - (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath
{
//headerView
if (kind == UICollectionElementKindSectionHeader)
{
HeaderCollectionReusableView *headerView = [collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:kHeaderReuseID forIndexPath:indexPath];
headerView.titleLabel.text = [NSString stringWithFormat:@"第%ld分区", indexPath.section];
headerView.titleLabel.textAlignment = NSTextAlignmentCenter;
headerView.imageView.image = [UIImage imageNamed:@"headerImage.png"];
headerView.backgroundColor = [UIColor yellowColor];
return headerView;
}//footerView
else if(kind == UICollectionElementKindSectionFooter)
{
FooterCollectionReusableView *footerView = [collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:kFooterReuseId forIndexPath:indexPath];
footerView.imageView.image = [UIImage imageNamed:@"footerImage@2x"];
return footerView;
}
return nil;
} //返回headerView大小
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section
{
return CGSizeMake(375, 44);
} //返回footerView的大小
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section
{
return CGSizeMake(375, 44);
} - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} @end
//  HeaderUICollectionReusableView.h
// UI3_UICollectionViewMuti
//
// Created by zhangxueming on 15/7/16.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import <UIKit/UIKit.h> @interface HeaderCollectionReusableView : UICollectionReusableView
//{
// UILabel *_titleLabel;
// UIImageView *_imageView;
//} @property (nonatomic, retain)UILabel *titleLabel;
@property (nonatomic, retain)UIImageView *imageView; @end //
// HeaderUICollectionReusableView.m
// UI3_UICollectionViewMuti
//
// Created by zhangxueming on 15/7/16.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import "HeaderCollectionReusableView.h" @implementation HeaderCollectionReusableView //重写HeaderCell
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
_titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 44)];
_imageView = [[UIImageView alloc] initWithFrame:CGRectMake(300, 0, 44, 44)];
[self addSubview:_titleLabel];
[self addSubview:_imageView];
}
return self;
} @end
//  FooterCollectionReusableView.h
// UI3_UICollectionViewMuti
//
// Created by zhangxueming on 15/7/16.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import <UIKit/UIKit.h> @interface FooterCollectionReusableView : UICollectionReusableView
//{
// UIImageView *_imageView;
//} @property (nonatomic, retain)UIImageView *imageView; @end // FooterCollectionReusableView.m
// UI3_UICollectionViewMuti
//
// Created by zhangxueming on 15/7/16.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import "FooterCollectionReusableView.h" @implementation FooterCollectionReusableView //重写FooterCell
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
_imageView = [[UIImageView alloc] initWithFrame:CGRectMake(00, 0, 375, 44)];
[self addSubview:_imageView];
}
return self;
} @end
//  DataCollectionViewCell.h
// UI3_UICollectionViewMuti
//
// Created by zhangxueming on 15/7/16.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import <UIKit/UIKit.h>
#import "DataModel.h" @interface DataCollectionViewCell : UICollectionViewCell
{
UILabel *_titleLabel;
UIImageView *_imageView;
} //显示模型数据
- (void)config:(DataModel *)model; @end //
// DataCollectionViewCell.m
// UI3_UICollectionViewMuti
//
// Created by zhangxueming on 15/7/16.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import "DataCollectionViewCell.h" @implementation DataCollectionViewCell - (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
_titleLabel = [[UILabel alloc] init];
_imageView = [[UIImageView alloc] init];
[self addSubview:_imageView];
[_imageView addSubview:_titleLabel];
}
return self;
} //显示数据
- (void)config:(DataModel *)model
{
_titleLabel.frame = CGRectMake(0, 0, 150, 30);
_imageView.frame = CGRectMake(0, 0, 150, 100);
_titleLabel.textAlignment = NSTextAlignmentCenter;
_titleLabel.backgroundColor = [UIColor grayColor];
_titleLabel.alpha = 0.5;
_titleLabel.textColor = [UIColor greenColor];
_titleLabel.text = model.title;
_imageView.image = model.image;
} @end
//  DataModel.h
// UI3_UICollectionViewMuti
//
// Created by zhangxueming on 15/7/16.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import <Foundation/Foundation.h>
#import <UIKit/UIKit.h> @interface DataModel : NSObject @property (nonatomic,copy) NSString *title;
@property (nonatomic,strong) UIImage *image; @end // DataModel.m
// UI3_UICollectionViewMuti
//
// Created by zhangxueming on 15/7/16.
// Copyright (c) 2015年 zhangxueming. All rights reserved.
// #import "DataModel.h" @implementation DataModel @end

UI3_UICollectionViewMuti的更多相关文章

随机推荐

  1. 【Backbone】简介

    1.Model 2.Collection 3.View 4.Router 5.History 6.Events http://addyosmani.github.io/backbone-fundame ...

  2. [Angular2 Router] Programmatic Router Navigation via the Router API - Relative And Absolute Router Navigation

    In this tutorial we are going to learn how to navigate programmatically (or imperatively) by using t ...

  3. iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController)

    iOS开发——实战OC篇&环境搭建之纯代码(玩转UINavigationController与UITabBarController)   这里我们就直接上实例: 一:新建一个项目singleV ...

  4. Xcode和IOS模拟器

    Xcode和IOS模拟器 目录 概述 Xcode常用操作 学会用Instrument IOS模拟器 概述 Xcode常用操作 整体缩进或者缩退 command+“[” .command+“]” 在同一 ...

  5. 代码片段---判断一文件是不是字符设备如果是把它拷贝到 /dev目录下

    #!/bin/sh myfile=/home/liu 这个是文件的路径 fd = `ls -l myfile` 获取文件的所有属性 fp= ${fd::} if ["$fp" = ...

  6. shadow fight 1.6.0 内购

    shadow fight 之前的版本只需要安装LocallApstore即可内购. 1.6.0的版本中加了越狱检查. 所以LocallApstore 无法直接使用. 需要安装xcon避开越狱检查. 也 ...

  7. C# mvc--EF中查询的本质

    UI层我直接用了窗体程序. 好了 不罗嗦 直接上代码…… private void button1_Click(object sender, EventArgs e) { //1.0创建EF上下文容器 ...

  8. eclipse[downloads]

    下载J2EE:http://www.eclipse.org/downloads/ 下载WPT插件:http://download.eclipse.org/webtools/updates 下载TOMC ...

  9. Eclipse中配置Tomcat碰到Server Tomcat v6.0 Server at localhost failed to start问题

    控制台打印异常如下: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/juli/logg ...

  10. 错误"Lc.exe 已退出,代码 -1 "

    今天做项目的时候突然出现编译不通过,错误为Lc.exe已退出,代码为-1.这让我郁闷了至少30分钟,后来上网查了一下,才知道原因所在,我们项目中使用了第三方组件(Infragistics)造成的,至于 ...