UIViewController

UIViewController是iOS頂層視圖的載體及控制器踱蛀,用戶與程序界面的交互都是由UIViewController來控制的讯嫂,UIViewController管理UIView的生命周期及資源的加載與釋放。

UIView

經(jīng)常有同學(xué)問到獲取寬度或者坐標時到底用frame 還是 bounds, 在這里說一下最主要的區(qū)別, 看情況使用.

UIView 的 framebounds 屬性的區(qū)別
frame : 相對于父視圖的大小和位置, xy 是當前 view 的坐標.
bounds : 相對于自身位置的大小和位置, xy 永遠為0, 即屏幕原點 .

UIScreen

  • 獲取帶有狀態(tài)欄的 Rect
CGRect bounds = [UIScreen mainScreen].bounds;
  • 獲取不帶狀態(tài)欄的 Rect
CGRect bounds = [[UIScreen mainScreen] applicationFrame];
  • 獲取狀態(tài)欄的位置和大小
CGRect rect = [[UIApplication sharedApplication] statusBarFrame];

執(zhí)行順序

  1. alloc -- 創(chuàng)建對象, 分配空間
  2. init -- 初始化對象, 初始化數(shù)據(jù)
  3. loadView -- 從 nib 載入視圖
  4. viewDidLoad -- 載入完成纲酗,可以進行自定義數(shù)據(jù)以及動態(tài)創(chuàng)建其他控件
    注: 此方法只在 app 剛開始加載時調(diào)用一次,以后不會調(diào)用.
  5. viewWillAppear -- 視圖將要出現(xiàn)在屏幕上
    注: 此方法可以設(shè)置不同方向時設(shè)備如何顯示
  6. viewDidAppear -- 視圖已在屏幕上渲染完成
  7. viewWillDisappear -- 視圖將在屏幕上移除
  8. viewDidDisappear -- 視圖已經(jīng)移除
  9. dealloc -- 視圖被銷毀

內(nèi)存警告

當程序收到內(nèi)存警告的時候霍狰,會調(diào)用每一個ViewController的didReceiveMemoryWarning方法,我們需要做出相應(yīng)啄枕,釋放程序中暫時不需要的資源, 通常 vc 中系統(tǒng)已經(jīng)給我們重寫好了此方法, 但記得調(diào)用 super 方法.

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    
    float ver = [[[UIDevice currentDevice] systemVersion] floatValue];
    
    if(ver >= 6.0f)
    {
        if(self.isViewLoaded && !self.view.window)
        {
            self.view = nil; //確保下次重新加載
        }
    }
}

上面的代碼先取得當前iOS系統(tǒng)的版本號

  • 如果是iOS6.0或以上版本婚陪,進一步判斷視圖是否被裝載進內(nèi)存,并且是否為當前視圖频祝,在這兩個條件都滿足(已經(jīng)裝載進內(nèi)存&&不是當前視圖)時,將self.view設(shè)置為nil脆淹,這樣就能保證再調(diào)用該ViewController時常空,loadView和viewDidLoad被再次調(diào)用。

  • iOS3.0 - iOS6.0期間盖溺,didReceiveMemoryWarning方法會判斷當前ViewController的view是否顯示在window上漓糙,如果沒有顯示在window上,則didReceiveMemoryWarning會自動將ViewController的view以及其所有子view全部銷毀烘嘱,然后調(diào)用View Controller的viewDidUnload方法昆禽。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蝇庭,隨后出現(xiàn)的幾起案子醉鳖,更是在濱河造成了極大的恐慌,老刑警劉巖哮内,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盗棵,死亡現(xiàn)場離奇詭異,居然都是意外死亡北发,警方通過查閱死者的電腦和手機纹因,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來琳拨,“玉大人,你說我怎么就攤上這事恶耽。” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵暮的,是天一觀的道長冻辩。 經(jīng)常有香客問我恨闪,道長老玛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任炊昆,我火速辦了婚禮视乐,結(jié)果婚禮上彰檬,老公的妹妹穿的比我還像新娘捧颅。我一直安慰自己,他們只是感情好妆毕,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著贮尖,像睡著了一般笛粘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上湿硝,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天薪前,我揣著相機與錄音,去河邊找鬼关斜。 笑死序六,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的蚤吹。 我是一名探鬼主播,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼随抠,長吁一口氣:“原來是場噩夢啊……” “哼裁着!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拱她,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤二驰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后秉沼,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體桶雀,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年唬复,在試婚紗的時候發(fā)現(xiàn)自己被綠了矗积。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡敞咧,死狀恐怖棘捣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情休建,我是刑警寧澤乍恐,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布评疗,位于F島的核電站,受9級特大地震影響茵烈,放射性物質(zhì)發(fā)生泄漏百匆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一呜投、第九天 我趴在偏房一處隱蔽的房頂上張望加匈。 院中可真熱鬧,春花似錦宙彪、人聲如沸矩动。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽悲没。三九已至,卻和暖如春男图,著一層夾襖步出監(jiān)牢的瞬間示姿,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工逊笆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留栈戳,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓难裆,卻偏偏與公主長得像子檀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子乃戈,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

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