iOS面試題錦集(五)——UI控件

1. 怎么解決緩存池慢的問(wèn)題?

  • iOS中不存在緩存池慢的情況,因?yàn)橥ǔN覀冊(cè)趇OS開發(fā)中,對(duì)象都是在需要的時(shí)候才會(huì)創(chuàng)建,有種常用的說(shuō)話叫做“懶加載”;
  • 還有在UITableView中一般只會(huì)創(chuàng)建剛開始出現(xiàn)在屏幕中的cell,之后都是從緩存池里取,不會(huì)在創(chuàng)建新的對(duì)象。
  • 緩存池里最多也就一兩個(gè)對(duì)象,緩存池慢的情況一般在JAVA開發(fā)中比較常見,JAVA中一般把最近最少使用的對(duì)象先釋放。

2. CAAnimation的層級(jí)結(jié)構(gòu)

CAAnimation.png

3. UIButton與UITableView的層級(jí)結(jié)構(gòu)

  • 繼承結(jié)構(gòu)
  • 內(nèi)部的子控件結(jié)構(gòu)

4. 如何渲染自定義格式字符串的UILabel?

  • 通過(guò)NSAttributedString

5. 設(shè)置scroll view 的contensize能在ViewDidLoad里設(shè)置嗎,為什么?

  • ViewDidLoad里做初始化的工作不影響設(shè)置scroll view 的contensize

6. 按鈕或者其它UIView控件的事件傳遞的具體過(guò)程

  • 事件響應(yīng)鏈知識(shí)點(diǎn),一級(jí)一級(jí)傳遞

7. 控制器View的生命周期及相關(guān)函數(shù)是什么?你在開發(fā)中是如何用的?

  • 首先判斷是否有視圖,如果沒(méi)有就調(diào)用loadView方法創(chuàng)建:通過(guò)storyboard或者代碼;
  • 隨后調(diào)用viewDidLoad,可以進(jìn)行下一步的初始化操作,只會(huì)被調(diào)用一次;
  • 在視圖顯示之前調(diào)用viewWillAppear,該函數(shù)可以多次調(diào)用;
  • 視圖viewDidAppear;
  • 下一個(gè)視圖顯示之前,調(diào)用上一個(gè)視圖的viewWillDisappear,該函數(shù)可以多次調(diào)用(若需要);
  • viewDidDisappear;
  • 再布局變化前后,調(diào)用viewWill/DidLayoutSubviews處理相關(guān)信息。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • UI viewcontroller的一些方法的說(shuō)明viewDidLoad,viewWillDisappear, v...
    b485c88ab697閱讀 3,649評(píng)論 0 22
  • *面試心聲:其實(shí)這些題本人都沒(méi)怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來(lái)就是把...
    Dove_iOS閱讀 27,666評(píng)論 30 472
  • 1.屬性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作...
    曾令偉閱讀 1,144評(píng)論 0 10
  • 翻譯自“Collection View Programming Guide for iOS” 0 關(guān)于iOS集合視...
    lakerszhy閱讀 4,084評(píng)論 1 22
  • 1.OC里用到集合類是什么? 基本類型為:NSArray,NSSet以及NSDictionary 可變類型為:NS...
    輕皺眉頭淺憂思閱讀 1,486評(píng)論 0 3

友情鏈接更多精彩內(nèi)容