經驗之談—自定義tabbar(繼承於UITabBar)

  • 自定義tabbar一般來說有兩種方式,一種是繼承於系統的UITabBar,一種是繼承與UIView的tabbar。
  • 我們現在來看一下繼承與UITabBar這種情況中需要注意的一些細節。其實繼承與UITabBar我們無非是想修改一下tabbar中的子控件的frame或者是添加子控件等。
  • 我們接下來添加一個按鈕到自定義的tabbar上。
  • 注意的地方:我們先打印一下看看UITabBar裏面存在的子控件:
    tabbar

  • 我們可以看出,這裏打印出了除UITabBarButton之外的兩個控件:UITabBarBackgroundView和UIImageView。

  • 從尺寸我們就能很明顯的看出。UITabBarBackgroundView就是這個tabbar的背景圖片,然後UIImageView就是上面的那一根線。那麼在自定義控件設置frame的時候,就不能直接拿出下標或者self.subviews.count。來獲得子控件的個數了。要進行判斷了:
for (UIView *child in self.subviews)
    {
        Class class = NSClassFromString(@"UITabBarButton");
        if ([child isKindOfClass:class])
        {
            //設置frame的代碼
        }

    }

因爲這個UITabBarButton是一個私有的,所以我們通過上面這個方法來進行判斷一下,再設置我們的frame,就去除了剛剛那兩個控件的干擾。

發佈了177 篇原創文章 · 獲贊 111 · 訪問量 47萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章