iOS下UISlider的訂製樣式

2021-08-21 05:45:47 字數 1806 閱讀 1861

近期專案要使用slider,需要做成的樣式如下:

實現首先要建立乙個繼承uislider的子類,因為改變滑條高度的函式只有在子類繼承後才能生效,附上改變滑條高度的**,在子類的.m檔案裡寫:

-(cgrect)trackrectforbounds:(cgrect)bounds

bounds= [super trackrectforbounds:bounds];//必須通過呼叫父類的trackrectforbounds 獲取乙個 bounds 值,否則 autolayout 會失效,uislider 的位置會跑偏。returncgrectmake(bounds.origin.x, bounds.origin.y, bounds.size.width,20);//這裡面的20即為你想要設定的高度。}

這樣滑條高度設定就完成了。

接下來是滑條的背景,例項化這個子類使用方法:

[_statesld setminimumtrackimage:[[uiimage imagenamed:@"sliderback@2x"] stretchableimagewithleftcapwidth:100topcapheight:10] forstate:(uicontrolstatenormal)];//圓球左邊的滑條背景[_statesld setmaximumtrackimage:[uiimage imagenamed:@"sliderback@2x"] forstate:(uicontrolstatenormal)];//圓球右邊的滑條背景

因為這個滑條兩邊是有圓弧的,直接設定美工給的背景

左邊角會出現載入不完全的情況,所以在設定使用了stretchableimagewithleftcapwidth:topcapheight:方法。

[_statesld setthumbimage:[uiimage imagenamed:@"slidersmall"] forstate:(uicontrolstatenormal)];//普通情況圓球的背景圖[_statesld setthumbimage:[uiimage imagenamed:@"slidersmall"] forstate:(uicontrolstatehighlighted)];//高亮狀態圓球的背景圖

在滑塊滑動還有規定,只有這三個狀態,不允許其他值得出現。這樣先設定slider的滑動範圍:

_statesld.maximumvalue =2;//滑塊滑動最大值_statesld.minimumvalue =0;//滑塊滑動最小值

值具體是多少的無所謂,三個狀態我就準備是0,1,2這三個,你喜歡的話一萬兩萬也無所謂。接下來還是很笨的辦法,新增事件在事件裡面寫判斷:

[_statesld addtarget:self

action:@selector(valuechanged:)

forcontrolevents:uicontroleventvaluechanged];//給slider新增事件-(void)valuechanged:(uislider *)sender elseif(sender.value >0.5&& sender.value <1.5)else{

sender.value=2;

[_statesld setthumbimage:[uiimage imagenamed:@"sliderbig"] forstate:(uicontrolstatenormal)];

[_statesld setthumbimage:[uiimage imagenamed:@"sliderbig"] forstate:(uicontrolstatehighlighted)];

這樣就完成了。

iOS開發 UISlider與UISwitch控制項

1 uislider控制項就像其名字一樣,是乙個像滑動變阻器的控制項 上圖中的圓圈可以移動,它處在不同的位置,這個uislider會有不同的值。接下來的例子是關於uislider的簡單使用。1 假設我們已經建立了乙個single view application,開啟viewcontroller.x...

iOS開發中UISlider的簡單使用

首先在.h檔案中宣告乙個屬性 property nonatomic,strong uislider slider 在.m檔案中初始化並設定屬性 初始化並確定frame self slider uislider alloc initwithframe cgrectmake 50,200,260,10 ...

iOS滑動條UISlider的使用方法

1 ios 進度條控制項的詳細使用 由於專案的需求,學習使用了一下滑動條uislider的使用方法,這裡記錄一下。首先看我們實現出來的效果 如上圖所示,在圖中有四個內容 滑動條本身 最小值label 最大值label 當前值label。隨著滑動條的左右滑動,中間的當前值label會跟著做出變化。現在...