在一个视图中合并UITableView和CollectionView

时间:2017-05-03 06:29:47

标签: ios swift xcode uitableview

我正在尝试创建像iOS 10音乐应用这样的用户界面,UITableViewUICollectionView合并在一个视图中,用户可以滚动它:

enter image description here

我这样做是因为我添加了一个滚动视图,然后添加了表视图和集合视图,但它并不适用于所有设备!例如,在iPhone 7 Plus中,UITableView的滚动会中断UIScrollView。这样做的正确方法是什么? 感谢

2 个答案:

答案 0 :(得分:1)

我很久以前就遇到过这个问题。

我最终使用了两个容器视图,每个视图都带有一个“embed segue”到另一个2 VC。 所有内容都显示在同一视图中,尽管您可以从中获得良好的解耦(将视图控件中的表和另一个中的集合放在一起)。

enter image description here

在mainVC中实施prepare:for segue,您可以在其中注入集合或表格中所需的数据。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    guard let identifier = segue.identifier else { return }

    switch identifier {
    case "calendarVC":
        if let calendarVC = segue.destination as? CalendarVC {
            calendarVC.dataProvider = dataProvider
            self.calendarVC = calendarVC
        }
    case "eventsVC":
        if let eventsVC = segue.destination as? EventsVC {
            self.eventsVC = eventsVC
            eventsVC.dataProvider = dataProvider
        }
    default: break
    }
}

你可以看到我在一个屏幕上拥有所有内容:

enter image description here

答案 1 :(得分:0)

@ Mc.Lover U可以使用UITableview作为基本视图,然后为Library选择一个tableview单元格,为最近添加的项目使用一个集合视图单元格。 现在在cellForRoAatIndexPath中为第0部分加载第一个tableview单元格,为第1部分加载第二个集合视图单元格。