2016-09-29 13 views
5

Tôi đã sẵn sàng xem bộ sưu tập của mình để đi và tôi đang cố gắng làm didSelectItemAt để chuyển sang chế độ xem chi tiết. Nhưng tôi chỉ muốn thử nghiệm đăng nhập mỗi mục và nó không đăng nhập.didSelectItemAt không được gọi là

Tôi đặt tất cả các đại biểu đã:

*

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) 
    } 

*

Tôi đang làm gì sai?

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

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

enter image description here

+1

Bạn có đặt đại biểu của chế độ xem bộ sưu tập không? – rmaddy

+0

Kiểm tra xem bạn có đang sử dụng didDeselectItemAt indexPath thay vì didSelectItemAt –

+0

didSelectItemAt đã được sử dụng :) googled trong một giờ và đó là lỗi phổ biến nhất. Có, các đại biểu của chế độ xem đã được đặt. –

Trả lời

17

Bạn đã thêm một TapGestureRecognizer trên quan điểm. TapGestureRecognizer có thuộc tính cancelsTouchesInView.

- var cancelsTouchesInView: Bool {get thiết lập}

Một Boolean giá trị ảnh hưởng cho dù chạm được giao cho một cái nhìn khi một cử chỉ được công nhận.

Đây là mặc định true và sẽ ngăn không cho cuộc gọi được thực hiệnChọn khi chạm sẽ không được gửi đến chế độ xem sau khi nhấn được nhận. Bạn cần đặt số này là false như sau:

let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard") 
tap.cancelsTouchesInView = false 
view.addGestureRecognizer(tap) 
Các vấn đề liên quan