我有一个方法:
func followUnfollow(followIcon: UIImageView, channelId: String) {
let followUnfollow = followIcon
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.followIconTapped(_:)))
followUnfollow.userInteractionEnabled = true
followUnfollow.addGestureRecognizer(tapGestureRecognizer)
}
Run Code Online (Sandbox Code Playgroud)
而且我有一个方法:
func followIconTapped(sender: UITapGestureRecognizer) {
...
}
Run Code Online (Sandbox Code Playgroud)
它的工作正常.但我需要传递channelId给followIconTapped()方法.
我试试这个:
func followUnfollow(followIcon: UIImageView, channelId: String) {
...
let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.followIconTapped(_:channelId)))
...
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试抓住它:
func followIconTapped(sender: UITapGestureRecognizer, channelId: String) {
...
}
Run Code Online (Sandbox Code Playgroud)
xCode说channelId永远不会使用.为什么?当我构建项目时,我没有任何问题.但是,如果我点击followIcon, app就会崩溃.
拜托,你可以给我建议如何在传递channelId到followIconTapped()
创建一个泛型UITapGestureRecognizer而不是使用这个:
class CustomTapGestureRecognizer: UITapGestureRecognizer {
var channelId: String?
}
Run Code Online (Sandbox Code Playgroud)
也用这个:
override func viewDidLoad() {
super.viewDidLoad()
let gestureRecognizer = CustomTapGestureRecognizer(target: self, action: #selector(tapped(_:))
gestureRecognizer.channelId = "Your string"
view1.addGestureRecognizer(gestureRecognizer)
}
func tapped(gestureRecognizer: CustomTapGestureRecognizer) {
if let channelId = gestureRecognizer.channelId {
//print
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
280 次 |
| 最近记录: |