亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

從零開始學ios開發(六):IOS控件(3),SegmentedControl、Switch

2019-11-14 20:22:20
字體:
來源:轉載
供稿:網友

這次的學習還是基于上一個項目繼續進行(你也可以新建一個項目)學習Segmented Control和Switch。

Segmented Control

Switch

Segmented Control和Switch的主要區別在于Segmented Control可以有多個值進行選擇,而Switch只有2個值。

1)添加Segmented Control
從object library中拖一個Segmented Control到iphone界面上
然后調整Segmented Control位置以及它的寬度,如下圖

在Segmented Control的attributes inspector中有一個屬性叫做Segments,這個值是用來設置有多少個分段,默認是2個,你可以將它的值設成100,看看其效果如何。

像改變Label控件文字內容一樣,鼠標雙擊Segmented Control上的文字,可以改變其內容,將“First”改成“Switches”,將“Second”改成“Button”,如下

1)添加2個Switch
從object library中拖兩個Switch到iphone界面上,如下

Switch的attribute不需要做改動,下面接著創建Outlet和Action

3)添加Outlet和Action
為2個Switch添加分別添加Outlet,然后2個Switch共用一個Action,Segmented Control使用一個Action
為左邊的Switch添加一個Outlet,命名為leftSwitch,為右邊的Switch添加一個Outlet,命名為rightSwitch
 
為左邊的Switch添加一個Action,命名為switchChanged,添加完成后,將右邊的Switch也關聯到switchChanged

為Segmented Control添加一個Action,命名為toggleControls

添加完的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;@property (weak, nonatomic) IBOutlet UISwitch *leftSwitch;@property (weak, nonatomic) IBOutlet UISwitch *rightSwitch;- (IBAction)textFieldDoneEditing:(id)sender;- (IBAction)backgroundTap:(id)sender;- (IBAction)sliderChanged:(id)sender;- (IBAction)switchChanged:(id)sender;- (IBAction)toggleControls:(id)sender;@end
復制代碼

(上面有很多其他的Outlet和Action,這個是使用了之前項目的原因)

BIDViewController.m如下

復制代碼
#import "BIDViewController.h"@implementation BIDViewController@synthesize nameField;@synthesize numberField;@synthesize sliderLabel;@synthesize leftSwitch;@synthesize rightSwitch;...- (IBAction)switchChanged:(id)sender {}- (IBAction)toggleControls:(id)sender {}
復制代碼

4)實現Switch Action
在BIDViewController.m中的switchChanged方法中添加如下代碼:

- (IBAction)switchChanged:(id)sender {    UISwitch *whichSwitch = (UISwitch *)sender;    BOOL setting = whichSwitch.isOn;    [leftSwitch setOn:setting animated:YES];    [rightSwitch setOn:setting animated:YES];}

因為leftSwitch和rightSwitch都關聯到了switchChanged,因此,無論對哪個switch進行操作,都會調用到該方法,在該方法中,首先將sender強制轉換成UISwitch類型,這樣就可以使用UISwitch定義的屬性了,isOn用來判斷Switch的狀態是打開還是關閉(Switch僅有的2種狀態),最好根據觸發事件的Switch狀態,將另一個switch也設置成相同的狀態,程序中為了方便,并沒有判斷到底是哪個switch觸發了該Action,只是簡單的將2個switch設成相同的狀態而已。

[rightSwitch setOn:setting animated:YES];

setOn方法是根據后面的BOOL型參數的值來設置Switch的狀態是打開還是關閉(ON,OFF)。
animated是指當Switch從一種狀態切換到另一種狀態后,其滑塊是否有活動效果,如果是YES,則滑塊滑動的慢點,給人的感覺滑塊是慢慢移動過去的,如果設成NO,滑塊會很快地改變位置,滑動的速度很快。

編譯運行程序,用鼠標在模擬器中點擊Switch控件,看看效果,2個switch的值應該始終是一樣的,并且無論點擊哪個switch,另一個switch的值也會隨之改變。
Switch is ON

Switch is OFF

