我的UITableViewController有1个部分,头部有UISegmentedControl。
If user presses first segment we should display UITableView cells
可能的解决方案:
将UITableViewController更改为UICollectionViewController,将UITableViewCells更改为UICollectionViewCells。这应该可以,但我试图避免这个解决方案
UICollectionView嵌入在UITableViewCell中。将UICollectionView滚动设置为false,调整UITableViewCell的高度以适应整个UICollectionView的contentSize.height。在容器(UITableViewCell)的systemLayoutSizeFitting(...)方法中,我们在容器和包含的UICollectionView上调用layoutIfNeeded并返回UICollectionView的contentSize。
问题:
(重新)计算整个UICollectionView contentSize需要大量的工作,如果我们有数百个项目(每个项目的cellForItemAtIndexPath)。想以某种方式避免这种情况。也许我们可以在滚动内部的UICollectionView期间增加容器(UITableViewCell)高度。
与2相同,但我们有固定大小的容器UITableViewCell(与没有标题的视图相同的高度),里面有UICollectionView。当我们将UITableView滚动到最底部时,UICollectionView滚动应该继续滚动。
问题:
我不明白如何使用scrollingEnabled = true来处理两个UIScrollView实例。我认为这可以通过平移手势识别器代表来解决。如果是这样,我需要帮助。
答案 0 :(得分:0)
我个人会选择1号并完全避免使用2号。对于3号,您可以在点击第2段时设置tableView.scrollingEnabled = false
。点击第一个段时将其设置为true
。这样,当它false
时,UICollectionView
中的UITableViewCell
仍可以滚动。
This tutorial可能有助于将UICollectionView
放入UITableViewCell
。