2016-09-29 49 views
5

我有我的收藏視圖準備好去,我試圖做didSelectItemAt繼續到詳細視圖。但我只是想測試記錄每個項目,而不是記錄。didSelectItemAt沒有被調用

我將所有的代表已經:

*

class ViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout, UISearchBarDelegate {* 

    @IBOutlet weak var activityIndicatorView: UIActivityIndicatorView! 
    @IBOutlet weak var searchBar: UISearchBar! 
    @IBOutlet weak var collection: UICollectionView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     collection.dataSource = self 
     collection.delegate = self 
     searchBar.delegate = self 

     activityIndicatorView.isHidden = true 


     let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard") 
     view.addGestureRecognizer(tap) 
    } 

*

我在做什麼錯?

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { 
    let movie : Movie 

    movie = MOVIE_ARRAY[indexPath.row] 
    print(movie.plot) 
} 

enter image description here

+1

你設置的集合視圖的委託? – rmaddy

+0

檢查您是否正在使用didDeselectItemAt indexPath,而不是didSelectItemAt –

+0

didSelectItemAt已被使用:)使用Google搜索了一個小時,這是最常見的錯誤。是的,視圖的代表全部設置好了。 –

回答

17

你在視圖中添加一個TapGestureRecognizer。 TapGestureRecognizer有一個屬性cancelsTouchesInView

- VAR cancelsTouchesInView:BOOL {得到}設置影響是否接觸被傳遞到一個視圖時,手勢被識別

一個布爾值。

這是true默認情況下,將防止調用didSelectItemAt因爲水龍頭被識別後,觸摸不會被傳遞到視圖。 你需要將其設置爲false這樣的:

let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard") 
tap.cancelsTouchesInView = false 
view.addGestureRecognizer(tap) 
相關問題