创建for循环以向数组添加42个按钮,并以特殊模式Objective-C添加

时间:2013-08-23 11:09:24

标签: objective-c arrays button optimization

我对某个应用程序有点问题,我希望得到一些帮助。我在网上搜索并发现了一些类似的问题,但他们并没有完全回答我自己的问题。

我想创建42个按钮并以“日历方式”打印出来。它不是一个日历,但外观让人想起它。我尝试了这个Create a for loop to add 39 buttons to an array

但我无法弄清楚如何让它完全符合我的要求。

我也试过这个:

NSMutableArray *buttons = [NSMutableArray array];

for( int i = 0; i < 5; i++ ) {

    UIButton* aButton = [UIButton buttonWithType:UIButtonTypeCustom];
    aButton.backgroundColor = [UIColor redColor];
    aButton.frame = CGRectMake(10, (i+1)*60, 60, 40);
    [aButton setTag:i];
    [buttons addObject:aButton];
    [aButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:aButton];
}

这是正确的方式,但我无法弄清楚如何得到我想要的外观。 这是我追求的外观,但数字的范围是1到42: http://nebulon.se/images/question_img.png

1 个答案:

答案 0 :(得分:0)

要布局网格,您需要循环中的循环。外循环递增y坐标,内循环递增x坐标。因此,随着您的进步,您将在一行按钮中的每一列中工作,然后移动到下一行。类似的东西:

for( int i = 0; i < 5; i++ ) {
    for( int j = 0; j < 5; j++ ) {

        UIButton* aButton = [UIButton buttonWithType:UIButtonTypeCustom];
        aButton.frame = CGRectMake(j * 60, i * 60, 60, 40);

    }
}