【问题标题】:UICollectionView in UITableViewCell. Catch scroll eventUITableViewCell 中的 UICollectionView。捕捉滚动事件
【发布时间】:2021-11-15 00:11:19
【问题描述】:

我有这样的设计

所以我有 UITableView -> UITableViewCell 并且在我的 UITableViewCell 中有 UICollectionView。它包含菜肴 在顶部,我还有带有水平滚动的 CollectionView 单元格。它包含类别

我想在滚动菜肴时移动类别。我尝试在 UITableViewCell 类(包含 collectionView)中捕获滚动事件

extension ProductCollectionViewCell:UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout, UIScrollViewDelegate{

    func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
        startScroll()
    }

    func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView) {
        startScroll()
    }
        
    func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {    
        startScroll()    
    }
        
    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        if scrollView == productsCollectionView && productsModel.count != 0 {
            startScroll()
        }
    }
}

但是这个事件没有被捕获=( 没有调用。它只用 UiTableView 调用 Controller。我该怎么做?

【问题讨论】:

  • 为什么单元格是滚动视图委托?
  • 我认为它应该有所帮助
  • 它不能作为单元格重复使用,并且每次将滚动视图委托设置为不同的单元格。
  • 那么,我如何理解 UITableViewCell 内部的集合视图的显示部分?
  • 滚动代理应该在一个始终可见的控制器中。我认为它是带有表格视图的。滚动委托方法必须使用事件来自的滚动视图进行测试。

标签: ios swift uitableview uicollectionview


【解决方案1】:

所以是的。正如Ptit Xav 悲伤- 无法捕捉。我把所有屏幕都变成了collectionView

【讨论】:

    猜你喜欢
    • 2011-06-07
    • 2017-07-27
    • 2012-12-19
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    相关资源
    最近更新 更多