swift的uiview点击事件怎么传参数?

发布于 2022-09-06 19:59:53 字数 428 浏览 25 评论 0

swift的按钮点击事件怎么传参数呢?找了好久没找到,下面是我的写法,但是报错。大神稍微指导下

 let btn = UIButton.init(frame: CGRect(x:100,y:500,width:200,height:30))
            btn.backgroundColor  = UIColor.black
            
            btn.addTarget(self, action: #selector(test(title:)), for: .touchUpInside)
            view.addSubview(btn)
            
    @objc func test(title:String){
        
        print(title)
        
    }

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

只有影子陪我不离不弃 2022-09-13 19:59:53

阅读量还是挺高的,看来不少人遇到了这个问题;我也是在寻找 UIView 点击事件的参数传递;目前我通过 tag 解决了

UIButton 的点击参数传递

设置 UIButtontag,详细见代码

let playButton = UIButton(type: .custom)
playButton.setTitle("开始播放", for: .normal)
playButton.backgroundColor = UIColor(white: 1.0, alpha: 0.8)
playButton.layer.cornerRadius = 17.5
playButton.tag = index // 关键在这一行
playButton.addTarget(self, action: #selector(playClicked(button:)), for: .touchUpInside)
itemView.addSubview(playButton)

接收


@objc func playClicked(button: UIButton){
    print(button.tag)
}

UIView 的点击事件与传输传递

UIView 是没有点击事件这个东西的,不过我们可以用 UITapGestureRecognizer 手势来解决

详细见代码

let itemView = UIView()
itemView.isUserInteractionEnabled = true

itemView.tag = index  // 传输传递

// 创建手势
let tap = UITapGestureRecognizer(target: self, action:#selector(tapClick(sender:)))

// 添加到 UIView 上
itemView.addGestureRecognizer(tap)
homeMusicScrollView.addSubview(itemView)

接收

同样的道理


@objc func tapClick(sender: UIGestureRecognizer){
    let itemView = sender.view!
    print(itemView.tag)
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文