監聽系統事件:
3、 簡述推送訊息原理。
(2)有關於devicetoken變化問題:
重新安裝或解除安裝應用程式,devicetoken不會發生變化。
系統公升級devicetoken可能會發生變化。
抹掉所有內容和設定,重置裝置後,devicetoken會變化
4、 簡單說下uitableview、uibutton、uiwindow控制項的繼承關係。
(1)uitableview的繼承關係:uitableview繼承uiscrollview。uiscrollview繼承uiview。uiview繼承uiresponder。uiresponder繼承nsobject。
(2)uibutton的繼承關係:uibutton繼承uicontrol,uicontrol繼承uiview。uiview繼承uiresponder,uiresponder繼承nsobject。
(3)uiwindow繼承uiview。
5、 uiview與uibutton有什麼區別?uiswitch呢?
uiview繼承自uiresponder,它能響應某個動作。uibutton繼承uicontrol。它不僅可以響應某個動作,還能為某個物件新增對應的動作加以響應。
uibutton也能實現uiswitch的功能,它們的區別是分發的事件不一樣。
6、 簡述uicontrol的繼承關係,它用來做什麼?
uicontrol繼承uiview。uiview繼承uiresponder,uiresponder繼承nsobject。它能為某個特定物件新增事件。能進行事件分發。
7、 簡述uiviewcontroller中view的生命週期。
8、 簡述uitableview的**方法呼叫順序。
先呼叫numberofsectionsintableview:方法,
numberofrowsinsection:
heightforrowatindexpath:
cellforrowatindexpath:
9、 你在用collectionview的時候有沒有遇到什麼問題?問題是怎麼解決的?
重新整理的時候會閃爍。在重新整理的時候會預設附加乙個隱式的fade動畫。可以通過取消動畫來達到取消閃爍的目的。
10、 簡述uiresponder類的作用。
11、 如何監聽view的觸控事件?事件如何傳遞?簡述檢視的響應者鏈。
可以通過view類的touchesbegan、touchesmoved、touchesended、touchescancelled方法監聽檢視的觸控。
12、 calayer與uiview有什麼區別?
(1)uiview是ios系統中介面元素的繼承。所有的介面元素都繼承自它,他本身完全是由coreanimation來實現的。它真正的繪圖部分,是由乙個叫calayer的類來管理。uiview本身更像是乙個calayer的管理器,訪問它的跟繪圖和跟座標有關的屬性,如frame,bounds等,實際上內部都是在訪問它所包含的calayer的相關屬性。
(2)uiview有個layer屬性,可以返回它的主calayer例項,uiview有乙個layerclass方法,返回主layer所使用的類,uiview的子類,可以通過過載這個方法,來讓uiview使用不同的calayer來顯示。
(3)uiview的calayer類似uiview的子view樹形結構,也可以向它的layer上新增子layer。
(4)calayer座標系統與uiview有點不一樣,它多了乙個anchorpoint的屬性。
(5)uiview的layer樹形在系統內部,被系統維護著三份copy。邏輯樹,動畫樹,顯示樹。
(6)calayer預設修改屬性支援隱式動畫
(7)view可以接受並處理事件,layer不可以。
13、 如何優化uitableview?
(1)復用單元格
(2)使用不透明的檢視,單元格中少使用動畫。
(3)使用非同步載入,設定載入的併發數。
(4)滑動時不載入,停止滑動時再載入。
(5)和文字可以直接drawrect
(6)如果cell是動態行高,計算快取單元格高度
(7)盡量少reloaddata,只reloadrowsatindexpaths
(8)cell高度固定直接用rowheight屬性設定高度。
14、 簡述載入到控制器上的根檢視建立與載入時機。
檢視控制器的根檢視載入是在uiviewcontroller的loadview方法中。當檢視控制中的loadview方法被呼叫時,會先通過nsbundle載入,通過控制器的類名作為xib檔名載入xib檔案,如果存在,載入view為根檢視,如果不存在,則自動建立乙個view作為根檢視。
15、 簡述uitableview中cell的復用機制。
uitableview會建立螢幕顯示單元格個數(n)+1個單元格,當滑動到第n+2個單元格時就會復用第1個單元格。uitableview中還有單元格復用池的概念。
當tableview呼叫初始化單元格協議方法獲取單元格時,它會根據你設定的reuse identifier先去復用池中查詢可用的復用單元格,找到則復用該單元格,沒找到這建立乙個新的單元格物件。
面試題相關
一些位址 osi七層功能及協議 資料鏈路層是如何定址的?傳送方 已知接收方ip arp 接收方mac位址 交換機尋找該mac位址所在埠,把幀往這個埠 mac通過rarp轉為ip位址。可靠通訊是靠哪一層來完成的?網路層 tcp協議 100base t 100mbps,baseband,雙絞線對。簡而言...
02 面試題系列 併發集合相關
2019 03 16 10 週三不加班 同步集合可以簡單地理解為通過 synchronized 來實現同步的集合。不管是同步集合還是併發集合他們都支援執行緒安全,他們之間主要的區別體現在效能和可擴充套件性,二者都支援執行緒安全,區別主要體現在實現執行緒安全的方式,因此在效能和可擴充套件性上有明顯不同...
設計模式之相關面試題
1 請使用uml類圖畫出原型模式核心角色 2 原型設計模式的深拷貝和淺拷貝是什麼,並寫出深拷貝的兩種方式的原始碼 重寫clone方法實現深拷貝 使用序列化來實現深拷貝 3 在spring框架中 使用到原型模式,並對原始碼進行分析 beans.xml 4 spring中原型bean的建立,就是原型模式...