【问题标题】:UICollectionViewFlowLayout minimumInteritemSpacing doesn't workUICollectionViewFlowLayout minimumInteritemSpacing 不起作用
【发布时间】:2014-08-09 19:56:15
【问题描述】:

我的 UICollectionView 有两个问题:

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

我这样设置布局:

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,但在我的情况下它并没有解决任何问题。

【问题讨论】:

  • 您希望看到什么?一切都向左挤压?
  • @jrturton 是的。 minimumLineSpacing 确实按预期工作,所以我看不出布局实际上需要更大的项目间间距的任何原因,因为我知道它会占用比它更多的空间。
  • 好吧,看看我的回答。行距是另一回事
  • 好的,我明白你的意思了。谢谢:)

标签: ios objective-c cocoa-touch uicollectionview uicollectionviewlayout


【解决方案1】:

来自minimumInterItemSpacing 属性的文档:

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

流布局将在其宽度上均匀排列单元格,间距不小于您设置的最小值。如果您不想要间距,则需要实现自己的布局。

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

【讨论】:

  • 谢谢,你说得对,我在 Xcode 快速帮助中看不到这个提示...而且我忘记检查文档了..
  • 我是否遗漏了什么,或者您的回答与您对文档的强调相矛盾? “实际间距可能会向上调整”意味着“第一个尺寸”可能会更小,这与“您的流布局将在其宽度上均匀排列单元格,间距不小于您设置的最小值”相矛盾。
【解决方案2】:

“行距”可以表示垂直行之间的空间。

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

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

正如用户 @matt 所解释的那样

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

  • Apple 表示的“线条”是单元格的垂直“线条”(!)

因此:

  • 在一个简单的水平集合视图只有一行的情况下,

  • Apple 将“行”间距称为 - 实际上 - 项目之间的间距

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

l.minimumLineSpacing = 6  // Apple means "vertical scan lines" by "lines"

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

这终于解释了为什么互联网上有 100 个页面询问为什么 minimumInteritemSpacing 不起作用。用户@matt 的精彩提示

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多