未调用UICollectionView内部UITableView的委托方法

时间:2017-08-02 18:48:03

标签: ios iphone uitableview uicollectionview

我有一个UITableView,其中一个单元格包含UICollectionView

我已将UITableViewCell设置为UICollectionView的委托和数据源,在这里我实现了我需要的所有方法。

问题在于,我的UICollectionView没有响应触摸事件:滚动或触摸工作也没有。

因此,永远不会调用collectionView(_:didSelectItemAt:indexPath)

UserInteractionIsEnabled设置为TRUE为:

 1. TableView
 2. TableViewCell
 3. ContentView
 4. CollectionView
 5. CollectionViewCell

我真的不知道我的代码有什么问题。

这是TableViewCell的代码

import UIKit

class InsertSecondCell: UITableViewCell, UICollectionViewDelegate, UICollectionViewDataSource {

    let COUNT = 12

    @IBOutlet weak var collectionView: UICollectionView!

    override func awakeFromNib() {
        super.awakeFromNib()

        collectionView.isPagingEnabled = true
        collectionView.delegate = self
        collectionView.dataSource = self
        collectionView.isScrollEnabled = true
        collectionView.isUserInteractionEnabled = true
        collectionView.reloadData()

    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

    func collectionView(_ collectionView: UICollectionView,
                        numberOfItemsInSection section: Int) -> Int {
        return COUNT
    }


    func collectionView(_ collectionView: UICollectionView,
                        cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {


        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "categoryCell",
                                                      for: indexPath) as! CategoryCollectionCell

            cell.allergenImageView.image = UIImage(named: "IMAGE")
            cell.titleLabel.text = "TITLE"
            cell.bottomViewm.isHidden = false
            cell.backgroundColor = UIColor.white

            cell.layer.borderColor = UIColor.black.cgColor
            cell.layer.borderWidth = 0.5
            cell.layer.cornerRadius = 2.5

            return cell


    }

    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        print("hi")
    }
}

enter image description here

1 个答案:

答案 0 :(得分:0)

对于滚动,您是否在IB中垂直/水平检查弹跳和弹跳?

至于选择,如果您长按单元格,它最终会打印您的消息吗?您可以添加tapGestureRecognizer.cancelsTouchesInView = false以帮助手势识别器更快地超越视图层次结构。请参阅here