2010-03-06 48 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];