关于实现多个button只实现可以选中一个的代码

本文介绍了一种处理多个按钮的方法,当按钮数量较多时避免属性设置的臃肿。通过使用一个中间的按钮记录上一次点击的按钮状态,确保每次点击只会有一个按钮被选中。代码实现中,利用for循环创建按钮,通过tag处理不同按钮事件,并可以根据变量值改变调整按钮的位置和行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于数量较少的button可以采用全部设置为属性的方式处理, 按钮数量超过四个以上就会显得比较臃肿. 用循环的方式建立的button, 其实再多的button, 你最多只显示一个, 也只能点击一个. 所以只用一个中间的button, 记录一下上次点击的button的值, 下次选择的时候把button处理为未选中即可. 下面是代码:

button的创建, 可以用for循环创建, x和y以及tag值(tag用于处理不同button的事件, 也可以交由model处理, 具体看自己实现)根据相应的for循环中的变量值变化.
下面是所有button的共有的方法:

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

        //确定n个按钮中只有一个被点击
        //_beginSpeedSedBtn设置为全局私有属性, 去记录上次选中的button

        //如果button全部未选中, 则_beginSpeedSedBtn一定为nil, 将其处理等于现在选中的button
        if (_beginSpeedSedBtn == nil) {
            sender.selected = YES;
            _beginSpeedSedBtn = sender;
            //如果button不是nil, 但是点击的是同一个按钮, 就直接将sender设置为被选择即可
        } else if (_beginSpeedSedBtn == sender) {
            sender.selected = YES;
            //如果不是nil, 也不是选的同一个button, 就将上次选中的button设置为未选中, 将现在的button设置为选中button.
        } else {
            _beginSpeedSedBtn.selected = NO;
            sender.selected = YES;
            _beginSpeedSedBtn = sender;
        }
   }
其实就和c语言的两个数交换很相似, 需要一个中间变量.  至于button的处理事件, 可以给每个button设置tag值, 然后根据tag值取处理每个button的事件.  多个button公用一个方法.  新手博客大神略过...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值