自定义 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++;
}
}
相关文章推荐
- KVM源代码分析4:内存虚拟化
- Yii之请求部分 - request
- PHP的奋斗之路
- shell
- AndroidStudio常用设置总结
- xstream解析xml到实体类
- 160804方法调用的练习题1
- 1012. 数字分类 (20)
- 【python新手入门】一个python List 的简单运用 -----班级学生管理系统
- LMAP
- 浅谈微信卡券功能开发(2)
- SDUT3401数据结构实验之排序四:寻找大富翁
- css定位(positon)
- linux 关机方式
- win 批处理,导出 MongoDB 到 json 文件
- SQLServer安装正常服务启动正常却无法连接
- 柯尔莫可洛夫-斯米洛夫检验(Kolmogorov–Smirnov test,K-S test)
- (转)Linux文件系统的实现
- Android 判断日期是否在一年以内的算法
- bower简明入门