swift button的点击方法有多个参数 这种点击事件应该怎么写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift button的点击方法有多个参数 这种点击事件应该怎么写相关的知识,希望对你有一定的参考价值。

button点击的方法,只能传递一个参数吧,而且是参数固定的button的对象。
你这个str和id是想要获取什么?如果是button的编号和button的标题的话,你可以通过传递的button对象的title和tag值来获取。

你的第二个传递方法找不到是因为参数个数不对,及时你非要这么写的话也应该是buttonClick:id:类似这样的吧。不过这样写你需要的参数是传不过来的。
参考技术A 应该怎么写

iOS 创建多个button实现点击改变背景颜色

工程中需要实现与UISegmentedControl效果相似的一排一共十个button,如下图.但是SegmentedControl修改不太方便,就用button替代,

循环创建十个button,点击改变背景色.其他的没被点的button的背景恢复默认.之前也写过,因为button太多,需要各种判断.感觉之前方法的方法比较麻烦.
.技术分享图片

第一种方法

在创建button的时候,把所有的button存储到可变数组里,在button点击事件里面,拿到之前的可变数组,对里面的每一个button遍历,遍历的时候判断是否是当前点击的button,是的话,就改变背景颜色,否则把置为初始颜色.但是这个方法应该可以优化,遍历的时候数量多的时候,也会出现延迟,所以我又想到了下一个方法.
//_btnMutableArray 存储button的可变数组

- (void)buttonOfAction:(UIButton *)sender {

for (UIButton *btn in _btnMutableArray) {

        if (btn.tag == sender.tag) {

            btn.backgroundColor = [UIColor grayColor];

        } else {

            btn.backgroundColor = [UIColor redColor];

        }

    }

}

 

 

第二种方法
用UIButton类型的变量存储当前点击的button,判断一下下一次点击的button和上次存储的是不是同一个button,如果是同一个,就不做处理,如果不是就改变当前点击的背景,恢复上一次的背景,
 
//

- (void)buttonOfAction:(UIButton *)sender {

if (_btn2 == sender) {

    //不做处理

    } else {

        sender.backgroundColor = [UIColor grayColor];

        _btn2.backgroundColor = [UIColor redColor];

    }

 

    _btn2 = sender;

 

}

暂时只想到这两个方法,希望技术分享图片你有好的方法,可以和你学习.

以上是关于swift button的点击方法有多个参数 这种点击事件应该怎么写的主要内容,如果未能解决你的问题,请参考以下文章

tkinter(多个Button对应同一个回调函数如何识别响应的是哪个Button?)

swift - xcode10 - 点击事件交互BUG - (手势和button的addTarget方法)

CustomCell(TableView)中的Swift Button将参数传递给targetMethod

iOS 创建多个button实现点击改变背景颜色

WPF 点击一个button之后处理别的控件的事件

Swift - 将标题分配给多个按钮