2016-12-29 137 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

相關問題