gpt4 book ai didi

ios - Swift - UIControl addTarget 不起作用

转载 作者:行者123 更新时间:2023-11-29 00:18:51 26 4
gpt4 key购买 nike

我已经使用 UIView 创建了 XIB。我已将类 MyViewControl: UIControl 分配给它,因此我可以在内部操作中添加修饰。它有效,触摸在我的类(class)内被调用。

现在,我已经创建了 UICollectionView 并将这个“xib”添加为单元格 View 。我现在希望在 UICollectionViewDelegate 类中处理触摸。所以我这样做了:

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {        
for v in cell.contentView.subviews {
if let c: MyViewControl = v as? MyViewControl {
c.isUserInteractionEnabled = true
c.addTarget(self, action: #selector(myClick), for: UIControlEvents.touchUpInside)
}
}
}

func myClick(sender: Any){
print("click....")
}

但是,永远不会调用 myClick 选择器。如果我将 UIButton 添加到 MyViewControl 并为此按钮执行相同的操作 (addTarget),则会正确调用回调。

最佳答案

加下划线_在发件人之前用作 _ sender: Any并添加 (_:)#selectoraction 下即。 myClick(_ :)

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {        
for v in cell.contentView.subviews {
if let c: MyViewControl = v as? MyViewControl {
c.isUserInteractionEnabled = true
c.addTarget(self, action: #selector(myClick(_:)), for: UIControlEvents.touchUpInside)
}
}
}

func myClick(_ sender: Any){
print("click....")
}

希望对你有帮助

关于ios - Swift - UIControl addTarget 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44541847/

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