2010-03-06 73 views
5

我试图对UISlider使用自定义跟踪图像,但它是从滑块一端到另一端的不对称图像。UISlider跟踪图像没有拉伸

我试图用leftCapWidth等设置我的图像,但这只是使其达到最大拉伸,然后开始在滑块上扩展一个信息像素。

我想要一个在移动滑块时根本不会改变的图像。

这是可能的吗?

+2

我已经设法解决此问题暂时得到现在通过创建一个UIImageView,并补充说,到在滑块后面查看。然后,我将滑块的轨迹图像设置为空白。 虽然这并不理想:( – Fogmeister 2010-03-06 13:28:16

+0

你有没有得到过这个解决方案?我已经尝试过使用'[maxImage resizableImageWithCapInsets:UIEdgeInsetsZero resizingMode:UIImageResizingModeTile]'这可以工作,但似乎把拇指放在轨道图像下面,大约有2px滑块两端的空白处 – sooper 2014-01-16 21:48:41

+0

如果我现在正在做这个,我会从头开始做我自己的自定义控件,可能使用PaintCode绘制它。 – Fogmeister 2014-01-16 22:53:00

回答

4

您可以使用这个方法,使UIslider定制的背景,使UIslider作为一个IBOutlet

[yourslider setThumbImage:[UIImage imageNamed:@"icon0.png"] forState:UIControlStateNormal]; 



yourslider.minimumValue=1; 
yourslider.maximumValue=10; 

UIImage *sliderLeftTrackImage = [[UIImage imageNamed: @"yellow_bg.png"] stretchableImageWithLeftCapWidth: 9 topCapHeight: 0]; 
UIImage *sliderRightTrackImage = [[UIImage imageNamed: @"yellow_bg.png"] stretchableImageWithLeftCapWidth: 9 topCapHeight: 0]; 

[yourslider setMinimumTrackImage: sliderLeftTrackImage forState: UIControlStateNormal]; 
[yourslider setMaximumTrackImage: sliderRightTrackImage forState: UIControlStateNormal];