2013-10-05 128 views
1

在這裏,我要圓uslider但是當我嘗試設置圖片它顯示方型圖像,與邊角UISlider組圖片

我需要這樣的形象enter image description here

這裏我編碼

UIImage *volumeBackgroundImage = [[UIImage imageNamed:@"l2.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(9, 5, 7, 5)]; 
    [self.audioSlider setMinimumTrackImage:[[UIImage imageNamed:@"l1.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(9, 5, 7, 5)] 
           forState:UIControlStateNormal]; 
    [self.audioSlider setMaximumTrackImage:volumeBackgroundImage 
           forState:UIControlStateNormal]; 
    [self.audioSlider setThumbImage:[UIImage imageNamed:@"sliderhandle.png"] 
         forState:UIControlStateNormal]; 

任何人都可以幫助實現這一點

回答

3

你需要有圓角的圖像。例如: enter image description here

然後,只需使用這個圖像是這樣的:

[_slider setMinimumTrackImage:[[UIImage imageNamed:@"black_dot.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(12, 12, 12, 12)] 
    forState:UIControlStateNormal]; 

[_slider setMaximumTrackImage:[[UIImage imageNamed:@"blue_dot.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(12, 12, 12, 12) 
    forState:UIControlStateNormal]; 

(其中black_dot.png是例如圖像,並且blue_dot.png將是相同的,但在藍色)

(如果圖像是像素化的 - 那麼你需要得到這個圖像兩倍大 - 視網膜圖像 - [email protected]

(或者如果您實際上需要較小的圖像比給出的例子,那麼只需重命名此圖像作爲[email protected]的,而是:UIEdgeInsetsMake(12, 12, 12, 12)使用:UIEdgeInsetsMake(6, 6, 6, 6)

在這裏看到更多的信息:https://stackoverflow.com/a/8656216/894671

0

我認爲這是因爲圓形結束是由UISlider本地生成的。它假設拇指圖像將覆蓋在極端位置的末端,所以它不會重新繪製它。

一種解決方案可能是爲了照顧四捨五入末自己:

self.audioSlider.layer.cornerRadius = 5.0; 

實驗用這個值,它應該工作。

或者,您可以確保您的圖像具有圓角端。

+0

不,先生,它不是還在工作返回相同的result.I那兒的任何解決方案 – dineshprasanna

+0

你嘗試哪種解決方案?都? – Mundi

+0

首先,他們返回相同的結果 第二,當我把圓角邊緣的圖像顯示爲pixalated圖像 – dineshprasanna