码迷,mamicode.com
首页 > 其他好文 > 详细

UICollectionView的使用方法

时间:2015-04-17 14:03:45      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:ios开发   ios   uicollectionview   uitableview   

- (void)viewDidLoad {

    [super viewDidLoad];

    self.view.backgroundColor = [UIColor lightGrayColor];

    //确定是水平滚动,还是垂直滚动

    UICollectionViewFlowLayout *flowLayout=[[UICollectionViewFlowLayout alloc] init];

    [flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];

    

    _collectionView=[[UICollectionView alloc] initWithFrame:CGRectMake(0, 64, self.view.frame.size.width, self.view.frame.size.height-64) collectionViewLayout:flowLayout];

    _collectionView.dataSource=self;

    _collectionView.delegate=self;

    [_collectionView setBackgroundColor:[UIColor greenColor]];

    

    //注册Cell,必须要有

    [_collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"UICollectionViewCell"];

    

    [self.view addSubview:_collectionView];


}

#pragma mark - collectionView dataSource Or delegate

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

{

    return 50;

}

//每个UICollectionView展示的内容

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

{

    static NSString * CellIdentifier = @"UICollectionViewCell";

    UICollectionViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];

    

    cell.backgroundColor = [UIColor colorWithRed:((10 * indexPath.row) / 255.0) green:((20 * indexPath.row)/255.0) blue:((30 * indexPath.row)/255.0) alpha:1.0f];

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 20, 20)];

    label.textColor = [UIColor redColor];

    label.text = [NSString stringWithFormat:@"%ld",(long)indexPath.row];

    

    for (id subView in cell.contentView.subviews) {

        [subView removeFromSuperview];

    }

    [cell.contentView addSubview:label];

    return cell;

}

-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView

{

    return 1;

}

//定义每个UICollectionView margin

-(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section

{

    return UIEdgeInsetsMake(5, 5, 5, 5);

}

//UICollectionView被选中时调用的方法

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

{

    UICollectionViewCell * cell = (UICollectionViewCell *)[collectionView cellForItemAtIndexPath:indexPath];

    //临时改变个颜色,看好,只是临时改变的。如果要永久改变,可以先改数据源,然后在cellForItemAtIndexPath中控制。(和UITableView差不多吧!O(∩_∩)O~

    cell.backgroundColor = [UIColor greenColor];

    NSLog(@"item======%ld",(long)indexPath.item);

    NSLog(@"row=======%ld",(long)indexPath.row);

    NSLog(@"section===%ld",(long)indexPath.section);

}

//定义每个Item 的大小

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

{

    return CGSizeMake(100, 100);

}

//返回这个UICollectionView是否可以被选择

-(BOOL)collectionView:(UICollectionView *)collectionView shouldSelectItemAtIndexPath:(NSIndexPath *)indexPath

{

    return YES;

}


- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

UICollectionView的使用方法

标签:ios开发   ios   uicollectionview   uitableview   

原文地址:http://blog.csdn.net/yangchen9931/article/details/45094661

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!