动态创建一些滑块/滑块不移动

时间:2013-03-29 20:03:23

标签: ios objective-c

我想动态创建一些滑块

使用我的IBAction create1Slider,我可以移动我的滑块

使用我的IBAction create10Sliders,我无法移动我的滑块

出了什么问题?

- (IBAction) create1Slider:(id)sender {
    UISlider *slider = [[[UISlider alloc] initWithFrame:CGRectMake(150, 150, 100, 100)] autorelease];
    slider.minimumValue = 1;
    slider.maximumValue = 255;
    slider.continuous = YES;
    [self.view addSubview:slider];
    }

//////////////////////////

- (IBAction) create10Sliders:(id)sender {
for(int i=0; i< 10
; i++)
{

    UISlider *slider = [[[UISlider alloc] initWithFrame:CGRectMake(50, 50, 100, 100+i*80)] autorelease];
    forControlEvents:UIControlEventValueChanged];
    slider.minimumValue = 1;
    slider.maximumValue = 255;
    slider.continuous = YES;
    [self.view addSubview:slider];
    //[slider release];

}
}

2 个答案:

答案 0 :(得分:1)

您最终创建了相互放置的所有十个滑块,原因是同一坐标上的肌酸激素

UISlider *slider = [[[UISlider alloc] initWithFrame:CGRectMake(50, 50, 100, 100+i*80)] autorelease];

您将xy保持为50和50. height为100,并将width更改为100 + i * 80。

如:

CGRectMake(x, y, width, height) 

如果您希望垂直放置y,则需要更改{{1}}。

答案 1 :(得分:0)

问题在于,所有10个滑块在相同的原点(50,50)处相互重叠。你需要它们的原点(尤其是y值)不同。

您无法看到这一事实的原因是滑块的大部分背景都是透明的。所以你有这些巨大的增长矩形重叠,最大的覆盖所有其他;但是你的所有内容都是跟踪。要显示问题,请为每个滑块指定背景颜色。然后问题将显而易见。