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)信息。