您的位置:首页 > 其它

自定义 TabBar

2016-08-04 16:55 134 查看

import “XMGTabBar.h”

@interface XMGTabBar()

/* 发布按钮 /

@property (nonatomic, weak) UIButton *publishButton;

@end

@implementation XMGTabBar

(instancetype)initWithFrame:(CGRect)frame

{

if (self = [super initWithFrame:frame]) {

// 设置tabbar的背景图片

[self setBackgroundImage:[UIImage imageNamed:@”tabbar-light”]];

// 添加发布按钮
UIButton *publishButton = [UIButton buttonWithType:UIButtonTypeCustom];
[publishButton setBackgroundImage:[UIImage imageNamed:@"tabBar_publish_icon"] forState:UIControlStateNormal];
[publishButton setBackgroundImage:[UIImage imageNamed:@"tabBar_publish_click_icon"] forState:UIControlStateHighlighted];
publishButton.size = publishButton.currentBackgroundImage.size;
[self addSubview:publishButton];
self.publishButton = publishButton;


}

return self;

}

(void)layoutSubviews

{

[super layoutSubviews];

CGFloat width = self.width;

CGFloat height = self.height;

// 设置发布按钮的frame

self.publishButton.center = CGPointMake(width * 0.5, height * 0.5);

// 设置其他UITabBarButton的frame

CGFloat buttonY = 0;

CGFloat buttonW = width / 5;

CGFloat buttonH = height;

NSInteger index = 0;

for (UIView *button in self.subviews) {

if (![button isKindOfClass:[UIControl class]] || button == self.publishButton) continue;

// 计算按钮的x值
CGFloat buttonX = buttonW * ((index > 1)?(index + 1):index);
button.frame = CGRectMake(buttonX, buttonY, buttonW, buttonH);

// 增加索引
index++;


}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: