2013-03-29 2 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]; 

Вы держали же x и y, как 50 и 50. И height как 100 и изменил width 100 + я * 80.

В:

CGRectMake(x, y, width, height) 

Вам нужно изменить y, если вы хотите их вертикально размещены.

+0

Работа прекрасна спасибо – jeff

+0

@ user2207904: Нет проблем :) –

+0

@ user2207904: Тогда вы можете принять ответ :) –

0

Проблема заключается в том, что все 10 ползунков создаются перекрывающимися друг с другом в той же начальной точке (50,50). Вам нужно, чтобы их точки происхождения (особенно значение y) отличались друг от друга.

Причина, по которой вы не видите этого факта, заключается в том, что большая часть фона слайдера прозрачна. Таким образом, у вас есть эти огромные увеличивающиеся прямоугольники, перекрывающиеся, с самым большим покрытием всех остальных; но все вы см. - это дорожка и большой палец. Чтобы визуализировать проблему, дайте каждому слайдеру цвет фона. Тогда проблема будет мертвой.

+0

Решено Спасибо – jeff

Смежные вопросы