一、初入iOS
1.1 學(xué)習(xí)iOS開發(fā)
? 學(xué)習(xí)iOS最為重要的是跟隨課程進(jìn)度,視頻中老師講解的要下來(lái)經(jīng)常練習(xí),其次是具備較強(qiáng)的自學(xué)能力,對(duì)于開發(fā)學(xué)習(xí)資料有兩種來(lái)源,其一為:查閱官方文檔包括。其二為:各種開發(fā)者交流社區(qū)。
目前課程進(jìn)度為對(duì)iOS界面控件的學(xué)習(xí)。iOS中有許多的界面控件其中:
1、UIButton類是iOS的按鈕類。
2、UILabel類是iOS的標(biāo)簽類,負(fù)責(zé)顯示文本。
3、UIImage類是圖片類,負(fù)責(zé)將圖片封裝成對(duì)象。
3、UITextField類是iOS的文本框類,供用戶在指定區(qū)域輸入一行值。
4、UITextView類是多行文本框類,可以輸入多行文字。
5、UIAlertController類是警報(bào)窗,可以彈出對(duì)話框,并且對(duì)話框其它區(qū)域不能點(diǎn)擊。
6、UISwitch類是開關(guān)按鈕,只有0和1兩個(gè)值,一般用于對(duì)是和否的設(shè)置。
7、UISegmentedControl類是分段按鈕,和開關(guān)按鈕一樣是值改變事件。
8、UISlider類是滑塊按鈕,如對(duì)亮度的調(diào)節(jié)就可以用滑塊。
9、UIProgressView類是進(jìn)度條類,可以告訴用戶,目前的進(jìn)度。
等等。這些控件都有相應(yīng)的類方法和對(duì)象方法,還有各自的特定屬性供開發(fā)者自定義自己的界面。下來(lái)應(yīng)該多多練習(xí)和熟悉這些界面控件。
2.2 初學(xué)iOS
? iOS是為移動(dòng)設(shè)備開發(fā)應(yīng)用程序,所以我覺(jué)得開發(fā)一個(gè)iOS應(yīng)用最為重要的是兩點(diǎn):功能強(qiáng)大和操作簡(jiǎn)單。功能強(qiáng)大是用戶選擇移動(dòng)應(yīng)用的原因,操作簡(jiǎn)單是移動(dòng)應(yīng)用留住用戶的關(guān)鍵。
從Single View Application開始,學(xué)習(xí)iOS應(yīng)用程序的開發(fā)。(iOS6.0以前其實(shí)提供了,純代碼的開發(fā)工程,更新后就取消了,我也不知道為什么,但是我覺(jué)得純代碼的開發(fā)工程更適合新手學(xué)習(xí))
先看文件結(jié)構(gòu):AppDelegate類顧名思義是應(yīng)用程序代理類。其中實(shí)現(xiàn)文件中的方法是整個(gè)程序運(yùn)行的生命周期,這些方法是由系統(tǒng)自動(dòng)調(diào)用,而不能手動(dòng)調(diào)用。
寫在這些方法中的代碼就是在這種狀態(tài)下,程序應(yīng)該干些啥子。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions ?//程序發(fā)射完成,就是運(yùn)行完了歡迎界面。進(jìn)入main窗口。
- (void)applicationWillResignActive:(UIApplication *)application//程序?qū)⒁M(jìn)入不活動(dòng)狀態(tài),大概意思是說(shuō),其它程序打斷這個(gè)程序的運(yùn)行。比如有人給你打電話。
- (void)applicationDidEnterBackground:(UIApplication *)application//程序已經(jīng)進(jìn)入后臺(tái)。意思是說(shuō)用戶按了home鍵,或者跳轉(zhuǎn)。
- (void)applicationWillEnterForeground:(UIApplication *)application//程序?qū)⒁M(jìn)入前臺(tái)。于上面相反。
- (void)applicationDidBecomeActive:(UIApplication *)application//程序已經(jīng)變成活動(dòng)狀態(tài),和不活動(dòng)狀態(tài)相反。
- (void)applicationWillTerminate:(UIApplication *)application//程序?qū)⒁K止。就是說(shuō)用戶手動(dòng)上滑程序,強(qiáng)制關(guān)閉應(yīng)用。
接下來(lái)是ViewController
我們可以看到,ViewController繼承自UIViewController,就是說(shuō)ViewController是視圖控制器的子類,什么是視圖控制器呢?我理解是相當(dāng)于一個(gè)容器,其名可以放任何可與用戶參生交互的東西,而且只有放在這個(gè)上面,我們才能看到。其實(shí)現(xiàn)文件中有兩個(gè)方法:
- (void)viewDidLoad {
[super viewDidLoad];
}//view加載完后,先調(diào)用父類的加載方法,這個(gè)明顯體現(xiàn)了多態(tài),重寫了父類的加載方法。寫在這個(gè)方法中的代碼將在界面加載完成后執(zhí)行。
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}//也是重修父類的方法,意思是收到內(nèi)存警告。也就是說(shuō),移動(dòng)設(shè)備內(nèi)存不足時(shí),你該干什么。
Main.storyboard是故事版,其綁定的類是上面的ViewController,是方便我們可視化設(shè)計(jì)界面的一個(gè)工具。
Assets.xcassets是iOS提供給我們方便管理圖片的工具。其默認(rèn)創(chuàng)建的一項(xiàng)AppIcon是管理應(yīng)用程序的圖標(biāo)。
LaunchScreen.storyboard是發(fā)射界面設(shè)計(jì)故事版,管理應(yīng)用程序進(jìn)入時(shí),首先看到的歡迎界面,其隨后會(huì)自動(dòng)消失。
info.plist這個(gè)文件,我的理解時(shí)管理整個(gè)應(yīng)用程序的各種屬性,比如狀態(tài)欄的顯示,程序界面的主入口之類的。
main函數(shù)就不多說(shuō)了。
二、Button
2.1 UIButton
UIButton類是iOS提供給我們的可點(diǎn)擊按鈕控件,這個(gè)控件應(yīng)該分成兩部分來(lái)理解。一個(gè)是提供信息功能,一是時(shí)間響應(yīng)功能。
在信息功能中,用戶可以自定義的屬性有:
UIButton but=[UIButton buttonWithType:XXXX]//創(chuàng)建一個(gè)button控件,其顯示類型可以自定義,iOS提供了很多UIButtonType類型,其實(shí)質(zhì)是一個(gè)枚舉值。
[but setTitle:XX forState:XX]//第一個(gè)參數(shù)是設(shè)置,在按鈕上顯示的文字(注意:有些按鈕類型是不會(huì)顯示文字的),是NSString類型,第二個(gè)參數(shù)是在什么情況下顯示(這個(gè)需要下來(lái)仔細(xì)的熟悉一下)]
but.titleLabel.textColor=[UIColor redColor];是設(shè)置按鈕上顯示文字的顏色。
but.titleLabel.textAlignment//是設(shè)置按鈕顯示的文本格式。
but.tag=XX//是設(shè)置tag值,作用是標(biāo)示此按鈕。
but.frame=CGMakeRectMake(xx,xx,xx,xx)是設(shè)置按鈕顯示的文字和大小。
如果按鈕的Type是Custom,還可以為按鈕添加圖片:[but setImage:[UIImage imageNamed:圖片名] forState:在那種狀態(tài)下顯示];
在響應(yīng)功能中,要給這個(gè)按鈕設(shè)置一個(gè)Target,代碼如下:
[but addTarget:這個(gè)由誰(shuí)去處理 action:處理的方法(通過(guò)@selector()取方法地址)forControlEvents:觸發(fā)這個(gè)Target的事件];