UISlider提供了一個CGFloat的CGRange的范圍的選擇器,就是說給定一個CGRange,然后我們可以從中選擇一個點。
其選擇器樣式如下:
上面這個樣式當然不是iOS 7的自身樣式,是經過一次定制后的。
UISlider跟UISwitch有點兒類似,都是繼承自UIControl,這里步驟就跟UISwitch一樣了,創建一個UISlider對象,然后將UISlider對象添加到一個UIView視圖中。
既然UISlider是表示一個CGRange,那么就有一個最大值(maximumValue)和一個最小值(minimumValue),既然UISlider又是一個選擇器,那么就有一個當前的選擇值(value),這三個值都是UISlider的屬性。
同樣的,UISlider選擇器被改變時,會觸發UIControlEventValueChanged的事件,所以我們可以通過添加addTarget:::方法為事件添加處理方法。
就如前面所說,上面所展示的UISlider的樣式是經過定制了的,所以我們同樣可以定制一個UISlider的樣式,樣式同樣有只更改顏色的樣式和圖片樣式,更改UISlider的樣式主要更改三部分:minimumTrackTintColor、maximumTrackTintColor和thumbTintColor。他們分別在UISlider對應的位置如下:

代碼事例:
// // XCViewController.m // UISlider的基礎知識 // // Created by Mr. Right on 13-10-17. // Copyright (c) 2013年 XCoder Studio. All rights reserved. // #import "XCViewController.h" @interface XCViewController () @property (nonatomic, strong)UISlider * mySlider; @property (nonatomic, strong)UILabel * myLabel; @end @implementation XCViewController - (void)viewDidLoad { [super viewDidLoad]; // 創建一個UISlider _mySlider = [[UISlider alloc] initWithFrame:CGRectMake(0, 0, 200, 23)]; // 定位UISlider的位置 _mySlider.center = self.view.center; // 設置UISlider的最小值和最大值 _mySlider.minimumValue = 2; _mySlider.maximumValue = 50; // 設置UISlider的初始值 _mySlider.value = 12; // 為UISlider添加事件方法 [_mySlider addTarget:self action:@selector(sliderValueChanged:) forControlEvents:UIControlEventValueChanged]; // 定義UISlider的樣式 _mySlider.minimumTrackTintColor = [UIColor redColor]; _mySlider.maximumTrackTintColor = [UIColor greenColor]; _mySlider.thumbTintColor = [UIColor blueColor]; // 新建一個UILabel對象 _myLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 20, 320, 50)]; // 設置這個UILabel對象的字體為系統字體,大小為當前UISlider的值 _myLabel.font = [UIFont systemFontOfSize:_mySlider.value]; _myLabel.text = @"XCoder Studio"; // 將UISlider添加到一個UIView視圖中 [self.view addSubview:_mySlider]; // 將UILabel添加到一個UIView視圖中 [self.view addSubview:_myLabel]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } - (void)sliderValueChanged:(id)sender { if ([sender isKindOfClass:[UISlider class]]) { UISlider * slider = (UISlider *)sender; _myLabel.font = [UIFont systemFontOfSize:slider.value]; } } @end