| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
10年前发布

UICollectionView 的使用详解

    #import <UIKit/UIKit.h>    @interface ViewController : UIViewController<UICollectionViewDataSource,UICollectionViewDelegateFlowLayout>{    }  @property (strong, nonatomic)UICollectionView *collectionView;    @end    ViewController.m    #import "ViewController.h"    @interface ViewController ()    @end    @implementation ViewController    - (void)viewDidLoad  {    [super viewDidLoad];        //确定是水平滚动,还是垂直滚动    UICollectionViewFlowLayout *flowLayout=[[UICollectionViewFlowLayout alloc] init];    [flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];        self.collectionView=[[UICollectionView alloc] initWithFrame:CGRectMake(0, 64, 320, 200) collectionViewLayout:flowLayout];    self.collectionView.dataSource=self;    self.collectionView.delegate=self;    [self.collectionView setBackgroundColor:[UIColor clearColor]];        //注册Cell,必须要有    [self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"UICollectionViewCell"];        [self.view addSubview:self.collectionView];  }      #pragma mark -- UICollectionViewDataSource    //定义展示的UICollectionViewCell的个数  -(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section  {    return 10;  }    //定义展示的Section的个数  -(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView  {    return 2;  }    //每个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:@"%d",indexPath.row];       for (id subView in cell.contentView.subviews) {      [subView removeFromSuperview];    }    [cell.contentView addSubview:label];    return cell;  }    #pragma mark --UICollectionViewDelegateFlowLayout    //定义每个Item 的大小  - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath  {    return CGSizeMake(60, 60);  }    //定义每个UICollectionView 的 margin  -(UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section  {    return UIEdgeInsetsMake(5, 5, 5, 5);  }    #pragma mark --UICollectionViewDelegate    //UICollectionView被选中时调用的方法  -(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath  {    UICollectionViewCell * cell = (UICollectionViewCell *)[collectionView cellForItemAtIndexPath:indexPath];    //临时改变个颜色,看好,只是临时改变的。如果要永久改变,可以先改数据源,然后在cellForItemAtIndexPath中控制。(和UITableView差不多吧!O(∩_∩)O~)    cell.backgroundColor = [UIColor greenColor];    NSLog(@"item======%d",indexPath.item);    NSLog(@"row=======%d",indexPath.row);    NSLog(@"section===%d",indexPath.section);  }    //返回这个UICollectionView是否可以被选择  -(BOOL)collectionView:(UICollectionView *)collectionView shouldSelectItemAtIndexPath:(NSIndexPath *)indexPath  {    return YES;  }    @end