我了解如何拥有最小的轨道和最大的轨道图像,以及它如何可以拉伸。但是,对于我的需求,这可能不足以控制。如何自定义UISlider?
我有一种情况,在左侧(最小轨迹),我需要根据数据显示两种不同的颜色。左侧实际上代表了两条数据,但在最小和最大之间仍然只存在一个拇指。
那么我该怎么做?
任何示例代码?
其实我是想这样
左手边是grinish颜色的,但是当它超过它变成红色拇指图像..
我了解如何拥有最小的轨道和最大的轨道图像,以及它如何可以拉伸。但是,对于我的需求,这可能不足以控制。如何自定义UISlider?
我有一种情况,在左侧(最小轨迹),我需要根据数据显示两种不同的颜色。左侧实际上代表了两条数据,但在最小和最大之间仍然只存在一个拇指。
那么我该怎么做?
任何示例代码?
其实我是想这样
左手边是grinish颜色的,但是当它超过它变成红色拇指图像..
我不知道如果我可以想象你需要什么(任何你可以发布素描的机会?),但是要搜索UISlider,你可以找到一些非常有创意的用途。否则,您可以创建自己的自定义UIControl。
http://www.texlege.com/wp-content/uploads/2009/07/uislider-track.png
把你的图像交换代码在你的滑块值读数方法,通常是:使用自定义红色图像
-(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.
希望这有助于人。
在您的.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其在滑动图片酒吧。