2016-09-29 26 views
5

olarak adlandırılmamış Koleksiyon görünümümü hazırlamaya hazırım ve ayrıntı görünümüne girmek için didSelectItemAt yapmaya çalışıyorum. Ama sadece her bir öğeyi günlüğe kaydetmeyi denemek istiyorum ve kayıt olmuyor.didSelectItemAt

Zaten bütün delegelere ayarlayın:

* Yanlış yapıyorum

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

Eğer toplama görünümün temsilci ayarladınız mı: Böyle false olarak ayarlayın gerekir? – rmaddy

+0

didSelectItemAt dizinini kullanmadıysanız didSelectItemAt –

+0

didSelectItemAt kullanmıyor olup olmadığını kontrol edin :) bir saatliğine googled ve bu en yaygın hata. Evet, görüşün delegeleri belirlendi. –

cevap

17

Sen görünümde TapGestureRecognizer ekledik. TapGestureRecognizer'ın bir özelliği var cancelsTouchesInView.

- var cancelsTouchesInView: Bool bir jest kabul edildiğinde dokunuşlar bir görünüm teslim edilip etkileyen

Boolean değeri {set olsun}.

Bu varsayılan olarak true ve bir musluk tanınır sonra dokunuşlar görünümüne teslim edilmez çünkü didSelectItemAt çağırarak önleyecektir.

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