2013-03-29 96 views
-4

我想動態創建一些滑塊動態創建一些滑塊/滑塊不動

隨着我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]; 

} 
} 

回答

1

你最終通過創建所有十個滑塊相互放置,由於肌酸在同一座標

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

你保持相同的xy爲50和50以及height爲100和100 +改變width我* 80。

由於:

CGRectMake(x, y, width, height) 

你需要改變y,如果你希望它們垂直放置。

+0

工作的很好謝謝 – jeff

+0

@ user2207904:沒有問題:) –

+0

@ user2207904:然後你可以接受答案:) –

0

問題在於,所有10個滑塊都在相同的原點(50,50)處互相重疊。你需要他們的原點(尤其是y值)有所不同。

您看不到這個事實的原因是滑塊的大部分背景都是透明的。所以你有這些巨大的增長矩形重疊,最大的覆蓋所有其他矩形;但所有你看到是跟蹤和拇指。爲了想象這個問題,給每個滑塊一個背景顏色。那麼問題就會顯而易見。

+0

解決謝謝你 – jeff