AppDelegate的生命周期

AppDelegate.swift中應(yīng)該了解的內(nèi)容

@UIApplicationMain  //調(diào)用了OC中的UIApplicationMain函數(shù)泳桦;是iOS應(yīng)用程序的入口檀轨; 功能: 1.創(chuàng)建了一個(gè)UIApplication對(duì)象宵睦,代表當(dāng)前應(yīng)用程(作用是用來(lái)檢測(cè)當(dāng)前應(yīng)用程序狀態(tài)的改變)。2.創(chuàng)建一個(gè)遵守UIApplicationDelegate的協(xié)議的類的對(duì)象作為UIApplication的代理(作用處理應(yīng)用程序狀態(tài)的改變,實(shí)質(zhì)創(chuàng)建AppDelegate對(duì)象并且設(shè)置為UIApplication對(duì)象的代理)


class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

//1. 當(dāng)應(yīng)用程序啟動(dòng)成功后,會(huì)自動(dòng)調(diào)用這個(gè)方法
    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        
//        1.在這個(gè)方法中來(lái)創(chuàng)建應(yīng)用程序中的所有的界面
//        2.獲取應(yīng)用程序需要展示的數(shù)據(jù)
//        3.使用界面展示數(shù)據(jù)
//        注意:如果不在這個(gè)文件中創(chuàng)建window,那么程序會(huì)通過(guò)Main.storyboard去創(chuàng)建應(yīng)用程序的界面
        print("啟動(dòng)成功")
        return true
    }

//     2. 當(dāng)應(yīng)用程序?qū)⒁腔钴S狀態(tài)的時(shí)候會(huì)自動(dòng)調(diào)用這個(gè)方法枝嘶。
//     活躍狀態(tài):程序在屏幕上可見
//     非活躍狀態(tài):程序沒有顯示在屏幕上(a.按home鍵進(jìn)入后臺(tái)。b.來(lái)電打斷蘸炸。c.在當(dāng)前應(yīng)用程序中打開其它的應(yīng)用程序)
    func applicationWillResignActive(application: UIApplication) {
        
//        在這個(gè)方法中一般去暫停視頻/音頻播放;游戲需要暫停游戲尖奔;保存數(shù)據(jù)
        print("將要成為非活躍狀態(tài)")
//        按home鍵:command + shift + h
        // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
        // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
    }

//   3. 應(yīng)用程序已經(jīng)進(jìn)入后臺(tái)的時(shí)候會(huì)自動(dòng)調(diào)用
//    進(jìn)入后臺(tái)按home鍵
    func applicationDidEnterBackground(application: UIApplication) {
        print("進(jìn)入后臺(tái)")
     
    }

//    4.應(yīng)用程序?qū)⒁M(jìn)入前臺(tái)的時(shí)候會(huì)自動(dòng)調(diào)用的方法
//    進(jìn)入前臺(tái):
    func applicationWillEnterForeground(application: UIApplication) {
        
        print("將要進(jìn)入前臺(tái)")
      
    }

//    5.應(yīng)用程序已經(jīng)變成活躍狀態(tài)的時(shí)候會(huì)自動(dòng)調(diào)用
//    a.程序啟動(dòng)成功之后 b.程序從后臺(tái)重新進(jìn)入前臺(tái) c.來(lái)電打斷結(jié)束...
    func applicationDidBecomeActive(application: UIApplication) {
        print("已經(jīng)變成活躍狀態(tài)")
       
    }

//    6.應(yīng)用程序?qū)⒁K止的時(shí)候會(huì)調(diào)用的方法
//    
    func applicationWillTerminate(application: UIApplication) {
        print("應(yīng)用程序?qū)⒁K止")
     }
    

如何用代碼的形式加載windows窗口

