iphone 開發的基本入門知識

大前提:建立一個Xcode -> 點擊第二個 -> iOS -> Applaction -> Single View Application下的一個應用程序

一、main.m 里面的

  1、main函數,程序唯一的入口

  2、UIApplicationMain函數函數作用  

      1)創建一個應用程序UIApplication對象,他是應用程序的象征,一個UIApplication對象就代表一個應用程序

      2)指定誰管理應用程序的生命周期

      3)建立一個事件循環來捕捉處理用戶的行為

  3、永遠不用嘗試改變main.m中的內容

二、程序的生命周期

#import "AppDelegate.h"

@interface AppDelegate ()

@end

@implementation AppDelegate

#pragma mark 系統自動生成一個窗體

//1.當Applaction對象被實例化后,程序啟動調用這個方法

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.


NSLog(@"輸出系統自己創建的window=%@",self.window);

#pragma mark  手動創建一個UIwindow對象
//1).創建一個window對象

//UIWindow *customWindow = [[UIWindow alloc]init];

//2).獲取到UIScreen對象
UIScreen *screen = [UIScreen mainScreen];

//4).給window設置一個位置和尺寸

CGRect rect = [screen bounds]; //自動獲得當前所選擇的模擬器的窗體大小

UIWindow *customWindow = [[UIWindow alloc]initWithFrame:rect];

//5).給窗體設置背景顏色

customWindow.backgroundColor = [UIColor blueColor];

//6).給window設置一個根控制器,window和控制共同協作起來顯示界面

customWindow.rootViewController = [[UIViewController alloc]init];

//7).將customwindow賦值給self.window

self.window = customWindow;

//8).把定義的window作為主window,并顯示出阿萊

[customWindow makeKeyAndVisible];

#pragma mark  在桌面上放一些試圖

//用試圖做一個王字玩玩

//第1個豎
UIView *view = [[UIView alloc]init];
view.frame = CGRectMake(140, 50, 40, 380);
view.backgroundColor = [UIColor yellowColor];
[self.window addSubview:view];

//第1個橫
UIView *view1 = [[UIView alloc]init];
view1.frame = CGRectMake(50, 50, 220, 40);
view1.backgroundColor = [UIColor greenColor];
[self.window addSubview:view1];

//第2個橫
UIView *view2 = [[UIView alloc]init];
view2.frame = CGRectMake(50, 220, 220, 40);
view2.backgroundColor = [UIColor redColor];
[self.window addSubview:view2];

//第3個橫
UIView *view3 = [[UIView alloc]init];
view3.frame = CGRectMake(40, 390, 240, 40);
view3.backgroundColor = [UIColor purpleColor];
[self.window addSubview:view3];




NSLog(@"程序啟動");
return YES;
}

//3.當應用程序將要進入非活躍狀態執行,比如來電話了、鎖屏等。

 - (void)applicationWillResignActive:(UIApplication *)application {
    NSLog(@"程序進不活躍狀態");

}

//4.一般程序進入后臺,就會進入非活躍狀態,但如果你的程序支持后臺,程序在后臺也保持活躍狀態

- (void)applicationDidEnterBackground:(UIApplication *)application {

NSLog(@"程序進入后臺");
}

//5.程序進入前臺
  - (void)applicationWillEnterForeground:(UIApplication *)application {

  NSLog(@"程序進入前臺");
}

//2.當應用程序進入活躍狀態執行
- (void)applicationDidBecomeActive:(UIApplication *)application {

NSLog(@"程序變成活躍狀態");
 }
//6.當程序將要退出是被調用,通常是用來保存數據和一些退出前的清理工作
- (void)applicationWillTerminate:(UIApplication *)application {

NSLog(@"程序退出");
}

@end

三、UIWindow

1、在iOS中,使用窗口與試圖在屏幕上顯示應用程序的內容,窗口本身不具有任何可見的內容,但他對于應用程序的試圖提供一個基本的容器,試圖定義你想要的一些內容,例如:圖像、文本、表格等等

2、程序中每個時刻只能有一個UIWindow是keyWindow,通常應用程序只有一個window

3、iOS程序啟動完畢后,會首先創建一個UIWindow

4、一個iOS程序之所以能顯示到屏幕上,完全是因為它有UIWindow,也就是說沒有UIWindow,就看不見任何UI界面

5、常用方法
    
    1)讓當前UIWindow變成keyWindow(主窗口)

      - (void)makeKeyWindow;

    2)讓主窗口顯示出來

      - (void)makeKeyAndVisible; 

6、練習

   自己創建一個window作為主窗口

四、程序的完整啟動過程

1、main函數

2、UIApplicationMain
   
   1)創建UIApplication對象
   2)創建UIApplication的delegate對象

3、delegate對象開始處理(監聽)系統事件


  1)程序啟動完畢的時候, 就會調用代理的application:didFinishLaunchingWithOptions:方法

  2)在application:didFinishLaunchingWithOptions:中創建UIWindow

  3)創建和設置UIWindow的rootViewController
  4)顯示窗口

五、手機屏幕的幾個概念

1、UIScreen

可以充當iOS物理屏幕的替代者,

[UIScreen mainScreen] bounds] 能夠獲取屏幕大小

2、屏幕尺寸

  指具體的屏幕物理長度,以屏幕的對角線的長度作為試試

3、像素

  圖像由一個個點組成,這個點叫做像素

4、屏幕分辨率

  指屏幕屏幕上總共的物理像素點

5、屏幕尺寸

  設備      屏幕尺寸  分辨率(pt) reader 分辨率(px) 

  3GS       3.5      320*480   @1x     320*480

  4/4S      3.5      320*480   @2x     640*960

  5/5S/5C   4.0      320*568   @2x     750*134

  6         4.7      375*667   @2x     750*1334

  6P        5.5      414*736   @3x     1242*2208


  pt: 用于計算屏幕上的坐標

六、iOS坐標系統

1、iPhone的試圖坐標系是以左上角為原點

2、每一個view的frame所使用的坐標系以它的父試圖的左上角為原點

3、試圖結構和相關函數

   //試圖顯示的位置
   CGPoint point = CGPointMake(x,y) 

   //試圖顯示的大小
   CGSize size = CGSizeMake(width,height)

   //試圖顯示的位置和大小
   CGRect rect = CGRectMake(x,y,width,height);

4、frame/Bounds/center

   frame: 包含試圖的位置和大小
   Bounds:包含試圖的大小,位置默認是(0,0)
   center:包含試圖中心點所在的位置
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,501評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,673評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,610評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,939評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,668評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,004評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,001評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,173評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,705評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,426評論 3 359
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,656評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,139評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,833評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,247評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,580評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,371評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,621評論 2 380

推薦閱讀更多精彩內容