美文网首页
iOS UICollectionView使用

iOS UICollectionView使用

作者: 夏天爱西瓜汁 | 来源:发表于2017-11-28 11:14 被阅读31次

    2017.3.2

    - (void)viewDidLoad  {

    [superviewDidLoad];

    self.title=@"UICollectionView学习";

    //通过Nib生成cell,然后注册 Nib的view需要继承 UICollectionViewCell

    [self.collectionViewregisterNib:[UINibnibWithNibName:@"SQCollectionCell"bundle:nil]forCellWithReuseIdentifier:kcellIdentifier];

    //注册headerView Nib的view需要继承UICollectionReusableView

    [self.collectionViewregisterNib:[UINibnibWithNibName:@"SQSupplementaryView"bundle:nil]forSupplementaryViewOfKind:UICollectionElementKindSectionHeaderwithReuseIdentifier:kheaderIdentifier];

    //注册footerView Nib的view需要继承UICollectionReusableView

    [self.collectionViewregisterNib:[UINibnibWithNibName:@"SQSupplementaryView"bundle:nil]forSupplementaryViewOfKind:UICollectionElementKindSectionFooterwithReuseIdentifier:kfooterIdentifier];

    //

    self.collectionView.allowsMultipleSelection=YES;//默认为NO,是否可以多选

    }

    #pragma mark -CollectionView datasource

    //分区

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

    return2;

    }

    //item个数

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

    return6;

    }

    // The cell that is returned must be retrieved from a call to -dequeueReusableCellWithReuseIdentifier:forIndexPath:

    // 注册cell

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

    //重用cell

    UICollectionViewCell*cell = [collectionViewdequeueReusableCellWithReuseIdentifier:kcellIdentifierforIndexPath:indexPath];

    //赋值

    UIImageView*imageView = (UIImageView*)[cellviewWithTag:1];

    UILabel*label = (UILabel*)[cellviewWithTag:2];

    NSString*imageName = [NSStringstringWithFormat:@"%ld.JPG",(long)indexPath.row];

    imageView.image= [UIImageimageNamed:imageName];

    label.text= imageName;

    cell.backgroundColor= [UIColorredColor];

    returncell;

    }

    // The view that is returned must be retrieved from a call to -dequeueReusableSupplementaryViewOfKind:withReuseIdentifier:forIndexPath:

    - (UICollectionReusableView*)collectionView:(UICollectionView*)collectionViewviewForSupplementaryElementOfKind:(NSString*)kindatIndexPath:(NSIndexPath*)indexPath {

    NSString*reuseIdentifier;

    if([kindisEqualToString: UICollectionElementKindSectionFooter ]){

    reuseIdentifier = kfooterIdentifier;

    }else{

    reuseIdentifier = kheaderIdentifier;

    }

    UICollectionReusableView*view =  [collectionView dequeueReusableSupplementaryViewOfKind :kindwithReuseIdentifier:reuseIdentifierforIndexPath:indexPath];

    UILabel*label = (UILabel*)[viewviewWithTag:1];

    if([kindisEqualToString:UICollectionElementKindSectionHeader]) {

    label.text= [NSStringstringWithFormat:@"这是header:%d",indexPath.section];

    }elseif([kindisEqualToString:UICollectionElementKindSectionFooter]) {

    view.backgroundColor= [UIColorlightGrayColor];

    label.text= [NSStringstringWithFormat:@"这是footer:%d",indexPath.section];

    }

    returnview;

    }

    //定义每个UICollectionViewCell 的大小

    - (CGSize)collectionView:(UICollectionView*)collectionViewlayout:(UICollectionViewLayout*)collectionViewLayoutsizeForItemAtIndexPath:(NSIndexPath*)indexPath{

    returnCGSizeMake(60,80);

    }

    //定义每个Section 的 margin

    -(UIEdgeInsets)collectionView:(UICollectionView*)collectionViewlayout:(UICollectionViewLayout*)collectionViewLayoutinsetForSectionAtIndex:(NSInteger)section

    {

    returnUIEdgeInsetsMake(15,15,5,15);//分别为上、左、下、右

    }

    //返回头headerView的大小

    -(CGSize)collectionView:(UICollectionView*)collectionViewlayout:(UICollectionViewLayout*)collectionViewLayoutreferenceSizeForHeaderInSection:(NSInteger)section{

    CGSize size={320,45};

    returnsize;

    }

    //返回头footerView的大小

    - (CGSize)collectionView:(UICollectionView*)collectionViewlayout:(UICollectionViewLayout*)collectionViewLayoutreferenceSizeForFooterInSection:(NSInteger)section

    {

    CGSize size={320,45};

    returnsize;

    }

    //每个section中不同的行之间的行间距

    - (CGFloat)collectionView:(UICollectionView*)collectionViewlayout:(UICollectionViewLayout*)collectionViewLayoutminimumLineSpacingForSectionAtIndex:(NSInteger)section

    {

    return10;

    }

    //每个item之间的间距

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

    //{

    //    return 100;

    //}

    //选择了某个cell

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

    {

    UICollectionViewCell*cell = [collectionViewcellForItemAtIndexPath:indexPath];

    [cellsetBackgroundColor:[UIColorgreenColor]];

    }

    //取消选择了某个cell

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

    {

    UICollectionViewCell*cell = [collectionViewcellForItemAtIndexPath:indexPath];

    [cellsetBackgroundColor:[UIColorredColor]];

    }

    // 设置滚动方向(默认垂直滚动)layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;

    相关文章

      网友评论

          本文标题:iOS UICollectionView使用

          本文链接:https://www.haomeiwen.com/subject/xsysbxtx.html