在學(xué)習(xí)了Objective-C語(yǔ)言和Foundation框架之后,開始學(xué)習(xí)iOS界面的開發(fā)坡椒。首先了解一下iOS的應(yīng)用是怎么編寫運(yùn)行起來(lái)的:
iOS應(yīng)用程序的特點(diǎn):
在iOS中,一次只能有一個(gè)應(yīng)用處于活動(dòng)狀態(tài)并顯示在屏幕上猾骡。
- 只能使用一個(gè)窗口
- 有限的訪問權(quán)限
- 有限的響應(yīng)時(shí)間
- 有限的屏幕尺寸
- 有限的系統(tǒng)資源:
iOS具備的圖形特性和多種功能洪规,很容易耗光內(nèi)存。手機(jī)很大一部分內(nèi)存被用于屏幕緩沖區(qū)和其他一些系統(tǒng)進(jìn)程醇份。只有不到一半的內(nèi)存留給應(yīng)用程序使用〖诠現(xiàn)代os會(huì)將未使用的內(nèi)存塊寫到磁盤的交換文件中。
應(yīng)用程序的可用內(nèi)存大小受限于iOS設(shè)備中未使用的物理內(nèi)存空間僚纷。 - 不支持垃圾回收矩距,使用ARC
*模擬器不支持需要依賴硬件的特性,比如加速計(jì)和攝像頭
iOS工程文件組織結(jié)構(gòu)
采用MVC模式
Main.storyboard 這個(gè)文件包含了項(xiàng)目主視圖控制器用到用戶界面元素怖竭,在應(yīng)用啟動(dòng)時(shí)自動(dòng)加載锥债。
一個(gè)應(yīng)用程序通常有多個(gè)視圖控制器,每個(gè)界面各一個(gè)
第一響應(yīng)者就是用戶當(dāng)前正在進(jìn)行交互的對(duì)象
Interface Builder不會(huì)生成任何需要手動(dòng)維護(hù)的代碼,直接創(chuàng)建OC或swift對(duì)象哮肚,然后序列化到storyboard或nib文件中登夫,在運(yùn)行時(shí)將其直接加載到內(nèi)存中。AppDelegate 應(yīng)用程序委托
委托是負(fù)責(zé)為其他對(duì)象處理特定任務(wù)的對(duì)象ViewController 視圖控制器類
ViewController.m中有一個(gè)空的類擴(kuò)展
使用類擴(kuò)展來(lái)放置視圖控制器的輸出接口允趟。
在實(shí)現(xiàn)類中放置操作方法恼策。
(1)輸出接口outlet
特殊屬性,引用storyboard文件中的對(duì)象
是指向用戶界面中對(duì)象的指針
@property(weak潮剪,nonatomic)IBoutlet UIButton *myButton;
弱引用涣楷,在不需要這個(gè)視圖時(shí)將它從用戶界面上移除并釋放。
(2)操作方法action
(IBAction)doSomething:(id) sender ;
(IBAction)doSomething ;-
庫(kù)是在程序中可以重復(fù)使用對(duì)象的集合抗碰。
Assets.xcassets為引用資源总棵,一般將圖片等放在這里管理
補(bǔ)充一個(gè)圖片資源調(diào)用的問題:
- 如果直接拖動(dòng)到工程文件夾下,直接調(diào)用會(huì)找不到資源文件改含,需要點(diǎn)擊工程名情龄,在Build Phases中的Copy Bundle Resources中再添加一次圖片,才能引用成功捍壤。且引用時(shí)需要寫資源文件的后綴名骤视!
-
如果用Assets.xcassets統(tǒng)一管理的話,添加圖片文件到其中鹃觉,并重新命名专酗,就可以直接以該名稱引用圖片。
如何編寫一個(gè)可運(yùn)行的界面應(yīng)用程序盗扇?
第一種 自動(dòng)生成的界面應(yīng)用程序方式為:
在Main.storyboard的IB中拖動(dòng)庫(kù)中的控件祷肯,打開assiant editer,控件右鍵拉到主視圖控制器的實(shí)現(xiàn)類中,自動(dòng)生成對(duì)應(yīng)的action操作方法疗隶;控件右鍵拉到類擴(kuò)展中佑笋,自動(dòng)生成輸出接口(屬性)。編寫完成后應(yīng)用啟動(dòng)時(shí)會(huì)自動(dòng)加載Main.storyboard斑鼻。
第二種 手動(dòng)編寫界面應(yīng)用程序方式為:
在主視圖控制器ViewController.m中編寫實(shí)現(xiàn)方法蒋纬,并加載為當(dāng)前視圖的子視圖,最后在viewDidLoad函數(shù)中用self調(diào)用該方法坚弱,具體代碼如下蜀备。
//創(chuàng)建UI控件函數(shù)
- (void)createUI{
UILabel* label = [[UILabel alloc]init];
label.text = @"Lychee is a very dilicious fruit,hhhhhhh";
//設(shè)置label的顯示位置
label.frame = CGRectMake(100, 100, 160, 40);
//設(shè)置label的背景顏色
label.backgroundColor = [UIColor yellowColor];
//將label顯示到屏幕上
[self.view addSubview:label];
}
- (void)viewDidLoad {
[super viewDidLoad];
//調(diào)用創(chuàng)建UI函數(shù)
[self createUI];
}
了解了以上知識(shí)后!荒叶!
菜鳥就要開始緊張激動(dòng)地開始學(xué)習(xí)各種界面控件了D敫蟆!些楣!
希望之后能學(xué)習(xí)愉快V住O芏谩!