UICollectionView或UITableView超过屏幕大小

时间:2013-04-22 03:46:20

标签: iphone ios xcode uicollectionview

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

我尝试了什么: 我将CollectionView放在UIScrollView中,并将scrollview的宽度设置为3 * page-width,如下所示:

enter image description here

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

当我运行App时,页面确实显示3 *页面宽度的宽度。能够很好地滚动水平。但仍然,UICollectionView数据在一个页面断开并继续显​​示下一行(这意味着它不会将scrollview的宽度视为其宽度;而是继续将页面宽度视为其宽度)。

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

1 个答案:

答案 0 :(得分:0)

您应该只能更改滚动方向,以便Flow Layout水平滚动而不是垂直滚动:

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

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