如何在矩阵中制作11个按钮

时间:2010-12-09 10:28:30

标签: iphone objective-c cocoa-touch uikit

我想在下面指定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 个答案:

答案 0 :(得分:1)

只需向内部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];
...

答案 1 :(得分:0)

for(int i = 1; i&lt; = 2; i ++){

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

J ++;        如果(J&LT; 12)           {               //您创建按钮的代码。

       }

}  }

表示j = 0(开始时)。