近期專案要使用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會跟著做出變化。現在...