6

UICollectionView在我的 swift 课上使用它,它放在我的UIViewController. 我在我的代码中将 collectionView 连接到了插座,我进行了设置,delegate然后datasource在我的应用程序中看到了结果。除了当我单击每个单元格时,一切正常 - 没有任何反应。

我的代码如下:

class UsersList: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate {


@IBOutlet weak var tview: UICollectionView!

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)

    tview.backgroundColor = UIColor.whiteColor() //this works
    tview.delegate = self
    tview.dataSource = self
}

func collectionView(tview: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
    print("You selected cell #\(indexPath.item)!")
    //this does not appear in the console :(
}

我还能做些什么来在控制台中查看打印信息吗?

4

6 回答 6

4

在swift中,参数名和函数名一起标识一个函数。UICollectionViewDelegate 有功能

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath)

但不是

func collectionView(tview: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath)

于 2016-04-08T03:06:59.543 回答
2

尝试从视图中删除所有 UIGestures,然后测试 UICollectionView Cells 是否能够正常交互。

就我而言,我不得不删除这些行:

let tap = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard))
    self.view.addGestureRecognizer(tap)

出于某种原因,这妨碍了我点击我的单元格。

于 2019-01-06T19:38:28.603 回答
1

对我来说,我必须设置UICollectionView's 代表。例如,在viewDidLoad()

collectionView.delegate = self

这是必要的,否则将不会调用委托方法!

于 2020-04-10T04:47:22.913 回答
0

确保在故事板中启用用户交互

于 2016-04-08T02:34:50.900 回答
0

我的问题是,对于 collectionView 的父视图,isUserInteractionEnabled 是错误的。我从其他地方获取了父视图的代码,显然这是正确的做法。但不是在这里……叹息……

于 2021-05-23T17:28:41.687 回答
0

我必须在情节提要中将滚动方向从垂直更改为水平,这对我有用。

于 2020-01-03T11:29:37.930 回答