gpt4 book ai didi

ios - 为什么没有调用 didSelectItemAtIndexPath?

转载 作者:行者123 更新时间:2023-11-29 01:14:05 25 4
gpt4 key购买 nike

我在 Collection View 单元格中有一个 UILabel,当我选择它时我希望标签的背景改变颜色,但是当我单击一个单元格时没有任何反应?这是为什么?我该如何解决?控制台中没有打印任何内容。

class newview: UIViewController,UICollectionViewDataSource, UICollectionViewDelegate{
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
print("called")
var cell: customcell = timecollection.cellForItemAtIndexPath(indexPath) as! customcell

cell.clabel.tag = indexPath.item
let tapGesture = UITapGestureRecognizer(target: self, action: "choose:")
cell.clabel.addGestureRecognizer(tapGesture)
cell.clabel.userInteractionEnabled = true

cell.clabel.textColor = UIColor.whiteColor()
cell.clabel.layer.borderWidth = 0.5
cell.clabel.layer.borderColor = UIColor.whiteColor.CGColor

}

func choose(gest: UITapGestureRecognizer){
let label: UILabel = gest.view as! UILabel
label.backgroundColor = UIColor.whiteColor
}
}

最佳答案

我认为您正在点击标签来更改标签的颜色。如果您点击标签,则不会调用 didSelectitemAtIndexpath。为此,您需要将 UITapGestureRecognizer 添加到您的标签中。

在 cellForRow 中尝试设置 label.tag = indexPath.row ,然后将 tapGesture 添加到标签。并在其目标中更改标签的颜色。并且不要忘记将 userInteractionEnable = true 设置为 label 属性。

编辑

 @IBAction func btnTapped(gest: UITapGestureRecognizer) {
print("Called")
let label:UILabel = (gest.view as! UILabel) // Type cast it with the class for which you have added gesture
label.backgroundColor = UIColor.redColor()
}

关于ios - 为什么没有调用 didSelectItemAtIndexPath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35423285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com