我试图优雅地实施iPhone和iPad版本。它们本质上是相同的控制器,但是一个iPhone在单列tableView和iPad中呈现在一个多列集合中。
以下是我想到的选项:
一个ViewController,它要求tableView和collectionView使用不同的DataSource和不同的Delegate。我一直没有想到这个选项。它看起来似乎过于复杂。
一个baseViewController,然后是2个子类,一个带有tableView,另一个带有collectionView。与选项#1类似,但使用子类。选项#1更清晰,但这更容易实现。
只需对两者使用collectionView,但使用不同的UICollectionViewFlowLayouts。这是我想到的最后一个选项,似乎是迄今为止最好的选择,但我想知道是否有#1或#2可能更好的原因。
答案 0 :(得分:1)
所以我最终选择了1个UICollectionView,而IMO的效果非常好。
我必须只为3个部分写条件:
collectionView:layout:sizeForItemAtIndexPath:
layoutSubviews
UICollectionViewCell
的不同布局
醇>
能够使用相同的UICollectionViewCell
是一个非常大的优点,因为我在单元格中实现了许多按钮,而且我没有必要在{{1}中复制代表以获得完全相似的逻辑和一个UICollectionViewCell
。