众所周知,在iOS开发中UITabBar是一个封装的UI控件,苹果在文档中提供的接口和属性非常有限,要想自定义一个富有个性的UITabBar还是需要花点功夫的。
在自定义tabBarItem的选中背景图片和文字颜色时,需要用到tabBar的一个子视图UITabBarButton,UITabBarButton是一个隐藏的子类,所谓隐藏是苹果没有在文档中明确提供却对视图的显示起着至关重要的作用。
先看看UITabBar的结构,代码如下:
for (UIView *subView in tabBar.subviews) {
NSLog(@"subItemView.className -- %@",[subView class]);
}
可以看到,UITabBar的结构里,有两个隐藏的类_UITabBarBackgroundView,UITabBarButton,可以看出底部的tabBarItem应该是一个UIButton的衍生类,那我们继续探寻UITabBarButton的结构,代码如下
打印结果
结果输出有多了连个东东,UITabBarSwappableImageView,UITabBarButtonLabel,从名字上面看出,一个负责背景图显示,一个负责文字显示,这和UIButton有异曲同工之妙。