2016-12-29 67 views
2

我有一个自定义视图,其中包含一个如下所示的集合视图。collectionView didSelectItemAt indexPath未调用swift

func setupCollectionView() { 
    let layout = UICollectionViewFlowLayout() 
    layout.sectionInset = UIEdgeInsets(top: scaled(height: 15), left: scaled(width: 35), bottom: scaled(height: 15), right: scaled(width: 35)) 
    layout.itemSize = CGSize(width: scaled(width: 30), height: scaled(width: 30)) 
    layout.minimumLineSpacing = 15 
    layout.minimumInteritemSpacing = 30 
    collectionView = UICollectionView(frame: CGRect.zero, collectionViewLayout: layout) 
    collectionView.showsVerticalScrollIndicator = false 
    collectionView.showsHorizontalScrollIndicator = false 
    collectionView.register(THTexasHoldemEmojiCell.self, forCellWithReuseIdentifier: THTexasHoldemEmojiCell.className) 
} 

和委托职能

extension THTexasHoldemEmojisView { 

    func setupDelegates() { 
     collectionView.dataSource = self 
     collectionView.delegate = self 
    } 

} 

extension THTexasHoldemEmojisView: UICollectionViewDelegate { 

    func collectionView(_ collectionView: UICollectionView, didHighlightItemAt indexPath: IndexPath) { 
     print("did highlight item") 
    } 

    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { 
     print("did select item") 

    } 

} 

奇怪的是didHighlightItem函数可以被调用,但didSelectItem不会。我在这里错过了什么吗?谢谢你的帮助。

我的视图连接是UIViewController(THController)包含UIView(THEmojisView),THEmojisView包含集合视图。 在THController中,我有很多观点和操作,但不包括THEmojisView。 THController的touchesBegan(_ touches:Set,with event:UIEvent?)是否会影响集合视图的委托funcs?

+0

请在下次发布代码而不是截图! – Rikh

+0

您是否设置了数据源和委托? – iDeveloper

+1

'yourCollectionView?.delegate = self'和 'yourCollectionView?.dataSource = self' – iDeveloper

回答

0

可能有问题THTexasHoldemEmojiCell。也许有一个集合视图单元内的一个UIControl实例,它处理所有触摸。简单的解决办法是将isUserInteractionEnabled属性UIControl设置为false。

+0

对不起,这么晚的回复,没有没有。细胞内没有任何东西。最近我在这个控制器中有另一个collectionView,同样的问题。我认为didSelectItem事件涵盖了一些touch funcs,但我找不到它。无论如何, – Vin

+0

THX为您提供帮助。 – Vin

相关问题