// AppDelegate.m // UI1_UICollectionView // // 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 // UI1_UICollectionView // // Created by zhangxueming on 15/7/16. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #import <UIKit/UIKit.h> @interface ViewController : UIViewController @end // // ViewController.m // UI1_UICollectionView // // Created by zhangxueming on 15/7/16. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #import "ViewController.h" //重用标志符 #define kCellReuseId @"cellId" @interface ViewController () <UICollectionViewDataSource,UICollectionViewDelegate> { UICollectionView *_collectionView; NSMutableArray *_dataList; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //1.创建数据源 [self createDataList]; //2.创建UI [self createCollectionView]; //3.遵守协议,设置代理 } //创建数据源 - (void)createDataList { _dataList = [NSMutableArray array]; for (int i=0; i<20; i++) { NSString *str = [NSString stringWithFormat:@"第%d个网格", i+1]; [_dataList addObject:str]; } } //创建UI - (void)createCollectionView { //第一个参数: collectionView 的位置 //第二个参数: 布局对象, UICollectionViewLayout类(子类)的对象 //规则布局 //UICollectionViewFlowLayout:UICollectionViewLayout UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; //上下左右边界的距离top, left, bottom, right layout.sectionInset = UIEdgeInsetsMake(5, 5, 5, 5); //设置cell的大小 layout.itemSize = CGSizeMake(180, 100); //设置横向的最小距离 layout.minimumInteritemSpacing = 5; //设置竖向的最小距离 layout.minimumLineSpacing = 10; _collectionView = [[UICollectionView alloc] initWithFrame:self.view.frame collectionViewLayout:layout]; //设置代理 _collectionView.delegate = self; _collectionView.dataSource = self; //注册cell //第一个参数:cell的类型 //第二个参数:cell的重用标识符 [_collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:kCellReuseId]; _collectionView.backgroundColor = [UIColor cyanColor]; [self.view addSubview:_collectionView]; } #pragma mark ---collectionView代理--- //返回分区的个数 - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { return 1; } //返回每个分区有多少个cell - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { return _dataList.count; } //返回cell - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { //UITableView : indexPath --> section row //UICollectionView: indexPath --> section item //从重用队列中取出cell UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:kCellReuseId forIndexPath:indexPath]; cell.backgroundColor = [UIColor yellowColor]; //移除cell.contentView 的子视图 for (UIView *view in cell.contentView.subviews) { [view removeFromSuperview]; } //在cell上显示内容 UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 30, 180, 40)]; label.text = _dataList[indexPath.item]; label.textAlignment = NSTextAlignmentCenter; [cell.contentView addSubview:label]; return cell; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end