图片浏览功能,首页和最后页,需要禁用“上下页”按钮,中间页又要恢复按钮,感觉switch比if要简洁一些:
1 -(void)turnPage:(BOOL)isUp{ 2 if(isUp){ 3 self.currentNum++; 4 }else{ 5 self.currentNum--; 6 } 7 switch (self.currentNum) { 8 case 0: 9 //"上一页"失效10 self.lastButton.enabled = NO;11 break;12 case 1:13 //打开失效的“上一页”14 self.lastButton.enabled = YES;15 break;16 case QUESTION_NUM-2:17 //打开失效的“下一页”18 self.nextButton.enabled = YES;19 break;20 case QUESTION_NUM-1:21 //"下一页"失效22 self.nextButton.enabled = NO;23 break; 24 default:25 break;26 }27 self.currentDictionary = [self.questionArray objectAtIndex:self.currentNum];28 //重新设置UI29 [self setUI]; 30 }
补充switch的基本语法规则:首先执行case(case判定条件必须为常量),执行后break跳出switch代码段,遍历遇不到相应的case执行default。
case,default都可以互换(是否应该把执行频率高的case放在前面有利于执行效率?试了下几乎不影响,10个case循环1000遍相差200微秒)
以下两句代码替换整个switch,看起来更简洁,只是每次翻页都需要重新设置enabled属性,测试了10000和100次循环switch比其只快5ms,应该同一时间复杂度,这个似乎更便捷
1 self.lastButton.enabled = !(self.currentNum==0);2 self.self.nextButton.enabled = !(self.currentNum==(QUESTION_NUM-1));