LE *_*ANG 27 uiscrollview ios uicollectionview
UICollectionView启用分页机制我做的很简单,一切正常.但是,当滚动到最后一页时,屏幕中的单元格数量不完全可见,最后一页包含上一页面的一些单元格.
如何扩大contentSize的UICollectionView,这样最后一页不包含前一页的任何细胞?
这里的一个例子:UICollectionView水平滚动6个单元格,这样:
第1页: cell0 - cell1 - cell2 - cell3
滚动:cell2-cell3-cell4-cell5 //不期望:如何更改为:cell4 - 第2页中的单元格5.
摘要:
我想设置
collectionView.contentSize = numberOfPage * collectionView.frame
不
collectionView.contentSize = numberOfCell * (cellFrame + spacing)
rea*_*eth 35
您需要子类化UICollectionViewLayout并覆盖该collectionViewContentSize方法.我继承了,UICollectionViewFlowLayout所以我不必重写所有的布局代码.
我正在构建一个4x4网格,所以我的方法看起来像这样:
- (CGSize)collectionViewContentSize
{
NSInteger itemCount = [self.collectionView numberOfItemsInSection:0];
NSInteger pages = ceil(itemCount / 16.0);
return CGSizeMake(320 * pages, self.collectionView.frame.size.height);
}
Run Code Online (Sandbox Code Playgroud)
旁注,当您使用自定义布局时,您将无法在Interface Builder中设置某些显示属性.您可以在init自定义UICollectionViewLayout子类的方法中以编程方式设置它们.这是我的参考:
- (id)init
{
self = [super init];
if (self) {
[self setup];
}
return self;
}
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super init];
if (self) {
[self setup];
}
return self;
}
- (void)setup
{
self.itemSize = CGSizeMake(65.0f, 65.0f);
self.minimumLineSpacing = 15;
self.sectionInset = UIEdgeInsetsMake(7.5f, 7.5f, 30.0f, 7.5f);
[self setScrollDirection:UICollectionViewScrollDirectionHorizontal];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35145 次 |
| 最近记录: |