iOS-UICollectionView

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS-UICollectionView相关的知识,希望对你有一定的参考价值。

参考技术A CollectionView:
UICollectionView、UITableView、NSCollectionView
和 UITableView 不同的是,UICollectionView 不局限于垂直的单列布局。相反,collection view有一个 layout 对象,它决定子视图的位置,

UICollectionView相对于UITableView很相似,都继承于UIScrollView
UITableView的布局形式比较单一,局限于行列表,
UICollectionView的强大之处在于把视图布局分离出来成为一个独立的类,你想实现怎样的视图布局,就子类化这个类并在其中实现。
UICollectionView默认没有表头, UITableView: 有表头和表尾;
UICollectionView的区里面是项Item, UITableView:区里面是单元格Cell
collectionView和tableView最大的不同之处就是需要自定义cell, collectionView能自动的根据屏幕宽度显示横列竖!
UICollectionView主要用于瀑布流
UICollectionViewLayout是基类,其子类:UICollectionViewFlowLayout,使用的时候都用子类
CollectionView中的每个Item大小和位置可以单独定义
区别: https://blog.csdn.net/vbirdbest/article/details/50720915

1、显示内容完全由layout(布局对象)决定,必须设置UICollectionView的collectionViewLayout

2、必须设置代理
使用UICollectionView的时候,要声明:

3、必须注册cell

4、必须实现 (和UITableview一样) :

UICollectionViewLayout的精髓在于你可以定义每个cell的UICollectionViewLayoutAttributes属性

1、cell 重叠 ?
自定义UICollectionViewCell

参考:
https://blog.csdn.net/lvxiangan/article/details/73826108 超全
https://blog.csdn.net/eqera/article/details/8134986
https://www.jianshu.com/p/cf616f73d596 实践

https://blog.csdn.net/vbirdbest/article/details/50720915 有图

ios - UICollectionView 布局最后一行

【中文标题】ios - UICollectionView 布局最后一行【英文标题】:ios - UICollectionView layout last row 【发布时间】:2016-04-19 11:18:47 【问题描述】:

我目前正在开发 UICollectionView。我一直在寻找整个 SO 并发现了这个问题的几个问题,但没有一个能解决这个问题。也许如果我在这里收集一个问题中的所有事实,可以为这个问题提供解决方案:

如果我有一个带有简单 UICollectionViewFlowLayout 子类的 collectionView,那么除了最后一行之外一切正常。我用自动布局做所有事情。单元格对齐得很好,一旦新行开始,它们就会填写该行。唯一的问题是最后一行的布局仍然是等待添加另一个项目。

现在,一些代码,这是我的 UICollectionViewFlow 子类:

@implementation SubCollectionViewFlowLayout
- (instancetype)init 
    self = [super init];
    if (self) 
        self.estimatedItemSize = CGSizeMake(100, 100);
        self.minimumInteritemSpacing = 5.0f;
        self.minimumLineSpacing = 5.0f;
        self.scrollDirection = UICollectionViewScrollDirectionVertical;
    
    return self;

这是整个子类化。所以它真的只是基本的。

因此,在寻找与此问题有关的另一个问题时,我发现了以下 SO 问题。第一个正是我的问题,其他的似乎相似。

UICollectionView layout of last cell

UICollectionView estimatedItemSize - last cell is not aligned

UICollectionView last cell not aligned

Last item in UICollectionView not alligned - Swift

我希望这是对问题的足够描述,我们一如既往地感谢您的帮助。

【问题讨论】:

【参考方案1】:

经过一番研究,我想不可能顺利解决这个问题。

但是有可能解决它,描述为in this Answer。

只需添加一个高度=0 和宽度=collectionViewWidth 的附加单元格。对此进行了测试,效果很好。

【讨论】:

你是如何设置集合视图的宽度的?您从哪里获得集合视图宽度?

以上是关于iOS-UICollectionView的主要内容,如果未能解决你的问题,请参考以下文章