5)添加Button
Segmented Control在這個應用中的作用是切換Switch和Button,且Switch和Button同時只能有一個顯示,另一個必須隱藏,因此我們在switch相同的位置添加Button,并設置Button按鈕的屬性為hidden,程序初始情況下不顯示,然后需要顯示Button時,只需切換segmented的值,Button就會顯示,2個switch會被隱藏。

在2個switch相同的位置上添加一個button

拉伸button,使其完全遮住2個switch,并雙擊button,輸入"Do Something"

6)為button添加Outlet和Action
添加Outlet是因為我們需要在改變segmented中來控制釋放顯示或隱藏button,當點擊button后,Action會被觸發。
添加Outlet:doSomethingButton

添加Action:buttonPressed

7)隱藏button
之所以到現在才設置button的隱藏屬性(Hidden),是因為這樣子會更加方便添加button的Outlet和Action,容易選擇。
選中button,在attributes inspector的View欄中找到“Hidden”的checkbox,并選中

選中Hidden后,button變成不可見,但是在iphone的布局界面里,button僅僅是變成了透明而已,其外觀還是可見的,在真實的運行環境里,button是看不見的。

8)實現segmented的Action
segmented的Action toogleControls我們之前已經添加完畢了,在其中添加如下code

復制代碼
- (IBAction)toggleControls:(id)sender {    if ([sender selectedSegmentIndex] == 0) {        leftSwitch.hidden = NO;        rightSwitch.hidden = NO;        doSomethingButton.hidden = YES;    }    else {        leftSwitch.hidden = YES;        rightSwitch.hidden = YES;        doSomethingButton.hidden = NO;    }}
復制代碼

第一個if語句,使用Segmented Control的selectedSegmentIndex方法來返回segment的哪個值(那一段)被選中(Segmented Control中的塊的index從左到右從0開始編號),如果是第0個,說明Switch段被選中的,因此左右2個switch需要顯示,button需要隱藏,因此設2個switch的hidden屬性值為NO(false,不隱藏),button需呀隱藏,設其hidden值為YES(true,隱藏)。如果不是,則說明第1個被選中(這個程序中的segmented只有2段,不是第0段被選中就是第1段被選中),2個switch需要隱藏,button需要顯示。

編譯運行,程序初始情況下,segmented的第0段被選中,2個switch顯示

鼠標選中segmented的Button,2個switch隱藏,button顯示

