简而言之,我所需的屏幕布局基本上是用户配置文件(iOS 7
Xcode 5).我使用UIScrollView作为顶级视图.原因是我想要滚动所有子视图(用户信息视图 – 带有配置文件图像的视图和您在屏幕上看到的一些按钮,以及带有黑色背景的照片集合视图).
黑色背景区域将显示用户照片.我想知道我是否可以在这里使用UICollectionView,或者有更好的方法来实现它.在这种情况下,UICollectionView不能自己滚动,它只显示所有单元格,而滚动工作由最外层的UIScrollView处理.
我读了以下帖子:
UICollectionView inside of UIScrollView
UICollectionView in UIScrollView -> Scroll Order
iOS 7 Collection View inside Scroll View
有些人说UIScrollView中不可能(或者至少很奇怪)实现UICollectionView,因为UIScrollView是UICollectionView的超类,会导致意外行为.有人说它应该以另一种方式实施(但我没有看到明确的建议).
解决方法
是的,您可以在UIScrollView中放置UICollectionView.
iOS has fully supported nested scroll views since iOS 3.0,UICollectionView是UIScrollView的子类.例如,查看iOS设备上的App Store应用程序.屏幕垂直滚动 – 它是UIScrollView或UITableView(它本身是UIScrollView的子类).每行图标都水平滚动 – 每行都是一个UICollectionView.
但是,不清楚为什么需要在滚动视图中放置集合视图.听起来你只想让照片视图滚动,所以只需将照片视图设为集合视图即可.为什么需要将集合视图放在滚动视图中?
UPDATE
只需使用集合视图.将第0部分的标题设置为配置文件信息视图.您不需要滚动视图.
如果将所有照片放在一个部分中,则可以在故事板中设置标题而不使用代码.如果使用多个部分,则需要在您的委托中实现collectionView:layout:referenceSizeForHeaderInSection:并在您的数据源中使用collectionView:viewForSupplementaryElementOfKind:atIndexPath:.