雖然這個早已不是新東西了,可是以前項目中一直沒有機會用,只知道跟tableView原理相同。xcode
弄了個自定義UICollectionViewCell的小DEMO:atom
(1)在storyboard中拖拽一個UICollectionViewController:spa
(2)新建RootCollectionViewController繼承自UICollectionViewController.net
- #import "RootCollectionViewController.h"
- #import "RootCollectionViewCell.h"
-
- @interface RootCollectionViewController ()
-
- @end
-
- @implementation RootCollectionViewController
-
- - (void)viewDidLoad {
- [super viewDidLoad];
- self.clearsSelectionOnViewWillAppear = NO;
- }
-
- - (void)didReceiveMemoryWarning {
- [super didReceiveMemoryWarning];
- }
-
-
- #pragma mark <UICollectionViewDataSource>
-
- - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
- return 1;
- }
-
-
- - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
- return 20;
- }
-
- - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
- static NSString * CellIdentifier = @"GradientCell";
- RootCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
- cell.backgroundColor = [UIColor colorWithRed:((110 * indexPath.row) / 255.0) green:((220 * indexPath.row)/255.0) blue:((330 * indexPath.row)/255.0) alpha:1.0f];
- [cell.lab setText:@"xxxx"];
- [cell.frontView setBackgroundColor:[UIColor redColor]];
- return cell;
- }
-
- #pragma mark <UICollectionViewDelegate>
-
-
- @end
(3)新建RootCollectionViewCell繼承自UICollectionViewCell,頭文件以下,自定義兩個控件
- #import <UIKit/UIKit.h>
-
- @interface RootCollectionViewCell : UICollectionViewCell
-
- @property(nonatomic,weak)IBOutlet UILabel *lab;
- @property(nonatomic,weak)IBOutlet UIView *frontView;
-
- @end
(4)storyboard操做:
點擊CollectionViewController,設置Class:code
點擊CollectionCell設置Class:blog
拖動一個View和lab到CollectionView上,設置約束爲固定寬高上下居中:繼承
點擊左側的CollectionCell,,將IBOutlet,鏈接到lab和frontView上:get
設置大小及邊距,固然了,xcode6之後,也能夠根據不一樣的屏幕設置相應SizeClass下的邊距:string
(5)運行效果:it