9)下一篇將實現button的Action
到目前為止,所有新添加的控件,除了button的Action之外,都已經實現了其應有的功能。button的Action將在下一篇中完成,這里的button Action涉及到2個新的控件Action Sheet和Alert,這2個控件有點特殊,他們不是從object library拖到iphone界面上,而是會使用到delegate(其實delegate到目前為止我也不是理解的很清楚,還是有點迷茫,望高人能夠指點),對我來說還有些復雜,因此放到下一篇中講,望大家諒解。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品成人久久久久| 久久久精品视频成人| 中文字幕免费精品一区| 亚洲精品乱码久久久久久按摩观| 5278欧美一区二区三区| 欧美激情在线观看| 亚洲影院色在线观看免费| 国产在线播放91| 国产z一区二区三区| 国产精品9999| 91久久嫩草影院一区二区| 俺去亚洲欧洲欧美日韩| 欧美视频专区一二在线观看| 久久夜色精品国产欧美乱| 日韩欧美精品中文字幕| 久久久久亚洲精品成人网小说| 久久久av电影| 日韩大陆毛片av| 欧美色另类天堂2015| 国产精品欧美日韩一区二区| 国产有码一区二区| 98午夜经典影视| 97在线免费观看| 日韩毛片在线看| 欧美丝袜美女中出在线| 久久精品国产清自在天天线| 精品国产一区av| 在线精品国产欧美| 91精品国产91久久久久福利| 久久香蕉国产线看观看av| 美乳少妇欧美精品| 国产精品成人一区| 91国偷自产一区二区三区的观看方式| 亚洲高清免费观看高清完整版| 日韩精品在线观看视频| 俺也去精品视频在线观看| 精品久久久久久亚洲国产300| 91九色单男在线观看| 日韩免费精品视频| 欧美日韩性生活视频| 日韩精品免费看| 中文字幕久久久av一区| 国产91|九色| 95av在线视频| 456国产精品| 一区二区三区天堂av| 欧美激情一区二区三区久久久| 亚洲第一精品久久忘忧草社区| 日韩激情视频在线| 国产精品久久久久久久久久久新郎| 欧美在线中文字幕| 亚洲欧美日韩一区二区在线| 亚洲二区在线播放视频| 国产成人在线一区二区| 欧美精品在线免费播放| 成人亚洲激情网| 91精品国产综合久久久久久蜜臀| 亚洲成人动漫在线播放| 亚洲国产精品va在看黑人| 538国产精品一区二区免费视频| 亚洲97在线观看| 日韩中文娱乐网| 97免费中文视频在线观看| 亚洲男人7777| 日韩高清av在线| 亚洲成人1234| 日韩激情视频在线| 日韩国产一区三区| 97色在线视频| 国产国语videosex另类| 国产欧美一区二区三区四区| 992tv成人免费影院| 性夜试看影院91社区| 欧美在线xxx| 亚洲aa在线观看| 日本久久久久久久久久久| 欧美激情久久久久| 欧美一级高清免费| 中文亚洲视频在线| 国产乱肥老妇国产一区二| 国产视频久久久久| 日韩网站免费观看| 亚洲香蕉在线观看| 欧美中文在线视频| 国产视频福利一区| 欧美激情欧美激情| 欧美成人午夜剧场免费观看| 91成人免费观看网站| 国产精品女人网站| 九九热精品视频国产| 亚洲欧美激情一区| 色综合天天综合网国产成人网| 一区二区欧美在线| 国内精品久久久久伊人av| 91免费在线视频网站| 国产精品久久久久久av| 91在线精品播放| 亚洲精品永久免费| 91av在线网站| 日韩电影免费观看在线| 91在线国产电影| 欧美性高潮在线| 亚洲成人精品视频在线观看| 色播久久人人爽人人爽人人片视av| 91精品视频专区| 欧美日韩综合视频网址| 在线观看日韩欧美| 51视频国产精品一区二区| 亚洲欧美激情另类校园| 国产精品欧美激情| 97国产精品人人爽人人做| 欧美一区二区三区艳史| 国产精品一区=区| 国产亚洲一区二区精品| 91成人在线播放| 97精品一区二区视频在线观看| 欧美一区二粉嫩精品国产一线天| 日韩久久精品电影| 欧美极品在线视频| 91精品国产九九九久久久亚洲| 国产这里只有精品| 成人免费视频xnxx.com| 久久久在线免费观看| 91精品综合视频| 亚洲精品xxxx| 欧美日韩精品中文字幕| 国产精品99蜜臀久久不卡二区| 中国日韩欧美久久久久久久久| 日韩在线观看高清| 国产精品草莓在线免费观看| 国产精品高清免费在线观看| 国产精品日韩精品| 久久久精品一区二区三区| 欧美在线www| 欧美专区在线播放| 黑人欧美xxxx| 国产精品视频导航| 久久视频在线视频| 92国产精品久久久久首页| 最近中文字幕日韩精品| 欧美精品videosex牲欧美| 欧美日韩一区二区免费视频| 狠狠色噜噜狠狠狠狠97| 狠狠躁夜夜躁人人爽超碰91| 国产婷婷97碰碰久久人人蜜臀| 色综合导航网站| 日韩欧美精品网址| 91亚洲精品在线| 在线视频亚洲欧美| 91精品久久久久久久久久另类| 欧美激情欧美狂野欧美精品| 国产盗摄xxxx视频xxx69| 国产精品久久久久久久久| 国产男人精品视频| 久久久久久久久久久91| 久久夜色精品亚洲噜噜国产mv| 精品久久国产精品| 国产成人+综合亚洲+天堂| 欧洲精品毛片网站| 久久激情五月丁香伊人| 久久99视频免费| 日韩美女免费视频| 国产999精品视频| 中文字幕久热精品在线视频|