как сделать 11 кнопку в матрице - PullRequest
2 голосов
/ 09 декабря 2010

Я хочу сделать 11 кнопок, указанных ниже, с 2 для петель, это матрица, но для 11 кнопок.

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];
  }
 }

[][][][][][]
[][][][][]

Ответы [ 2 ]

1 голос
/ 09 декабря 2010

Просто добавьте несколько строк в свой внутренний цикл for по направлению к вершине:

...
j++;

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

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

Это обеспечит пропуск последнего столбца во втором ряду.


Другой вариант - проверить значение j - это позволит вам изменить размеры вашей матрицы, в то же время гарантируя, что всего будет создано только 11 записей:

...
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 голосов
/ 09 декабря 2010

для (int i = 1; i <= 2; i ++) {</p>

для (int k = 1; k <= 6; k ++) {</p>

J ++; если (J <12) { // Ваш код для создания кнопок. </p>

       }

} }

для j = 0 (при запуске).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...