2013-04-22 92 views
0

我需要显示一个数据表;行和列。我认为UICollectionView会解决我的问题,并诉诸于它,而不是进入UITableView。 UICollectionView的flowLayout(开箱即用的布局)的确显示了多列数据。但是,我可以让它显示多个屏幕宽度的内容吗?比方说,我想让UICollectionView显示3个屏幕宽度的数据(例如,对于iPhone,它是320 * 3 = 960px)?默认情况下,UICollectionView的FlowLayout似乎会在屏幕宽度上中断数据显示,并继续在下一行显示其余部分。现在,我不希望它在页宽结束时中断,而是在(3 *页宽)的末尾。UICollectionView或UITableView要超过屏幕尺寸

我试了一下: 我把的CollectionView一个UIScrollView内滚动视图的宽度设置为3 *页面宽度是这样的:

enter image description here

[self.scrollView setContentSize:CGSizeMake([[UIScreen mainScreen] bounds].width*3.0, [[UIScreen mainScreen] bounds].size.height)]; 

当我运行的应用程序,网页确实显示3 *页宽的宽度。我可以很好地滚动。但是,UICollectionView数据在一个页面中断 - wdith并继续在下一行显示(意味着它不会将scrollview的宽度视为宽度,而是继续将页面宽度视为宽度)。

请提供您的建议/意见。这将非常有帮助!

回答

0

你应该能够只是改变滚动方向,因此流动布局将水平滚动而不是垂直:

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

您也可以在Interface Builder中设置此直接。

+0

谢谢!我开始写这篇文章,但是当我读到创建自定义UICollectionViewLayout的工作时会暂停。所以,我认为如果可以对UICollectionViewFlowLayout进行一些调整以获得相同的结果,而不是仅仅因为无法调整单个属性而编写自定义布局,那将会更好!你有没有试过写一个自定义的CollectionViewLayout?这太乱了吗? – Jean 2013-04-22 06:39:31

+0

@Jean我用更好的解决方案更新了答案,不使用自定义布局,而是修改流布局。 – iwasrobbed 2013-04-29 13:53:28