之前写项目的时候,一般对于UIButton的状态的使用,最常见的就是点击后,把Button的selected的状态进行非操作,让它在两个状态之间来回切换,一般的需求也就是这样,但是这次的项目中,遇到需要三种状态切换的,用了个很次的方法处理,但是后期再处理其他项目的时候,突发奇想,其实三种状态也可以做的到,不需要依赖于Button本身的状态去考虑,一下就是对这个想法的分享,如果大家有更好的方法,也希望能够回复我,对我指点一下,谢谢大家。
话不多说,以按钮有三个状态来考虑,每次点击,自动从1切换到2,2切换到3,3切换到1,如此反复,思路也简单,取余,直接上代码:
- (IBAction)orderStatusAction:(UIButton *)sender {
//让索引值每次取余3后再赋值给自身,这样,就在一个0~2之间的范围循环
self.statusIndex = (self.statusIndex + 1) % 3;
switch (self.statusIndex) {
case 0:
[self.orderStatusButton setTitle:@"状态1" forState:UIControlStateNormal];
break;
case 1:
[self.orderStatusButton setTitle:@"状态2" forState:UIControlStateNormal];
break;
default:
[self.orderStatusButton setTitle:@"状态3" forState:UIControlStateNormal];
break;
}
}
这就是我的一点思路,我觉得挺好用的,如果需要更多状态,可以取4、5、6...等数字的余数,但是一般只用于三种状态就好了,4种以上的状态,我建议直接用列表选择,会更有效率。
如有想法,欢迎分享,谢谢大家!