class AppDelegate: UIResponder, UIApplicationDelegate {
//  UIWindow:UIView
//  window:窗口搭儒,一個(gè)應(yīng)用程序想要展示在屏幕上,至少要有一個(gè)window提茁,一個(gè)手機(jī)應(yīng)用程序一般只有一個(gè)window
//    應(yīng)用程序中的所有界面全部是展示在window上的
    var window: UIWindow?

//  1.程序已經(jīng)啟動(dòng)
    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        
//        1.創(chuàng)建UIWindow對(duì)象
//        frame  是UIView中的屬性淹禾,確定視圖顯示在屏幕上的位置和大小
//         UIScreen.mainScreen() 拿到手機(jī)屏幕
            self.window = UIWindow.init(frame: UIScreen.mainScreen().bounds)
//        2.設(shè)置根視圖控制器
        self.window?.rootViewController = UIViewController()
        
        self.window?.backgroundColor = UIColor.yellowColor()
        // Override point for customizatio n after application launch.
        return true
    }

 

}

UIView基本屬性和方法

        
//        UIView:是iOS 中所有控件(視圖)直接/間接的父類;所以UIView的屬性和方法茴扁,對(duì)其他類型的視圖都有效
//        視圖:在屏幕上能看到的所有的東西都屬于視圖

//        1.創(chuàng)建UIView的對(duì)象
        0let redView = UIView()
        
//        2. 想要將視圖展示在屏幕上的兩個(gè)條件铃岔;
//        a.必須設(shè)置坐標(biāo)和大小(默認(rèn)坐標(biāo)是(0,0)大谢傧啊(0智嚷,0))
//        b.將視圖添加到已經(jīng)展示在屏幕上的視圖
//        設(shè)置frame的(x,y)和(width,height)兩個(gè)部分組成
//        redView.frame = CGRect(x: 10, y: 10, width: 100, height: 100)
//        iOS 中所有的結(jié)構(gòu)體都有一個(gè)對(duì)應(yīng)的Make方法用來(lái)快速的創(chuàng)建一個(gè)結(jié)構(gòu)體變量
        redView.frame = CGRectMake(10, 10, 100, 100)
//        3.將視圖添加到界面上
        self.view.addSubview(redView)
        
//        4.設(shè)置背景顏色
//        視圖的背景顏色默認(rèn)是透明色
//        顏色創(chuàng)建的方式:
//        a.通過(guò)類型方法創(chuàng)建指定顏色
        
        redView.backgroundColor = UIColor.redColor()
//        b.通過(guò)三原色來(lái)創(chuàng)建顏色
//        CGFloat就是UI中的浮點(diǎn)型
//        參數(shù)1,2纺且,3:紅盏道,綠,藍(lán)的值(0~1)  4:透明度(0~1)
//        redView.backgroundColor = UIColor.init(red: 0.35, green: 0.45, blue: 0.75, alpha: 0.88)
//        redView.backgroundColor = UIColor.init(white: 0.4, alpha: 1)
        
//        練習(xí):創(chuàng)建一個(gè)黃色的矩形载碌,顯示在紅色視圖的中間位置猜嘱,大小是(50,50)
//        方式1:
//        let yellowView = UIView(frame: CGRectMake(35,35,50,50))
//        yellowView.backgroundColor = UIColor.yellowColor()
//        self.view.addSubview(yellowView)
        
//        方式2:
        let yellowView = UIView(frame: CGRectMake(25,25,50,50))
        yellowView.backgroundColor = UIColor.yellowColor()
//        添加到紅色視圖上
        redView.addSubview(yellowView)

//        總結(jié):計(jì)算視圖的坐標(biāo)的時(shí)候,注意相對(duì)性嫁艇。當(dāng)前視圖被添加到哪個(gè)視圖上朗伶,那么當(dāng)前視圖的坐標(biāo)就是相對(duì)于誰(shuí)來(lái)算的
        
    }

與frame相關(guān)的屬性

//        創(chuàng)建一個(gè)視圖
        let redView = UIView()
//        添加到界面上
        self.view.addSubview(redView)
//        設(shè)置背景顏色
        redView.backgroundColor = UIColor.redColor()
//        1.frame(坐標(biāo)和大小)
        redView.frame = CGRectMake(100, 100, 100, 100)
//        2.center(中心點(diǎn))
//        a.通過(guò)frame和確定視圖的中心點(diǎn)坐標(biāo)
        print(redView.center)
//        b.可以通過(guò)改變center的值步咪,去改變視圖的坐標(biāo)
        redView.center = CGPoint(x: 200, y: 200)
        print(redView.center)

        //        3.bounds(坐標(biāo)和大新劢浴)
