1. 怎么解決緩存池慢的問題?
- iOS中不存在緩存池慢的情況,因為通常我們在iOS開發中,對象都是在需要的時候才會創建,有種常用的說話叫做“懶加載”;
- 還有在UITableView中一般只會創建剛開始出現在屏幕中的cell,之后都是從緩存池里取,不會在創建新的對象。
- 緩存池里最多也就一兩個對象,緩存池慢的情況一般在JAVA開發中比較常見,JAVA中一般把最近最少使用的對象先釋放。
2. CAAnimation的層級結構
CAAnimation.png
3. UIButton與UITableView的層級結構
- 繼承結構
- 內部的子控件結構
4. 如何渲染自定義格式字符串的UILabel?
- 通過
NSAttributedString
類
5. 設置scroll view 的contensize能在ViewDidLoad里設置嗎,為什么?
- 能
- ViewDidLoad里做初始化的工作不影響設置scroll view 的contensize
6. 按鈕或者其它UIView控件的事件傳遞的具體過程
- 事件響應鏈知識點,一級一級傳遞
7. 控制器View的生命周期及相關函數是什么?你在開發中是如何用的?
- 首先判斷是否有視圖,如果沒有就調用
loadView
方法創建:通過storyboard
或者代碼; - 隨后調用
viewDidLoad
,可以進行下一步的初始化操作,只會被調用一次; - 在視圖顯示之前調用
viewWillAppear
,該函數可以多次調用; - 視圖
viewDidAppear
; - 下一個視圖顯示之前,調用上一個視圖的
viewWillDisappear
,該函數可以多次調用(若需要); -
viewDidDisappear
; - 再布局變化前后,調用
viewWill/DidLayoutSubviews
處理相關信息。