didSelectItem没有被调用

Ben*_*ong 16 ios uicollectionview swift

我准备好了我的集合视图,我正在努力去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)
    }
Run Code Online (Sandbox Code Playgroud)

*

我究竟做错了什么?

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

    movie = MOVIE_ARRAY[indexPath.row]
    print(movie.plot)
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Sam*_*m_M 65

TapGestureRecognizer在视图上添加了一个.TapGestureRecognizer有一个属性cancelsTouchesInView.

- var cancelsTouchesInView:Bool {get set}

一个布尔值,用于影响在识别手势时是否将触摸传递到视图.

这是true默认情况下,将阻止调用didSelectItemAt,因为在识别出点击后,触摸将不会传递到视图.您需要将其设置为false:

let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: "dismissKeyboard")
tap.cancelsTouchesInView = false
view.addGestureRecognizer(tap)
Run Code Online (Sandbox Code Playgroud)

  • 你让我今天一整天都感觉很好 (4认同)