对于数量较少的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公用一个方法. 新手博客大神略过...