是否可以将项目放在NSCollectionView
自上而下,然后左右,而不是左右,然后自上而下?要以可视方式描绘它,项目当前按以下顺序呈现:
[ 1 ] [ 2 ] [ 3 ]
[ 4 ] [ 5 ] [ 6 ]
我希望它们看起来像这样:
[ 1 ] [ 3 ] [ 5 ]
[ 2 ] [ 4 ] [ 6 ]
感谢。
答案 0 :(得分:0)
项目的显示顺序取决于它们保存数据的数组中的顺序。如果将滚动更改为水平,您将获得所需的顺序,但如果您希望滚动保持垂直,则需要更改数组中对象的顺序。
要使滚动水平,请执行以下操作:
flowLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
flowLayout是对初始化集合视图时使用的UICollectionViewFlowLayout对象的引用(我假设你已经完成了)。
答案 1 :(得分:0)
是的,但有一点需要注意。
如果将NSCollectionView
的滚动方向设置为水平,则会导致集合视图中的项目按行而不是行排列。
[ 1 ] [ 5 ] [ 9 ]
[ 2 ] [ 6 ] |
[ 3 ] [ 7 ] |
[ 4 ] [ 8 ] V
要在Interface Builder 8中执行此操作,请选择集合视图,打开 Attributes Inspector ,然后从弹出按钮中选择Horizontal:
通过在集合视图的布局上设置scrollDirection
属性,您还可以在代码中实现相同的效果。注:集合视图的布局需要为NSCollectionViewFlowLayout
NSCollectionViewFlowLayout *flowLayout = [NSCollectionViewFlowLayout alloc] init];
flowLayout.scrollDirection = NSCollectionViewScrollDirectionHorizontal;
NSCollectionView *collectionView = [NSCollectionView alloc] init];
collectionView.collectionViewLayout = flowLayout;
需要注意的是,这对于您对部分的预期效果不起作用。您可能希望在视图中展开各个部分,向下流动屏幕,然后展示项目。列嵌套在每个部分中。 情况并非如此。截面将成为垂直分隔符并拉伸视图的高度,并在屏幕上布置以及类似的项目:
⌈s⌉ [ 1 ] ⌈s⌉ [ 1 ] [ 5 ]
|s| [ 2 ] |s| [ 2 ] [ 6 ]
|s| [ 3 ] |s| [ 3 ]
⌊s⌋ ⌊s⌋ [ 4 ]