溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

iOS開發(fā)3:UISlider控件

發(fā)布時間:2020-06-16 01:28:19 來源:網(wǎng)絡(luò) 閱讀:971 作者:江山風雨 欄目:移動開發(fā)

如下圖,UISlider控件是一個像滑動變阻器一樣的控件。 圖中的圓圈處在不同位置會有不同的值,當圓圈移動時會發(fā)送“ValueChanged”事件。

iOS開發(fā)3:UISlider控件

1.首先簡單介紹UISlider的使用:當滑動圓圈時在UILabel中顯示相應(yīng)的值。

(1)如下圖,新建Single View Application項目文件,命名為“UISliderTest”。

iOS開發(fā)3:UISlider控件 iOS開發(fā)3:UISlider控件

 

(2)選中ViewController_iPhone.xib,將其Size屬性修改為None值。并向其中添加一個UILabel控件和一個UISlider控件,將UILabel的默認值修改為50,修改UISlider的最小值為0,最大值為100.

iOS開發(fā)3:UISlider控件

iOS開發(fā)3:UISlider控件

 

(3)給UILabel控件添加映射,Connection類型為Outlet。切換到ViewController.m文件,在語句:

  1. @implementation ViewController  

后添加:

  1. @synthesize labelSlider; 

iOS開發(fā)3:UISlider控件

(4)給UISlider控件添加映射,Connection類型為Action,Event類型為Value Changed。

iOS開發(fā)3:UISlider控件

添加完后切換到ViewController.m文件中在@end前可見如下語句:

iOS開發(fā)3:UISlider控件

 

在該響應(yīng)函數(shù)中添加如下代碼,以完成我們需要的任務(wù):

  1. int progressAsInt = (int)round(sender.value); 
  2. labelSlider.text = [NSString stringWithFormat:@"%i", progressAsInt]; 

運行程序,見如下:

 

iOS開發(fā)3:UISlider控件 iOS開發(fā)3:UISlider控件

 

 

2.這里我們介紹一下自定義UICircularSlider滑塊控件的使用。

改變上面的UISlider控件的值,對應(yīng)的圓形環(huán)狀滑塊UICircularSlider控件的圓圈也隨之滑動;

(1)UICircularProgressView是一款自由軟件,這個自由軟件可免費獲取。我們首先導(dǎo)入UICircularSlider類源文件。我們可在項目文件夾中新建一個UICircularSlider文件夾,然后將UICircularSlider類源文件添加到該文件夾中:

iOS開發(fā)3:UISlider控件

 

(2)如下圖,我們導(dǎo)入上面一步新建的文件夾。

iOS開發(fā)3:UISlider控件

iOS開發(fā)3:UISlider控件

(3)選擇ViewController_iPhone.xib文件,向界面中添加一個View控件。選中該View控件,修改其Width和Height屬性均為150。將其背景色由White Color修改為Default,因為圓環(huán)的顏色為白色,如果不修改的話看不出原來的顏色。當然,如果你想修改為其它顏色也是可以的。

iOS開發(fā)3:UISlider控件 iOS開發(fā)3:UISlider控件

(4)修改View的Class類開為UICircularSlider:

iOS開發(fā)3:UISlider控件

 

(5)在ViewController.h頭文件中添加前向聲名代碼:

  1. @class UICircularSlider; 

給UICircularSlider控件添加IBOutlet變量和IBAction響應(yīng)函數(shù)。

iOS開發(fā)3:UISlider控件 iOS開發(fā)3:UISlider控件

給UISlider控件也添加IBOutlet變量。

iOS開發(fā)3:UISlider控件

可見在ViewController.h文件中添加了三行代碼:

  1. @property (weak, nonatomic) IBOutlet UICircularSlider *circularSlider; 
  2. @property (weak, nonatomic) IBOutlet UISlider *slider; 
  3. - (IBAction)circularSliderChanged:(UISlider *)sender; 

在如下代碼:

  1. @implementation ViewController 
  2. @synthesize labelSlider; 

后添加代碼:

  1. @synthesize slider; 
  2. @synthesize circularSlider; 

(6)在ViewController.m文件中添加頭文件:

  1. #import "UICircularSlider.h" 

 在ViewDidLoad函數(shù)中的

  1. [super viewDidLoad]; 

后添加如下代碼,設(shè)置circularSlider的最大、最小值和當前值:

  1. [self.circularSlider setMinimumValue:0]; 
  2. [self.circularSlider setMaximumValue:100]; 
  3. self.circularSlider.value = 50

(7)修改函數(shù):

  1. - (IBAction)sliderChanged:(UISlider *)sender 

中的代碼如下:

  1. - (IBAction)sliderChanged:(UISlider *)sender { 
  2.      
  3.     int progressAsInt = (int)round(sender.value); 
  4.     labelSlider.text = [NSString stringWithFormat:@"%i", progressAsInt]; 
  5.     self.circularSlider.value = progressAsInt

(8)修改函數(shù):

  1. - (IBAction)circularSliderChanged:(UISlider *)sender 

中的代碼如下:

  1. - (IBAction)circularSliderChanged:(UISlider *)sender { 
  2.      
  3.     int progressAsInt = (int)round(sender.value); 
  4.     labelSlider.text = [NSString stringWithFormat:@"%i", progressAsInt]; 
  5.     self.slider.value = progressAsInt

 

 

運行程序,見如下效果:

iOS開發(fā)3:UISlider控件 iOS開發(fā)3:UISlider控件

 

附件:http://down.51cto.com/data/2362770
向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI