iOS開發,多個button數組,每個數組只能選中5項,多個數組只能選擇3個。


 

由於常用xib,所以不想用代碼寫那么多個button。而且也懶的算位置

直接xib拉線成四個數組。水果,零食,飲料,甜點。

入題實現的功能就是,在這四個數組之中只能在3個數組只選中5項。有點繞(就比如你選擇了水果和零食飲料數組中的button之后,就不能再選中甜點了);

讀者自行理解吧。我不能表達的所有人都明白

頭部代碼

 1 #import "CityViewController.h"
 2 
 3 @interface CityViewController ()
 4 //button數組
 5 @property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *fruitsbtns;
 6 @property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *snacksbtns;
 7 @property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *drinksbtns;
 8 @property (strong, nonatomic) IBOutletCollection(UIButton) NSArray *dessertbtns;
 9 
10 //選中數組
11 @property (nonatomic ,strong) NSMutableArray * fruitsselects;
12 @property (nonatomic ,strong) NSMutableArray * snacksselects;
13 @property (nonatomic ,strong) NSMutableArray * drinksselects;
14 @property (nonatomic ,strong) NSMutableArray * dessertselects;
15 //button數組選中不能超過3個,選中的數組添加到totalarr數組中
16 @property (nonatomic ,strong) NSMutableArray *totalarr;
17 
18 @end

 

初始化選中的數組。

 1 @implementation CityViewController
 2 
 3 - (void)viewDidLoad {
 4     [super viewDidLoad];
 5     
 6     //初始化選中數組
 7     self.fruitsselects      = [[NSMutableArray alloc] init];
 8     self.snacksselects      = [[NSMutableArray alloc] init];
 9     self.drinksselects      = [[NSMutableArray alloc] init];
10     self.dessertselects     = [[NSMutableArray alloc] init];
11     
12     
13     
14 }

接下來就是點擊事件了,

 

同樣的點擊事件也必須是拉線生成的。

同一個類里面的button所有點擊事件都是在同一個方法里面。(水果類下的所有button在 fruitsclicked:里面)

                           (零食類下的所有button在 snacksclicked:里面)

                           (飲料類下的所有button在 drinksclicked:里面)

                           (甜點類下的所有button在 dessertclicked:里面)

 

 

我封裝了一個方法,用於每個類選中的button加進選中的btn數組里面;

 1 - (void)select:(UIButton *)sender withselectmutablearray:(NSMutableArray *)mutablearray andarray:(NSArray *)array
 2 {
 3     //數組 還沒選到2項的時候
 4     if(self.totalarr.count <= 3)
 5     {
 6         for (UIButton *btn in array) {
 7             
 8             if ([btn.currentTitle isEqualToString:sender.currentTitle]) {
 9                 if (!btn.selected) {
10                     if (mutablearray.count <=4) {
11                         btn.selected = YES;
12                         [mutablearray addObject:btn];
13                     }else
14                     {
15                         UIAlertView *aler = [[UIAlertView alloc] initWithTitle:@"提示" message:@"選多了" delegate:self cancelButtonTitle:@"確定" otherButtonTitles: nil];
16                         [aler show];
17                     }
18                     
19                 }else
20                 {
21                     btn.selected = NO;
22                     [mutablearray removeObject:btn];
23                     
24                 }
25             }
26             
27         }
28         
29         //數組不等於0的時候。
30     }else if(self.totalarr.count != 0 && mutablearray.count != 0)
31     {
32         for (UIButton *btn in array) {
33             
34             if ([btn.currentTitle isEqualToString:sender.currentTitle]) {
35                 if (!btn.selected) {
36                     if (mutablearray.count <=4) {
37                         btn.selected = YES;
38                         [mutablearray addObject:btn];
39                     }else
40                     {
41                         UIAlertView *aler = [[UIAlertView alloc] initWithTitle:@"提示" message:@"選多了" delegate:self cancelButtonTitle:@"確定" otherButtonTitles: nil];
42                         [aler show];
43                     }
44                     
45                 }else
46                 {
47                     btn.selected = NO;
48                     [mutablearray removeObject:btn];
49                     
50                 }
51             }
52             
53         }
54         
55         
56     }else
57     {
58         UIAlertView *aler = [[UIAlertView alloc] initWithTitle:@"提示" message:@"選多了" delegate:self cancelButtonTitle:@"確定" otherButtonTitles: nil];
59         [aler show];
60     }
61     
62     
63 }

 

四個button數組類的點擊事件:

先判斷total是否為空。total是記錄多個數組選中了多少

 

  1 //水果類點擊事件
  2 - (IBAction)fruitsClicked:(UIButton *)sender {
  3     
  4     
  5     NSString *str = @"水果";
  6     
  7     if(self.totalarr.count == 0)
  8     {
  9         [self.totalarr addObject:str];
 10     }else
 11     {
 12         if ([self.totalarr containsObject:str]) {
 13         }else
 14         {
 15             [self.totalarr addObject:str];
 16         }
 17     }
 18     
 19     [self select:sender withselectmutablearray:self.fruitsselects andarray:self.fruitsbtns];
 20     
 21     if(self.fruitsselects.count == 0)
 22     {
 23         [self.totalarr removeObject:str];
 24     }
 25     
 26 
 27     
 28 }
 29 
 30 
 31 //零食類點擊事件
 32 - (IBAction)snacksClicked:(UIButton *)sender {
 33     
 34     NSString *str = @"零食";
 35     
 36     if(self.totalarr.count == 0)
 37     {
 38         [self.totalarr addObject:str];
 39     }else
 40     {
 41         if ([self.totalarr containsObject:str]) {
 42         }else
 43         {
 44             [self.totalarr addObject:str];
 45         }
 46     }
 47     
 48     [self select:sender withselectmutablearray:self.snacksselects andarray:self.snacksbtns];
 49     
 50     if(self.snacksselects.count == 0)
 51     {
 52         [self.totalarr removeObject:str];
 53     }
 54 }
 55 
 56 //飲料類點擊事件
 57 - (IBAction)drinksClicked:(UIButton *)sender {
 58     
 59     NSString *str = @"飲料";
 60     
 61     if(self.totalarr.count == 0)
 62     {
 63         [self.totalarr addObject:str];
 64     }else
 65     {
 66         if ([self.totalarr containsObject:str]) {
 67         }else
 68         {
 69             [self.totalarr addObject:str];
 70         }
 71     }
 72     
 73     [self select:sender withselectmutablearray:self.drinksselects andarray:self.drinksbtns];
 74     
 75     if(self.drinksselects.count == 0)
 76     {
 77         [self.totalarr removeObject:str];
 78     }
 79     
 80 }
 81 
 82 //甜點類點擊事件
 83 - (IBAction)dessertClicked:(UIButton *)sender {
 84     
 85     NSString *str = @"甜點";
 86     
 87     if(self.totalarr.count == 0)
 88     {
 89         [self.totalarr addObject:str];
 90     }else
 91     {
 92         if ([self.totalarr containsObject:str]) {
 93         }else
 94         {
 95             [self.totalarr addObject:str];
 96         }
 97     }
 98     
 99     [self select:sender withselectmutablearray:self.dessertselects andarray:self.dessertbtns];
100     
101     if(self.dessertselects.count == 0)
102     {
103         [self.totalarr removeObject:str];
104     }
105     
106 }

 

 

很高興。這是自己寫的第一篇小功能小技術的實現。

以后會多多寫點自己實現的小技術效能。望大家多多支持

 

謝謝;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM