如何在iOS中使用for循环以编程方式添加UI按钮?

时间:2013-03-04 10:22:51

标签: ios uiview uibutton

我想使用for循环逐步创建15个UIButtons。我想安排按钮,如矩阵,行和列,比如3行和5列。按钮高度为50,宽度为80.我可以设置y,宽度,高度坐标。但我只面对x坐标问题。告诉我设置x坐标的逻辑。

提前致谢。

3 个答案:

答案 0 :(得分:5)

    float x = 10;
    float y = 10;
    float width = 50;
    float height = 50;
    for(int i =0;i<15;i++)
    {
        UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        [btn setFrame:CGRectMake(x, y, width, height)];
        [btn setTitle:[NSString stringWithFormat:@"B%d",i+1] forState:UIControlStateNormal];
        [self.view addSubview:btn];

        x = x + width + 20;

        if((i+1)%3==0)
        {
            x = 10;
            y = y + height + 20;
        }
    }

只需替换x和y,并在上面的代码中设置高度和宽度。

答案 1 :(得分:3)

int row = 0;
int column = 0;
for (int i = 0; i < 15; i++)
{
    if((row%3 == 0) && (row > 0))
    {
        row = 0;
        column++;
    } 
    else{
        row++; 
    }
    CGRect btnFrame = CGRectMake(row*80+10, column*50+10, 80, 50);//your button frame
    UIButton *btnTemp = [UIButton buttonWithType:UIButtonTypeCustom];
    [btnTemp setFrame:btnFrame];
    [self.view addSubView:btnTemp];
}

答案 2 :(得分:2)

你走了:

CGFloat marginX = 10.f;
CGFloat marginY = 5.f;
CGRect buttonFrame = CGRectMake(0., 0., 80., 50.f);

for(NSUInteger row = 0; row < 5; row++) {
    for(NSUInteger column = 0; column < 3; column++) {
        UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        button.frame = buttonFrame;
        //... more button settings

        [self.view addSubview:button];
        buttonFrame.origin.x += marginX;
    }

    buttonFrame.origin.x = 0.;
    buttonFrame.origin.y += marginY;
}