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

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

1 голос
/ 22 сентября 2009

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

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

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

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

Я действительно хочу вот так

ссылка на фотографию

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

Ответы [ 3 ]

8 голосов
/ 27 мая 2011

В вашем .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 - это изображения, которые действуют как bar, и thumb.png, которые скользят по панели.

3 голосов
/ 11 ноября 2009

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

-(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.  

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

0 голосов
/ 23 сентября 2009

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


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

...