1. 怎么解決緩存池慢的問題?
- iOS中不存在緩存池慢的情況,因?yàn)橥ǔN覀冊(cè)趇OS開發(fā)中笛粘,對(duì)象都是在需要的時(shí)候才會(huì)創(chuàng)建,有種常用的說話叫做“懶加載”湿硝;
- 還有在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?
- 通過
NSAttributedString
類
5. 設(shè)置scroll view 的contensize能在ViewDidLoad里設(shè)置嗎随抠,為什么裁着?
- 能
- ViewDidLoad里做初始化的工作不影響設(shè)置scroll view 的contensize
6. 按鈕或者其它UIView控件的事件傳遞的具體過程
- 事件響應(yīng)鏈知識(shí)點(diǎn),一級(jí)一級(jí)傳遞
7. 控制器View的生命周期及相關(guān)函數(shù)是什么拱她?你在開發(fā)中是如何用的二驰?
- 首先判斷是否有視圖,如果沒有就調(diào)用
loadView
方法創(chuàng)建:通過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)信息测砂。