UITapGestureRecognizer 没有成员标签

发布于 2025-01-15 04:41:46 字数 1601 浏览 2 评论 0原文

在这种情况下,我需要我的 uiLabel 可点击,所以我添加 uiTapRecognizer。然后,我需要将索引路径部分发送到标签,以便我可以获得所选部分。

但是,当我尝试在 tapFunction() 中获取 sender.tag 时,出现错误: UITapGestureRecognizer 没有成员标签

如果我将发件人更改为 uiButton -> func tapFunction(_ 发送者:uiButton) { 它不会在函数内打印任何内容

这种情况有没有任何解决方法(仍然使用 uilabel 不将其更改为 uibutton)?

当 #selector tapfunciton(_: , data:"text") 时我也可以发送数据吗 并在 tapFunction(data:String) 中读取它?如果可能的话,有人可以展示吗?

  func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let cell = tableView.dequeueReusableCell(withIdentifier: "LoanCell", for: indexPath) as? LoanCell else {
            return UITableViewCell()
        }
        let item = viewModel.itemsForRowAt(indexPath: indexPath)
    let tap = UITapGestureRecognizer(target: self, action: #selector(self.tapFunction(_:)))
                cell.syaratLabel.tag = indexPath.section
                cell.isUserInteractionEnabled = true
                cell.syaratLabel.addGestureRecognizer(tap)
                 return cell
             }
    
 @objc
    func tapFunction(_ sender:UITapGestureRecognizer) {
        print("successprint")
        let item = viewModel.itemsForRowAt(indexPath: IndexPath(row: 0, section: sender.tag))
       
        let viewController = DetilSandKViewController(messageSnK:item.prdAgreementDetail, titleSnK:item.nomorKontrak)
        viewController.modalPresentationStyle = .overCurrentContext
        viewController.modalTransitionStyle = .crossDissolve
        
        present(viewController, animated: true, completion: nil)
    }

In this case i need my uiLabel clickable, so i add uiTapRecognizer. Then, i need to send the indexpath section to the tag so i can get the choosen section.

But when i try to get the sender.tag in tapFunction() there is error : UITapGestureRecognizer has no member tag

If i change the sender to uiButton -> func tapFunction(_ sender:uiButton) {
it doesn't print anything inside the function

Is there any workaround for this case (still using uilabel not change it to uibutton)?

Can i also send data when #selector tapfunciton(_: , data:"text")
and read it in tapFunction(data:String)? If this possible, can someone show it ?

  func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let cell = tableView.dequeueReusableCell(withIdentifier: "LoanCell", for: indexPath) as? LoanCell else {
            return UITableViewCell()
        }
        let item = viewModel.itemsForRowAt(indexPath: indexPath)
    let tap = UITapGestureRecognizer(target: self, action: #selector(self.tapFunction(_:)))
                cell.syaratLabel.tag = indexPath.section
                cell.isUserInteractionEnabled = true
                cell.syaratLabel.addGestureRecognizer(tap)
                 return cell
             }
    
 @objc
    func tapFunction(_ sender:UITapGestureRecognizer) {
        print("successprint")
        let item = viewModel.itemsForRowAt(indexPath: IndexPath(row: 0, section: sender.tag))
       
        let viewController = DetilSandKViewController(messageSnK:item.prdAgreementDetail, titleSnK:item.nomorKontrak)
        viewController.modalPresentationStyle = .overCurrentContext
        viewController.modalTransitionStyle = .crossDissolve
        
        present(viewController, animated: true, completion: nil)
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文