在 UICollectionView 选择上选择 UITableView

Posted

技术标签:

【中文标题】在 UICollectionView 选择上选择 UITableView【英文标题】:Select the UITableView on UICollectionView selection 【发布时间】:2016-02-17 05:53:09 【问题描述】:

我在UITableViewCell 中有一个UICollectionView。当我选择 tableView 行时,我不希望调用 UICollectionViewdidSelectItemAtIndexPath: 方法。相反,我希望 UITableViewdidSelectRowAtIndexPath: 方法被调用。我如何在didSelectItemAtIndexPath: 中调用didSelectRowAtIndexPath:

【问题讨论】:

请先尝试使collectionview selection none 集合视图的单元格可以选择吗?我的意思是你需要选择这些集合视图的单元格 我不希望它们可以选择,但我希望它们可以滚动。我尝试禁用collectionView的userInteraction。在选择时,最终会调用 didSelectRowAtIndexPath:,但是,collectionView 没有滚动 @ios : 如果你禁用 collectionView 的用户交互,它将停止滚动。那时不可能与集合视图进行任何类型的交互。所以禁用用户交互不是一种选择。 @PulkitSharma :这是一次尝试。 【参考方案1】:

斯威夫特 3

先设置如下

 func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) 
    let parentCell: QMatrixCell? = collectionView.superview?.superview as! QMatrixCell?
    parentCell?.delegate.collectionViewDidSelectedAtCell(cell: parentCell!)

并在包含您的 tableview 的控制器中执行以下操作

extension TableViewController: SelectionCell
 func collectionViewDidSelectedAtCell(cell : QMatrixCell)
    let index: IndexPath? = tableView.indexPath(for: cell)
    tableView(tableView, didSelectRowAt: index!);
 
 
protocol SelectionCell 
   func collectionViewDidSelectedAtCell(cell : QMatrixCell);

别忘了在 tableView 单元格中设置委托。

【讨论】:

【参考方案2】:

设置collectionView.allowsSelection = NO 禁用选择。

或在didSelectItemAtIndexPath 方法中,获取 UITableViewCell 并调用具有 UITableView 的表视图的委托:

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath

    UITableViewCell *parentCell = collectionView.superview;
    [parentCell.delegate collectionViewDidSelectedAtCell:parentCell];

// IN your view controller that has the table view

- (void)collectionViewDidSelectedAtCell:(UITableViewCell *)cell
     NSIndexPath *index = [self.tableView indexPathForCell:cell];
     [self tableView:self.tableView didSelectRowAtIndexPath:index];


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath



【讨论】:

怎么会,它应该禁用集合视图的选择。你还在接收didSelectItemAtIndexPath: 吗?

以上是关于在 UICollectionView 选择上选择 UITableView的主要内容,如果未能解决你的问题,请参考以下文章

在 UISegmentedControl 上选择和取消选择段?

在真实设备上选择 PDF 时 iOS 文档选择器崩溃

在语言选择上选择适当的 .rc 文件

在 vuejs 中的两个选择标签上选择不同的值

Excel VBA - 如何检测用户在工作表上选择整行并区分是不是选择了多行?

我在选择选项上选择新项目后Useeffect不更新