//        默認(rèn)情況下bounds的坐標(biāo) 是(0,0)大小和視圖的frame大小一樣
       print(redView.bounds)

//        了解:
//        如果改變bounds的大小歧斟,frame的大小和坐標(biāo)都改變纯丸,center不變
//         如果改變bounds的坐標(biāo),不影響當(dāng)前視圖的位置静袖。但是影響添加到當(dāng)前視圖上的子視圖的坐標(biāo)觉鼻,不建議修改bounds
        //        redView.bounds = CGRect(x: 0, y: 0, width: 200, height: 200)
        
        
        
//        4.transform(形變)
//        當(dāng)前視圖發(fā)生形變,那么添加到當(dāng)前視圖上的所有視圖都會(huì)跟著一起形變
        
//        a.縮放
//        參數(shù)1:x方向上的縮放比例
//        參數(shù)2:y方向上的縮放比例
//        redView.transform = CGAffineTransformMakeScale(0.8, 2.5)
        
        
//        b.旋轉(zhuǎn)
//        參數(shù):旋轉(zhuǎn)角度(圓周率對(duì)應(yīng)的角度)
//        redView.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_4))
        
//        c.平移
//        參數(shù)1:在x方向上平移的距離
//        參數(shù)2:在y方向上平移的距離
//        redView.transform = CGAffineTransformMakeTranslation(100, 100)
        
        
//        d.多個(gè)形變同時(shí)發(fā)生 
//        在另外一個(gè)形變的前提下旋轉(zhuǎn)
//        參數(shù)1:另外一個(gè)形變
        redView.transform = CGAffineTransformRotate(CGAffineTransformMakeScale(0.5, 0.5), CGFloat(M_PI_4))
        
//        在另外一個(gè)形變的前提下平移
        redView.transform = CGAffineTransformTranslate(redView.transform, 0, 300)
        
//        在另外一個(gè)形變的前提下縮放
//        創(chuàng)建一個(gè)平移的形變
        let transLation = CGAffineTransformMakeTranslation(100, 0)
        redView.transform = CGAffineTransformScale(transLation, 0.5, 2 )
        
//        組合兩個(gè)變形
//        將旋轉(zhuǎn)形變和平移形變組合
        let  rotate = CGAffineTransformMakeRotation(0.2)
        let transLation1 = CGAffineTransformMakeTranslation(100, 100)
        redView.transform = CGAffineTransformConcat(transLation1, rotate)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末队橙,一起剝皮案震驚了整個(gè)濱河市坠陈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捐康,老刑警劉巖仇矾,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異解总,居然都是意外死亡贮匕,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門花枫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)刻盐,“玉大人,你說(shuō)我怎么就攤上這事劳翰《匦浚” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵佳簸,是天一觀的道長(zhǎng)乙墙。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么听想? 我笑而不...
    開封第一講書人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任腥刹,我火速辦了婚禮,結(jié)果婚禮上哗魂,老公的妹妹穿的比我還像新娘肛走。我一直安慰自己,他們只是感情好录别,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開白布朽色。 她就那樣靜靜地躺著,像睡著了一般组题。 火紅的嫁衣襯著肌膚如雪葫男。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評(píng)論 1 312
  • 那天崔列,我揣著相機(jī)與錄音梢褐,去河邊找鬼。 笑死赵讯,一個(gè)胖子當(dāng)著我的面吹牛盈咳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播边翼,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼鱼响,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了组底?” 一聲冷哼從身側(cè)響起丈积,我...
    開封第一講書人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎债鸡,沒想到半個(gè)月后江滨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡厌均,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年唬滑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片棺弊。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡晶密,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出镊屎,到底是詐尸還是另有隱情惹挟,我是刑警寧澤茄螃,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布缝驳,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏用狱。R本人自食惡果不足惜运怖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望夏伊。 院中可真熱鬧摇展,春花似錦、人聲如沸溺忧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)鲁森。三九已至祟滴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間歌溉,已是汗流浹背垄懂。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留痛垛,地道東北人草慧。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像匙头,于是被迫代替她去往敵國(guó)和親漫谷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容