下面繼續(xù)學(xué)習(xí)ios的其他控件,這次會(huì)使用到的控件有Slider,當(dāng)然還有一些之前已經(jīng)使用過的控件Label。
這次我們不新建一個(gè)PRoject了,當(dāng)然如果你愿意重新創(chuàng)建一個(gè)新的項(xiàng)目也完全可以,我們還是使用上一篇的項(xiàng)目Control Fun。
上一篇中,我們最后的成果如下圖所示
我們添加了一個(gè)ImageView,2個(gè)Label和2個(gè)TextField,現(xiàn)在我們繼續(xù)在此基礎(chǔ)上添加其他的控件。
1)添加Slider和Label
Slider類似于一個(gè)滑塊,左右(或者上下)滑動(dòng)來改變數(shù)值,在object library中找到Slider
拖動(dòng)到界面中,并將其拉伸到你所喜歡的長(zhǎng)度如下圖
2)設(shè)置Slider的屬性
選中Slider的情況下,查看attributes inspector,在attributes inspector中的Slider欄下有幾個(gè)數(shù)值需要注意,看下圖
其中1表示Slider的滑塊滑到最左邊時(shí)的數(shù)值(最小值),100表示Slider的滑塊滑到最右邊時(shí)的數(shù)值(最大值),50表示Slider的初始值,設(shè)置完成后,slider控件會(huì)根據(jù)設(shè)置的值自動(dòng)調(diào)整位置。
3)添加Label
在slider的邊上添加一個(gè)Label控件,用來顯示slider的當(dāng)前值,添加完成后的樣子如下圖
i)為了界面布局的統(tǒng)一性,把新添加的label和上面的2個(gè)label以右邊為基準(zhǔn)對(duì)齊(同時(shí)選中3個(gè)Label,然后選中菜單欄中的Editor>Align>Right Edges,或者快捷鍵command + ])。
ii)將label的內(nèi)容改成50(選中l(wèi)abel后,單擊鍵盤上的return鍵),和slider的初始值一致。
iii)在attributes inspector中找到Alignment,使label文字右對(duì)齊。
iv)務(wù)必使新添加的label的長(zhǎng)度大于50,因?yàn)閟lider的最大值為100,因此如果label長(zhǎng)度和50一直,當(dāng)slider的滑塊移動(dòng)到最右邊時(shí),label會(huì)顯示不下。
好了,label的屬性也設(shè)置完成了,下面開始添加Outlet和Action。
4)為L(zhǎng)abel添加Outlet,為Slider添加Action
因?yàn)楫?dāng)我們滑動(dòng)slider時(shí),label會(huì)實(shí)時(shí)顯示slider的當(dāng)前值,為了能夠改變label的值,我們需要一個(gè)Outlet來指向label,然后使用Outlet來改變label的值。
添加的方法很簡(jiǎn)單,選中l(wèi)abel,按住control鍵拖到BIDViewController.h中,在彈出的框框里,為Outlet取一個(gè)名字叫做sliderLabel,單擊return,完成添加。
添加Action,鼠標(biāo)選中slider,按住control鍵拖到BIDViewController.h中,在彈出的框框里,將Connection改成“Action”,為Action取一個(gè)名字叫做sliderChanged,單擊return,完成添加。
注意上圖中的Event選項(xiàng),這里選的“Value Changed”,也就是說當(dāng)滑塊的位置發(fā)生改變時(shí),就會(huì)觸發(fā)之歌Action。
添加完的BIDViewController.h如下:
#import <UIKit/UIKit.h>@interface BIDViewController : UIViewController@property (weak, nonatomic) IBOutlet UITextField *nameField;@property (weak, nonatomic) IBOutlet UITextField *numberField;@property (weak, nonatomic) IBOutlet UILabel *sliderLabel;- (IBAction)textFieldDoneEditing:(id)sender;- (IBAction)backgroundTap:(id)sender;- (IBAction)sliderChanged:(id)sender;@end
BIDViewController.m如下:
#import "BIDViewController.h"@implementation BIDViewController@synthesize nameField;@synthesize numberField;@synthesize sliderLabel;......- (IBAction)sliderChanged:(id)sender {}
5)添加code
在sliderChanged添加如下code
- (IBAction)sliderChanged:(id)sender { UISlider *slider = (UISlider *)sender; int progressAsInt = (int)roundf(slider.value); sliderLabel.text = [NSString stringWithFormat:@"%d", progressAsInt];}
代碼還是很好理解的,當(dāng)滑塊位置發(fā)生改變時(shí),觸發(fā)sliderChanged,在sliderChanged中,將sender轉(zhuǎn)換成UISlider對(duì)象,然后獲取滑塊位置的當(dāng)前值,然后將當(dāng)前值賦給label。
6)編譯運(yùn)行
command+B編譯
command+R運(yùn)行
正常情況下程序不會(huì)有任何問題,iphone模擬器將會(huì)運(yùn)行起來,然后滑動(dòng)滑塊,label的值會(huì)隨著滑塊位置的不同而跟著改變。
程序運(yùn)行的初始畫面
滑動(dòng)滑塊,label值隨之改變。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注