我有UICollectionView
水平滚动方向。
它有一个按钮。在该按钮上单击我想显示列表tableView
。我的问题是我应该在哪里实现表视图委托方法,
在BasicVC中,我创建了collectionView
,
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let c = collectionView.dequeueReusableCell(withReuseIdentifier:"cell", for: indexPath)
let btn = c.viewWithTag(9) as? UIButton
btn?.layer.masksToBounds = true
btn?.layer.cornerRadius = (btn?.frame.size.height)!/2
btn?.backgroundColor = getRandomColor()
return c
}
或collectionCell
班。
class PlayerHeaderCell: UICollectionViewCell{
@IBOutlet weak var btn: UIButton!}
答案 0 :(得分:0)
tableView
委托方法需要在UICollectionViewCell
中实现,如此
class PlayerHeaderCell: UICollectionViewCell, UITableViewDataSource, UITableViewDelegate{
@IBOutlet weak var btn: UIButton!
@IBOutlet weak var tableView: UITableView!
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 2
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell")!
return cell
}
}
答案 1 :(得分:0)
听起来你想在集合视图的顶部弹出一个表格视图,就像下拉菜单一样?如果您想要一个显示在当前视图顶部的表视图,我建议在包含表视图的故事板中为它创建一个新的视图控制器,然后在当前视图之上显示该控制器视图。结果将是一个在您的集合视图顶部浮动的表格视图。
与其他答案所说的不同,不要让集合单元格成为表视图委托,除非你想为每个单元格设置不同的表视图,否则它没有意义,在这种情况下你应该这样做并设置委托成为选定的收集单元。
实现弹出表视图:
这种方法的优点是可以在其视图控制器中设计您的表视图,并且不会使故事板中的原始视图控制器混乱。只是我的想法,你似乎是以编程方式做事,所以我不确定它是否适合你的用例,但我希望它有所帮助。
答案 2 :(得分:-1)
这取决于您在哪里显示tableview。我的意思是当你点击按钮时,如果你使用tableview导航到一个新的控制器,代表应该在新的控制器中。或者,如果您在同一个控制器中显示tableview,则代理将在BasicVC中。我认为收集单元只有按钮。 这是我的理解。如果我错了,请纠正。