2010-12-09 47 views
2

Je veux faire 11 boutons spécifiés ci-dessous commander avec 2 pour les boucles, c'est une matrice mais pour 11 boutons.comment faire 11 bouton dans la matrice

for (int i = 1; i <= 2; i++) { 

    for (int k = 1; k <= 6; k++) { 

    j++; 

    NSString *key = [NSString stringWithFormat:@"Color%d",j]; 

    UIColor *color = [dict objectForKey:key]; 

    ColorBtn *colorBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
    colorBtn.frame = CGRectMake(4+(startPointX*k), 320+(startPointY*i), 38, 37); 
    colorBtn.backgroundColor = color; 
    colorBtn.tag = j; 
    [colorBtn setImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal]; 
    [colorBtn addTarget:self action:@selector(SetUIColor:) forControlEvents:UIControlEventTouchUpInside]; 
    [self.view addSubview:colorBtn]; 
    } 
} 

[][][][][][] 
[][][][][] 
+0

-1: Quelle langue? Vous avez 4 étiquettes de langues complètement différentes sur cette question. –

+0

Cette boucle s'exécute 12 (6 * 2) fois. – pmg

+0

@Binary: l'extrait de code ressemble à objc. J'ai repensé la question un peu. – JustSid

Répondre

1

Il suffit d'ajouter quelques lignes à votre boucle for intérieure vers le haut:

... 
j++; 

// Add these lines 
if (i == 2 && k == 6) { 
    continue; 
} 
// Add these lines 

NSString *key = [NSString stringWithFormat:@"Color%d",j]; 
... 

Cela garantira que la dernière colonne de la deuxième ligne est ignorée.


Une autre alternative est de vérifier la valeur de j - cela vous permet de modifier les dimensions de votre matrice tout en assurant encore que 11 entrées sont créées au total:

... 
j++; 

// Add these lines 
// I'm assuming that j is 1-based, not 0-based 
if (j > 11) { 
    break; 
} 
// Add these lines 

NSString *key = [NSString stringWithFormat:@"Color%d",j]; 
... 
0

for (int i = 1; i < = 2; i ++) {

for (int k = 1, k = 6 <; k ++) {

j ++; if (j < 12) { // Votre code pour créer des boutons.

 } 

}}

pour j = 0 (au départ).