您的位置:首页 > 产品设计 > UI/UE

01-08 UICollectionView 例子

2016-01-08 14:44 211 查看
#import "TimeCollectionCell.h"

#import <UIKit/UIKit.h>

typedef void (^ReturnBlock)(NSString *showText);

@interface TimeCollectionCell : UICollectionViewCell

@property (nonatomic,strong)UILabel *timeLab;

@property(nonatomic,strong) UIButton *btn;

@property (nonatomic, copy) ReturnBlock returnTextBlock;

- (void)returnText:(ReturnBlock)block;

@end

#import "TimeCollectionCell.m"

#import "TimeCollectionCell.h"

@implementation TimeCollectionCell

- (instancetype)initWithFrame:(CGRect)frame{

self = [super initWithFrame:frame];

if (self) {

// self.timeLab = [[UILabel alloc] initWithFrame:self.contentView.bounds];

// self.timeLab = [[UILabel alloc] initWithFrame:CGRectMake(5, 5,40 , 40)];

//

//// _timeLab.backgroundColor = [UIColor lightGrayColor];

// _timeLab.backgroundColor=[UIColor redColor];

// _timeLab.font =[UIFont systemFontOfSize:15];

// _timeLab.textAlignment = NSTextAlignmentCenter;

// [self.contentView addSubview:self.timeLab];

_btn=[[UIButton alloc]initWithFrame:CGRectMake(5, 5, 40 , 40)];

_btn.backgroundColor=[UIColor redColor];

[_btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];

[self.contentView addSubview:_btn];

}

return self;

}

-(void)btnClick:(UIButton *)btn{

NSLog(@"hh");

if (self.returnTextBlock != nil) {

self.returnTextBlock(@"你好!");

}

}

-(void)returnText:(ReturnBlock)block{

self.returnTextBlock = block;

}

#pragma mark lizi

/*

#import "YYimageCell.h"

@interface YYimageCell ()

@property(nonatomic,strong)UIImageView *imageView;

@end

@implementation YYimageCell

- (id)initWithFrame:(CGRect)frame

{

self = [super initWithFrame:frame];

if (self) {

UIImageView *imageView=[[UIImageView alloc]init];

[self addSubview:imageView];

self.imageView=imageView;

}

return self;

}

-(void)setIcon:(NSString *)icon

{

_icon=[icon copy];

self.imageView.image=[UIImage imageNamed:icon];

}

-(void)layoutSubviews

{

[super layoutSubviews];

self.imageView.frame=self.bounds;

}

*/

@end

#import "AppDelegate.h"

#import "GzCollectionViewController.h"

@interface AppDelegate ()

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

_window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];

GzCollectionViewController *cc=[GzCollectionViewController new];

UINavigationController *nav=[[UINavigationController alloc]initWithRootViewController:cc];

_window.rootViewController=nav;

[_window makeKeyAndVisible];

return YES;

}

主函数

#import "GzCollectionViewController.h"

#import "TimeCollectionCell.h"

@interface GzCollectionViewController ()<UICollectionViewDataSource,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout>{

UICollectionView *_collectionView;

}

@end

#define SCREENW [UIScreen mainScreen].bounds.size.width

#define SCREENH [UIScreen mainScreen].bounds.size.height

@implementation GzCollectionViewController

- (void)viewDidLoad {

[super viewDidLoad];

self.view.backgroundColor=[UIColor yellowColor];

self.title=@"瀑布流";

#pragma mark http://www.cnblogs.com/wendingding/p/3888797.html 文顶顶 http://www.cnblogs.com/wendingding/p/3888642.html http://www.cnblogs.com/wendingding/p/3890953.html
UICollectionViewFlowLayout *flowLayOut = [[UICollectionViewFlowLayout alloc]init];

// [flowLayOut setItemSize:CGSizeMake((SCREENW - 20)/6, 30)];

// [flowLayOut setItemSize:CGSizeMake(200, 100)];

flowLayOut.sectionInset = UIEdgeInsetsMake(5, 5, 5, 5);

_collectionView = [[UICollectionView alloc]initWithFrame:CGRectMake(0, 0, SCREENW, SCREENH) collectionViewLayout:flowLayOut];

_collectionView.dataSource = self;

_collectionView.delegate = self;

_collectionView.backgroundColor = [UIColor yellowColor];

[self.view addSubview:_collectionView];

[_collectionView registerClass:[TimeCollectionCell class] forCellWithReuseIdentifier:@"cell"];

// 6 [self.collectinView registerNib:[UINib nibWithNibName:@"YYcell" bundle:nil] forCellWithReuseIdentifier:YYIDCell];

}

-(void)preference{

/*'''

50 //默认处于第0组的第500个模型的左边

51 // [self.collectinView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:500 inSection:0] atScrollPosition:UICollectionViewScrollPositionLeft animated:YES];

52

53 [self.collectinView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:0 inSection:50] atScrollPosition:UICollectionViewScrollPositionLeft animated:YES];

 //3)通过动画滚动到下一个位置

37 [self.collectinView scrollToItemAtIndexPath:nextIndexPath atScrollPosition:UICollectionViewScrollPositionLeft animated:YES];

*/

}

-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{

return 2 ;

}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{

return 5;

}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{

static NSString *identifier = @"cell";

//也可以 向tableviewcell 那样的在这里面写,但是可能会出错 (可能会出错的点 好像是三点 ???)

TimeCollectionCell *cell =(TimeCollectionCell*) [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];

cell.layer.borderColor = [UIColor lightGrayColor].CGColor;

cell.layer.borderWidth = 2;

//

// cell.timeLab.backgroundColor =[UIColor whiteColor];

cell.backgroundColor =[UIColor greenColor];

// cell.timeLab.textColor=[UIColor redColor];

// cell.timeLab.text = @"200";

[cell.btn setTitle:@"200" forState:UIControlStateNormal];

__block NSString *reStr;

[cell returnText:^(NSString *showText) {

reStr=showText;

}];

// NSLog(@"....heihei......");

return cell ;

}

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{

NSLog(@"嘿嘿 选中了 !!!");

}

//定义每个UICollectionView 的大小

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath

{

// return CGSizeMake((SCREENW - 10)/5, 26);

return CGSizeMake(60,60);

}

//- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section{

// return 0;

//}

//- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section{

// return 0;

//}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: