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

UICollectionReusableView 使用时的一些问题

时间:2016-07-08 11:40:14      阅读:1998      评论:0      收藏:0      [点我收藏+]

标签:

在使用UICollectionView 时, 设置分区头时, 

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath;

返回值不能为 nil 

我开始写时, 写成下面样子,然后就报错

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath

{

    if ([kind isEqualToString:UICollectionElementKindSectionHeader])

    {

        if (indexPath.section == 0)

        {

            HomeCollectionReusableView *view = [collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:firstReusableView forIndexPath:indexPath];

            return view;

        }

          else           

        {

          HomeCollectionReusableView *view = [collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:secondReusableView forIndexPath:indexPath];

           return view;

       }     

    }

       return nil;

}

报错信息:
*** Assertion failure in -[UICollectionView _createPreparedSupplementaryViewForElementOfKind:atIndexPath:withLayoutAttributes:applyAttributes:], /SourceCache/UIKit/UIKit-2903.2/UICollectionView.m:1401

后来多方查找原因, 发现, 以上方法, 必须返回一个有效的值.

 正确的写法:

- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath

{

    UICollectionReusableView *view;

    

    if ([kind isEqualToString:UICollectionElementKindSectionHeader])

    {

        if (indexPath.section == 0)

        {

            view = [collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:firstReusableView forIndexPath:indexPath];

        }

        

        else

        {

            view = [collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:secondReusableView forIndexPath:indexPath];

        }

    }

       return view;

}

 

UICollectionReusableView 使用时的一些问题

标签:

原文地址:http://www.cnblogs.com/balopy/p/5652788.html

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