【发布时间】:2017-05-16 07:50:42
【问题描述】:
我有一个 UITableView 在每个单元格中都包含一个水平滚动 UICollectionView 像这样
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! ServiceTypeCell
cell.collectionView.delegate = self
cell.collectionView.dataSource = self
cell.lblName.text = serviceTypes[indexPath.row].name
cell.tag = getTag(indexPath)
print("uitableviewcell : \(indexPath)")
return cell
}
并且在每个 UICollectionViews 中
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
let cell = collectionView.superview?.superview as! ServiceTypeCell
let indexPath = getIndexPath(cell.tag)
print("uitableviewcell from uicollectionview : \(indexPath)")
return serviceTypes[indexPath.row].services.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let tableViewCell = collectionView.superview?.superview as! ServiceTypeCell
let tableViewIndexPath = getIndexPath(tableViewCell.tag)
let service = serviceTypes[tableViewIndexPath.row].services[indexPath.row]
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! ServiceTypeDetailCell
cell.lblName.text = service.name
return cell
}
我的问题是 UICollectionView 数据源只在 UITableViewCell 索引 0 到 3 之间调用。为什么会发生这种情况?
我的打印调试结果是这样的
uitableviewcell : [0, 0]
uitableviewcell from uicollectionview : [0, 0]
uitableviewcell : [0, 1]
uitableviewcell from uicollectionview : [0, 1]
uitableviewcell : [0, 2]
uitableviewcell from uicollectionview : [0, 2]
uitableviewcell : [0, 3]
uitableviewcell from uicollectionview : [0, 3]
uitableviewcell : [0, 4]
uitableviewcell : [0, 5]
uitableviewcell : [0, 6]
【问题讨论】:
-
你设置UICollectionView的滚动方向是水平的吗?
-
我想先停止tableviewDidselect。然后选择集合视图单元格。
-
@Imad 是的,我已经在情节提要中设置了水平滚动
-
@PhaniRaghu 停止 tableviewDidSelect 是什么意思?这个tableview不需要任何选择
-
对不起,我误解了这个问题。
标签: ios swift uitableview uicollectionview