如何使用UISilder在SubView中添加和删除UIButtons?

时间:2012-09-07 12:32:52

标签: objective-c ios cocoa-touch uibutton uislider

我有一个subview,这几乎是我的主视图的一半,而且我的主视图上还有一个UISlider。我的silder的值为0到10.我想用UIButton向我的Subview添加一些UISilder。现在,如果我的silder得到值2,那么我想添加2 UIButton到我的Subview,好像我的silder传递值2并获得值4然后我想从子视图中删除先前的UIButton并向Subview添加一些新的UIButton

2 个答案:

答案 0 :(得分:0)

注意:代码未经测试。

  1. 发起10 UIButton并将其添加到视图中,将其设置为隐藏:

    for (int x = 0; x < 10; x++) {
        UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(50, x * 100, 100, 50)];
        [btn setText:[NSString stringWithFormat:@"Button %d",(x + 1)]];
        [btn setHidden:true];
        [self.view addObject:btn];
        [btn release];
    }
    
  2. 使用滑块更改值方法隐藏/显示如下按钮:

        -(IBAction) sliderChanged:(id) sender{
              UISlider *slider = (UISlider *) sender;
              for (int x = 0; x < slider.value; x++) {
                   UIButton *btn = (UIButton *)[savedBtn objectAtIndex:x];
                   [btn setHidden:false];
              }
        }
    
  3. <强>更新

    要使用UIScrollView,您必须将UIButton添加到scrollView而不是视图中,如下所示:

        UIScrollView *sView = [[UIScrollView alloc] initWithFrame:CGRectMake(10,10,200,200)];
        [sView setDelegate:self];
        for (int x = 0; x < 10; x++) {
            UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake(50, x * 100, 100, 50)];
            [btn setText:[NSString stringWithFormat:@"Button %d",(x + 1)]];
            [btn setHidden:true];
            [sView addSubview:btn];
            [btn release];
        }
    

    然后将scrollView添加到视图中:

         [self.view addSubview:sView];
    
    希望这可以帮到你。

答案 1 :(得分:0)

首先,您需要为UISlider

添加一个选择器方法
[customSlider addTarget:selfaction:@selector(sliderEnd:)forControlEvents:UIControlEventTouchUpInside];

现在,选择器方法应该在项目的Mainview类中定义。

现在,在选择器方法中,您可以确定函数中的滑块值,并根据其值,您可以添加或删除或向其他视图添加按钮。您可以在将所有按钮添加到视图时将其存储到所有按钮,然后在滑块值建议时将其从superview中删除。

希望它有所帮助。