根据服务器的响应动态创建UIButton

时间:2014-10-15 04:49:06

标签: ios objective-c uibutton interface-builder xcode6

我需要实现一个视图,要求我根据服务器的响应创建按钮。

示例回复:

{
   ...
    "enable_button_1" = 1;
    "enable_button_2" = 1;
    "enable_button_3" = 1;
   ...
}

目前,我尝试使用Interface Builder手动创建按钮。并且它们中的每一个都嵌入在UIView中并且彼此叠加。像这样: Creating button one by one 它们默认是隐藏的。因此,无论何时启用了多个按钮,我都会使用if条件进行检查,然后取消隐藏视图。

例如。只启用了一个按钮

one button enabled

例如。启用了两个按钮

two button enabled

但问题是这样做,我可能会错过一些用例,这似乎是一种不好的做法。有没有什么方法可以动态创建它而不是在Interface Builder中的UIViews中创建多个按钮?

1 个答案:

答案 0 :(得分:1)

您始终可以以编程方式创建按钮并将其添加到视图中。您必须计算按钮框架的宽度,以便它们始终适合视图100%。

例如某种方式:

    //Here you'd have to calculate the correct position of the button you want to add
    CGRect frame = CGRectMake(0, 0, self.buttonView.frame.size.width, self.buttonView.frame.size.height);
    UIButton *button = [[UIButton alloc] initWithFrame:frame];
    [button setTitle:@"myButton" forState:UIControlStateNormal];
    [self.buttonView addSubview:button];