总之,如果我进入故事板,并更改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类别中的方法也可能有帮助.
解决方法
[myCollectionView.collectionViewLayout invalidateLayout];
这迫使集合视图在该点更新其布局(See apple documentation here).我不确定,但是当您改变滚动方向时,我并不认为这是被称之为.
看看是否让你随处附近!