2009-09-22 88 views
1

我瞭解如何擁有最小的軌道和最大的軌道圖像,以及它如何可以拉伸。但是,對於我的需求,這可能不足以控制。如何自定義UISlider?

我有一種情況,在左側(最小軌跡),我需要根據數據顯示兩種不同的顏色。左側實際上代表了兩條數據,但在最小和最大之間仍然只存在一個拇指。

那麼我該怎麼做?

任何示例代碼?

其實我是想這樣

photo link

左手邊是grinish顏色的,但是當它超過它變成紅色拇指圖像..

回答

3

把你的圖像交換代碼在你的滑塊值讀數方法,通常是:使用自定義紅色圖像

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

希望這有助於人。

8

在您的.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其在滑動圖片酒吧。