iOS小技能(開發(fā)規(guī)范):app的開發(fā)步驟(ios app 開發(fā)教程)
今天,六??萍夹【幷埥塘艘幌麻_發(fā)總監(jiān),為大家整理了APP開發(fā)的步驟,望參考!
前言
app的開發(fā)步驟:
- 搭建界面(應(yīng)用程序的樣本)
- 連線(界面按鈕和操作功能進行綁定)
1)IBAction:本質(zhì)上是void,只不過允許連線而已;使用IBAction增加代碼的可讀性,明顯的確定出方法和事件的連接關(guān)系
驗證 IBAction 本質(zhì)上是void的方法:使用void替換IBAction 的即可。
例子:計算按鈕的點擊事件與代碼的計算方法的連線
2)IBOutlet:屬性與界面的控件對象的連線(獲取和修改控件對象的屬性)
- 編寫程序?qū)崿F(xiàn)功能
I 搭建界面
用純代碼開發(fā)的過程:https://blog.csdn.net/z929118967/article/details/123086127
確定界面元素,要有什么內(nèi)容 用代碼搭建界面 編寫代碼
II 連線的建立:IB 與代碼的連接
1.在.m文件中書寫方法和屬性 2. 添加IBOutlet或者IBAction 3. 進行屬性、方法與IB的連接
2.1 IBAction在IB中的源碼
connections 的子標簽:action、outlet
<connections> <action selector="compute" destination="BYZ-38-t0r" eventType="touchUpInside" id="nRR-Ts-mdy"/><!-- destination屬性值與viewController標簽的ID屬性值對應(yīng),事件類型為touchUpInside--> </connections>
2.2 IBOutlet的源碼
<connections> <outlet property="numLeft" destination="fAv-gN-3wn" id="afF-lT-F3e"/> <!-- outlet 標簽的目標屬性destination的值與textField標簽的ID屬性值對應(yīng)--> <outlet property="numRight" destination="ckV-X6-tGL" id="MIb-xK-6hD"/> <outlet property="resultLabel" destination="zv3-WY-PfL" id="DUL-Fn-rTa"/> </connections>
2.3 方法和屬性聲明
/** 用來聲明屬性和方法以及靜態(tài)界面與代碼的關(guān)聯(lián) 代碼與界面上的對象進行通信:即代碼如何操作界面上的對象--在iPhone平臺上引入了IBAction、IBOutlet IB :interface builder 界面搭建 IB修飾符:IBAction & IBOutlet、Outlet connection 三種 IBAction:監(jiān)聽方法與點擊按鈕事件進行連線--使用IBAction修飾方法,表示該方法與UI界面上的某個監(jiān)聽事件對應(yīng) IBoutlet:UIViewController 對象的屬性與UI的控件對象進行連線,以便對控件的屬性進行獲取和修改--與IB的連線:在變量之前加上IBOutlet來表示,該變量與界面上的某個UI對象對應(yīng) */#import <UIKit/UIKit.h>@interface ViewController : UIViewController@property (nonatomic,weak) IBOutlet UITextField *numLeft;@property (nonatomic,weak) IBOutlet UITextField *numRight;@property (nonatomic,weak) IBOutlet UILabel *resultLabel;/** 計算方法聲明*/- (void) compute;@end
III 編寫程序?qū)崿F(xiàn)功能(方法的實現(xiàn))
在storyBoard 上的控件按住control 進行與.m文件的連接
加法計算的實現(xiàn)
#import "ViewController.h"@interface ViewController ()@end@implementation ViewController/** 視圖加載完成會被執(zhí)行*/- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. NSLog(@"==========viewDidLoad");}- (IBAction)compute {//與界面計算按鈕關(guān)聯(lián)并在監(jiān)聽到用戶點擊之后,進行數(shù)據(jù)處理和數(shù)據(jù)展示 NSLog(@"=====compute"); //1.獲取界面的文本框內(nèi)容 NSString *n1=self.numLeft.text; NSString *n2=self.numRight.text; NSLog(@"n1= %@ n2= %@",n1,n2); //2.內(nèi)容相加 int result=n1.intValue n2.intValue; NSLog(@"result= %d",result); //3.在右側(cè)標簽上顯示結(jié)果 self.resultLabel.text=[NSString stringWithFormat:@"%d" ,result]; //4.退出鍵盤 //在所有的面向?qū)ο笳Z言中,有一個原則:誰申請,誰釋放 //resignFirstResponder : Notifies the receiver that it has been asked to relinquish its status as first responder in its window. 讓文本框不再擔當?shù)谝豁憫?yīng)者 //FirstResponder:光標是在的文本框 //resign 辭去 //self.numLeft resignFirstResponder]; // [self.numRight resignFirstResponder]; //Causes the view (or one of its embedded text fields) to resign the first responder status. [self.view endEditing:YES];//yes 參數(shù)避免多線程問題}@end
IV app的開發(fā)步驟分析
- 搭建界面(應(yīng)用程序的樣本)
- 連線:(視圖控制器中)--監(jiān)聽按鈕事件
1)IBAction:代碼方法(操作)于界面的事件連線-》計算按鈕的點擊事件與代碼的計算方法的連線-- IBAction 本質(zhì)上是void,只不過允許連線而已;使用IBAction增加代碼的可讀性,明顯的確定出方法和事件的連接關(guān)系 驗證 IBAction 本質(zhì)上是void的方法:使用void替換IBAction 的即可
2)IBOutlet:屬性與界面的控件對象的連線-》獲取和修改控件對象的屬性
- 編寫程序?qū)崿F(xiàn)功能--修改圖像按鈕的屬性,來調(diào)整它的位置和大小
1)一個UIImage對象代表一張圖片,一般通過imageNamed:方法就可以通過文件名加載項目中的圖片(PNG格式的圖片可以省略擴展名)
UIImage加載圖片 :UIImage *image = [UIImage imageNamed:@"btn_01"];
V 開發(fā)規(guī)范
5.1 修改對象的結(jié)構(gòu)體屬性的成員的三個步驟
修改對象的結(jié)構(gòu)體屬性的成員步驟
// self.iconButton.frame.origin.y-=10;//OC中,不予許直接修改“對象”(iconButton)的“結(jié)構(gòu)體屬性”(frame)的“成員”(origin);但是允許修改結(jié)構(gòu)體屬性的成員 //修改對象的結(jié)構(gòu)體屬性的成員通常采用以下三個步驟 //1. 從對象取出frame結(jié)構(gòu)體屬性 CGRect frame = self.iconButton.frame; //2.修改結(jié)構(gòu)體屬性成員 frame.origin.y-=20; //3.將對象的結(jié)構(gòu)體屬性進行賦值,達到修改的目的 self.iconButton.frame=frame;
5.2 代碼優(yōu)化
優(yōu)化習慣手段:先重構(gòu)且測試完成,再刪除原來的舊代碼
5.3 避免魔法數(shù)字
避免魔法數(shù)字(magic number),提高程序的可讀性,達到程序的優(yōu)雅易讀
- 使用enum 解決模仿數(shù)字: 使用枚舉值解決模仿數(shù)字問題
- 使用macro 手段避免魔法數(shù)字
(六??萍肌叨嘶ヂ?lián)網(wǎng)解決方案提供商)