正文
自定义UITabBar思路,在
XBYTabBarControlle
r中viewDidLoad调用方法
/**
设置自定义TabBar
*/
-(void)setupTabBar {
XBYTabBar *tabBar = [XBYTabBar new];
//self.tabBar = tabBar;由于tabBar是readOnly,所以不能直接赋值,使用KVC
[self setValue:tabBar forKeyPath:@"tabBar"];
NSLog(@"setupTabBar --- >%@",self.tabBar);
}
对系统TabBar进行替换,然后再加上TabBarButton
**PS:
注意:系统的TabBarButton是在viewWillAppear中加入到self.tabBar中的,所以上面的方法需要在viewWillAppear之前调用才能替换掉系统的tabBar,否则无效
**
在
XBYTabBar中
@interface XBYTabBar()
@property(nonatomic, strong) UIButton *button;
@end
@implementation XBYTabBar
-(void)layoutSubviews {
[super layoutSubviews];
[self addSubview:self.button];
NSLog(@"%@",self.subviews);
NSInteger count = self.items.count+1;
CGFloat btnW = self.frame.size.width /count;
CGFloat btnH = self.frame.size.height;
CGFloat btnX = 0;
NSInteger i=0;
//遍历
for (UIView *tabBarButton in self.subviews){
if