ios – 在UICollectionView中更改滚动方向

前端之家收集整理的这篇文章主要介绍了ios – 在UICollectionView中更改滚动方向前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个UICollectionView我已经设置,一切正常(选择,标题等),但是,我想在某些情况下更改滚动方向.

总之,如果我进入故事板,并更改scrollDirection它工作正常,但我想做程序化!

我已经尝试直接改变集合视图的滚动方向

[myCollectionView setScrollDirection:....and so on.......

但是这不行,我找不到scrollDirection或类似的.

我也试图设置一个流布局,但我确定我做错了(即试图将一个ViewLayout设置为一个FlowLayout).

UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc]init];
    [flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];
    [myCollectionView setCollectionViewLayout:flowLayout];

这个崩溃了很多约束问题,我怀疑我需要做更多的工作与flowLayout(从我已经发现它有点在我以上).

还应该指出,我正在使用自定义单元格,页眉和页脚.

总之有没有办法做到这一点?或者有没有人知道一个好的流程布局教程?

编辑

我设置收集视图是这样的;

[myCollectionView setDataSource:self];
[myCollectionView setDelegate:self];

我实现这些委托方法,一切正常

viewForSupplementaryElementOfKind
numberOfSectionsInCollectionView
numberOfItemsInSection
cellForItemAtIndexPath
didSelectItemAtIndexPath

我已将DataSource和Delegate添加到.h以及FlowLayout代理,但我不知道我对后者应该也是如此.

大部分的视觉布局是在故事板中完成的,我有一些例子,如字体,大小和颜色.

其他编辑

这是我尝试更改FlowLayout时的错误,当我尝试并使布局无效时,我也得到这个.

无法同时满足约束.
以下列表中的至少一个约束可能是您不想要的.尝试这样:(1)查看每个约束,并尝试找出你不期望的; (2)找到添加了不需要的约束或约束的代码并进行修复. (注意:如果您看到您不明白的NSAutoresizingMaskLayoutConstraints,请参阅UIView属性的文档翻译AutotoresizingMaskIntoConstraints)

"<NSAutoresizingMaskLayoutConstraint:0x89967f0 h=--& v=--& V:[menuCell:0x8991700(50)]>","<NSLayoutConstraint:0x8991200 menuCell:0x8991700.bottom == UILabel:0x8992be0.bottom + 100>","<NSLayoutConstraint:0x898fd50 UILabel:0x8992be0.top == menuCell:0x8991700.top + 3>"

将试图通过破坏约束来恢复

打破objc_exception_throw在调试器中捕获这个.
在列出的UIView上的UIConstraintBasedLayoutDebugging类别中的方法也可能有帮助.

解决方法

好的,尝试在收藏视图中调用invalidateLayout,如下所示:

[myCollectionView.collectionViewLayout invalidateLayout];

这迫使集合视图在该点更新其布局(See apple documentation here).我不确定,但是当您改变滚动方向时,我并不认为这是被称之为.

看看是否让你随处附近!

猜你在找的iOS相关文章