UITableView&&一个控制器中的UICollectionView?

时间:2015-04-09 05:12:46

标签: ios objective-c uitableview uicollectionview

我试图优雅地实施iPhone和iPad版本。它们本质上是相同的控制器,但是一个iPhone在单列tableView和iPad中呈现在一个多列集合中。

以下是我想到的选项:

  1. 一个ViewController,它要求tableView和collectionView使用不同的DataSource和不同的Delegate。我一直没有想到这个选项。它看起来似乎过于复杂。

  2. 一个baseViewController,然后是2个子类,一个带有tableView,另一个带有collectionView。与选项#1类似,但使用子类。选项#1更清晰,但这更容易实现。

  3. 只需对两者使用collectionView,但使用不同的UICollectionViewFlowLayouts。这是我想到的最后一个选项,似乎是迄今为止最好的选择,但我想知道是否有#1或#2可能更好的原因。

1 个答案:

答案 0 :(得分:1)

所以我最终选择了1个UICollectionView,而IMO的效果非常好。

我必须只为3个部分写条件:

  1. 返回不同的collectionViewFlowLayouts
  2. collectionView:layout:sizeForItemAtIndexPath:
  3. 返回不同的尺寸
  4. layoutSubviews
  5. UICollectionViewCell的不同布局

    能够使用相同的UICollectionViewCell是一个非常大的优点,因为我在单元格中实现了许多按钮,而且我没有必要在{{1}中复制代表以获得完全相似的逻辑和一个UICollectionViewCell