1、應用場景——自定義uitabbarcontroller的tabbar檢視
(1)隱藏tabbar檢視
一般我們選擇自定義tabbar檢視有兩種方式。1是將tabbar檢視隱藏;2是將tabbar檢視從父檢視中移除,**如下(假設,已建立uitabbarcontroller子類):
- (void)viewdidload
當執行完以上**後,tabbar檢視「消失」了,就會顯示出tabbar檢視之前所占用的空白位置,如下圖所示():
之後,我們會將自定義的tabbar檢視新增到這個空白位置,這個空白位置的高度是49。因此我們自定義的tabbar檢視高度也應該是49,否則會出現gap。
然而有時,我們的自定義的tabbar檢視高度不一定是49的高度。那麼也就是說,我們需要將這紫色的頁面高度進行調整。
(2)調整檢視
在調整檢視之前,我們需要看看tabbarcontroller的檢視,包含哪些子檢視,**如下:
for (uiview *subview in self.view.subviews)
通過控制台列印結果如下:
subview : >
subview : >
從列印結果我們不難看出,tabbarcontroller的檢視包含2個子檢視,乙個是我們非常熟悉的uitabbar檢視,大家可以仔細看看它的frame(尤其是高度),而兩外乙個檢視名叫uitransitionview的物件。其實,當我們建立乙個tabbarcontroller控制器,它在請求自己的view時,會自動新增2個子檢視,乙個是我們非常熟悉的tabbar檢視,另外乙個就是uitransitionview。tabbar檢視的作用不言而喻,切換檢視控制器。而uitranstionview檢視作用則是用來承載我們感興趣的內容(間接的載入其他檢視控制器的子檢視)。也就是圖2-1的中的紫色部分。因此,如果我們想控制自定義tabbar檢視的高度(不在是固定的49),我們就需要拉長uitransitionview的高度,即讓紫色的檢視加長。那麼,問題又來了,我們需要在遍歷子檢視時準確的找出uitransitionview,然後修改它的高度,這時,反射就派上用場了。**如下所示:
for (uiview *subview in self.view.subviews)
}
iOS開發之 UILabel的巧用
主要講解利用uilabel的來做乙個簡單的toast效果。這個是看到wdlabel的實現,感覺挺好的,就 主要的思路就是繼承uilabel,然後在drawrect cgrect rect裡面進行調整,以達到乙個toast的效果。define klabelcornerradius 9.0f void ...
iOS 反射機制和應用
反射機制 ios反射機制 執行時選擇建立哪個例項,並動態選擇呼叫哪個方法。獲取class的三種方法 通過字串獲取class class class nsclassfromstring nsstring nslog class type class 直接用class 來建立物件 通過物件來獲取clas...
iOS 開發之沙盒機制
1.ios 沙盒機制簡介 沙盒也叫沙箱,英文standbox,其原理是通過重定向技術,把程式生成和修改的檔案定向到自身資料夾中。在沙盒機制下,每個程式之間的資料夾不能互相訪問。ios系統為了保證系統安全,採用了這種機制 ios 應用程式在安裝時,會建立屬於自己的沙盒檔案,應用程式不能直接訪問其他應用...