Когда я пытаюсь программно добавить UISlider в UIView, он не появится, если ширина слишком велика - PullRequest
1 голос
/ 13 февраля 2012

Я пытаюсь программно добавить вертикальный UISlider в UIView, с переменной высотой.Это то, что у меня до сих пор

int fullSize = [myBottle.barBottem intValue] - [myBottle.barTop intValue];
    CGRect frame = CGRectMake(200, 150,fullSize, 23);
    slider = [[UISlider alloc] initWithFrame:frame];
    [slider addTarget:self action:@selector(sliderChanged:) forControlEvents:UIControlEventValueChanged];
    [slider setBackgroundColor:[UIColor clearColor]];
    slider.minimumValue = 0.0;
    slider.maximumValue = fullSize;
    slider.continuous = YES;
    slider.transform = CGAffineTransformMakeRotation(M_PI * -
                                                0.5);;
[self.view addSubview:slider];

Моя проблема в том, что когда fullSize> 320, слайдер не появляется.Любая помощь будет принята с благодарностью!

Ответы [ 3 ]

1 голос
/ 20 июня 2013

Вы можете попробовать это и сделать метод значения слайдера также

UISlider *loslider=[[UISlider alloc]initWithFrame:CGRectMake(60, 80, 200, 30)];

    [loslider addTarget:self action:@selector(slider_Action:)  forControlEvents:UIControlEventValueChanged];

    [loslider setMaximumValue:100.0];
    [loslider setMinimumValue:0.0];
    [loslider setValue:0.0];
    [self.view addSubview:loslider];

затем - (void) слайдер: Действие

0 голосов
/ 10 декабря 2013

Попробуйте этот код:

1.Создайте новый слайдер

-(IBAction)mySlider
{ 
    CGRect frame = CGRectMake(20, 25, 200.0, 10.0);
    UISlider *slider = [[UISlider alloc] initWithFrame:frame];
    [slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
    [slider setBackgroundColor:[UIColor clearColor]];
    slider.minimumValue = 0.0;
    slider.maximumValue = 50.0;
    slider.continuous = YES;
    slider.value = 25.0;
    [self.view addSubview:slider];
}

2.Для действий слайдера

-(void)sliderAction:(id)sender
{
    float value = [sender floatValue];
    NSLog(@"%@",value);
    //-- Do further actions
}
0 голосов
/ 13 февраля 2012

Рамка UIScrollView не должна быть больше, чем прямоугольник, содержащий UIView. Вы должны изменить contentSize UIScrollView, установив вместо этого его высоту / ширину.

UIScrollView * scrollview ... ;
scrollview.contentSize = CGSizeMake(newwidth,newheight);
...