你能以编程方式修改 UICollectionView 滚动方向吗?

Posted

技术标签:

【中文标题】你能以编程方式修改 UICollectionView 滚动方向吗?【英文标题】:Can you amend UICollectionView scrollDirection programmatically? 【发布时间】:2014-03-17 14:59:30 【问题描述】:

我有一个使用 Storyboard 创建的 UICollectionView(因为它有相当复杂的单元格)。我想以编程方式将 scrollDirection 更改为水平(在 4 英寸屏幕上)和垂直(在 3.5 英寸屏幕上)。

我知道您可以在启动时设置 scrollDirection,但我看不到您如何从已创建的 UICollectionView 访问此属性。

有谁知道这是否可行?

【问题讨论】:

您可能需要创建一个 for 循环,并在 UICollectionView 中找到您需要的 UIScrollView 并将其委托给您的视图控制器(如果您想知道此滚动何时滚动、拖动、等)。 【参考方案1】:

你要找的是

UICollectionViewFlowLayout

这就是你将如何使用它

UICollectionViewFlowLayout *horizontalLayout = (UICollectionViewFlowLayout *)self.collectionView.collectionViewLayout;
horizontalLayout.scrollDirection = UICollectionViewScrollDirectionHorizontal;

[self.collectionView setCollectionViewLayout:horizontalLayout];

我假设您的 collectionView 与故事板链接为 self.collectionView

这是快速而肮脏的方式。您应该做的是创建自己的布局并继承 UICollectionViewFlowLayout 类。

可以在此处找到示例:UICollectionViewFlowLayoutExample by AshFurrow

【讨论】:

嗨塞巴斯蒂安,非常感谢你的回答。这种方法的问题是我似乎丢失了由情节提要设置的 UICollectionViewFlowLayout 属性(即布局等)。有什么办法吗? 我编辑了答案,希望现在对你有用。否则看看链接,因为这种方法有点脏

以上是关于你能以编程方式修改 UICollectionView 滚动方向吗?的主要内容,如果未能解决你的问题,请参考以下文章

你能以编程方式访问当前的 Heroku dyno id/name 吗?

你能以编程方式知道 GPU 中每个块的最大块数和线程数吗?

你能以编程方式在iOS 8(w / Swift)中切换“请勿打扰”模式吗?

你能以关系数据库可以理解的方式表示应用程序对象吗?

c#我怎么能以编程方式隐藏水晶“SubReport”?

苹果新的编程语言 Swift 语言进阶(十六)--泛型