首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UICollectionViewFlowLayout minimumInteritemSpacing不工作

UICollectionViewFlowLayout minimumInteritemSpacing不工作
EN

Stack Overflow用户
提问于 2014-06-19 10:01:04
回答 2查看 10.4K关注 0票数 11

我的UICollectionView有两个问题:

  • minimumInteritemSpacing不起作用
  • 它在iOS 6上水平溢出。

我设置的布局如下:

代码语言:javascript
复制
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
layout.itemSize = CGSizeMake(70.0f, 70.0f);
layout.scrollDirection = UICollectionViewScrollDirectionVertical;
layout.minimumLineSpacing = 0.0f;
layout.minimumInteritemSpacing = 0.0f;

_collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];
// I set the size of _collectionView in layoutSubviews:
// _collectionView.frame = self.bounds;

_collectionView.contentInset = UIEdgeInsetsMake(8.0f, 8.0f, 8.0f, 8.0f);

该图像显示了iOS 6上的结果(在iOS 7上没有溢出,但列之间的间距仍然不是零)

我尝试过这个解决方案https://gist.github.com/OliverLetterer/5583087,但它不能修复我的情况下的任何东西。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-19 10:39:55

来自minimumInterItemSpacing属性的文档:

对于水平滚动网格,此值表示同一列中项之间的最小间距。这个间距用于计算在一行中可以容纳多少项,但在确定项目数之后,可以向上调整实际间距。

流布局将均匀地间隔单元格的宽度,其间距不小于所设置的最小间距。如果不需要间隔,则需要实现自己的布局。

我不确定iOS 6溢出问题。尝试放弃对iOS 6的支持;)

票数 17
EN

Stack Overflow用户

发布于 2020-02-09 15:35:16

“行距”可以是指垂直线之间的空间。

假设您有一个普通的单行水平集合视图。

(例如,整个视图只是50高,而项目只是50x50。)

正如用户@matt所解释的

  • 水平集合视图有单元格列。

  • 苹果所指的“线”()是垂直的“线”(!)细胞

因此:

  • 对于具有一行的简单水平集合视图,

  • 苹果将“行”间距命名为--实际上是--项之间的间距

因此,令人惊讶的是,在带有一行的简单水平集合视图中,要设置项之间的间隔,只需:

代码语言:javascript
复制
l.minimumLineSpacing = 6  // Apple means "vertical scan lines" by "lines"

(在具有一行的普通简单水平集合视图中,minimumInteritemSpacing完全没有意义。)

这最终解释了为什么互联网上有100页的内容问为什么minimumInteritemSpacing不能工作。神奇的用户提示@matt

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24303876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档