- 自定義tabbar一般來說有兩種方式,一種是繼承於系統的UITabBar,一種是繼承與UIView的tabbar。
- 我們現在來看一下繼承與UITabBar這種情況中需要注意的一些細節。其實繼承與UITabBar我們無非是想修改一下tabbar中的子控件的frame或者是添加子控件等。
- 我們接下來添加一個按鈕到自定義的tabbar上。
注意的地方:我們先打印一下看看UITabBar裏面存在的子控件:
我們可以看出,這裏打印出了除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,就去除了剛剛那兩個控件的干擾。