Как настроить UISlider?

Я понимаю, как можно иметь минимальный трек и максимальное изображение трека, и как его можно растянуть. Однако для моих нужд этого может быть недостаточно.

У меня есть ситуация, когда с левой стороны (минимальная дорожка) мне нужно отобразить два разных цвета на основе данных. Левая сторона фактически представляет две части данных, но между минимумом и максимумом по-прежнему существует только один большой палец.

так как я могу это сделать???

Любой пример кода??

я на самом деле хочу так

ссылка на фото

С левой стороны он зеленоватого цвета, но когда он превышает изображение большого пальца, он становится красным.


person raaz    schedule 22.09.2009    source источник


Ответы (3)


В вашем файле .h

IBOutlet UISlider *slide;

в вашем .m файле

UIImage *minImage = [UIImage imageNamed:@"unselected.png"];
    UIImage *maxImage = [UIImage imageNamed:@"selected.png"];
    UIImage *tumbImage= [UIImage imageNamed:@"thumb.png"];
    minImage=[minImage stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];
    maxImage=[maxImage stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];
    [slide setMinimumTrackImage:minImage forState:UIControlStateNormal];

unselected.png и selected.png — это изображения, действующие как полоса, и thumb.png, которые скользят по полосе.

person pradeep    schedule 27.05.2011

Поместите свой код замены изображения в метод чтения значения ползунка, который обычно:

-(IBAction)sliderChanged:(id)sender; {}

Замените свое собственное зеленое изображение на собственное красное изображение всякий раз, когда значение вашего ползунка достигает некоторого предопределенного значения. См. пример ниже.

// Switches the -thumbImage between an ivar named highImage and lowImage 
// when the slider passes the halfway point  

if (sliderValue > 0.5) {
    [self updateSliderThumbWithImage:self.highImage];
} else {
    [self updateSliderThumbWithImage:self.lowImage];
}

определите метод обновления изображения слайдера следующим образом:

-(void)updateSliderThumbWithImage:(UIImage *)image;
{
    [self.slider setThumbImage:image forState:UIControlStateNormal];
    [self.slider setThumbImage:image forState:UIControlStateHighlighted];
}

// You have to set thumb images for both states  
// or your image will vanish when user slides it. 
// Not sure if you have to do the same with the track image, though.  

Надеюсь, это поможет кому-то.

person willc2    schedule 11.11.2009

Я не уверен, смогу ли я визуализировать то, что вам нужно (есть ли шанс, что вы можете опубликовать эскиз?), но выполните поиск UISlider, и вы можете найти несколько довольно творческих применений. В противном случае вы можете создать свой собственный UIControl.


(источник: texlege.com)

person mahboudz    schedule 22.09.2009