如何在TabBar上自定义添加个性按钮
2016-04-07 13:18
579 查看
如何在tabBar的中间添加一个发布按钮, 为此自定义了一个tabBar, 来修改器子控件的布局
#import "QMTabBar.h" @interface QMTabBar () @property (nonatomic, weak) UIButton *publishButton; //发布按钮 @end @implementation QMTabBar - (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; } //布局子控件, 把发布按钮布局在4个Item中间 - (void)layoutSubviews { [super layoutSubviews]; //设置发布按钮 self.publishButton.center = CGPointMake(self.width * 0.5, self.height * 0.5); CGFloat buttonY = 0; CGFloat buttonW = self.width / 5.0; CGFloat buttonH = self.height; NSInteger index = 0; //设置其他UITabBarButton的frame for (UIView *view in self.subviews) { if (![view isKindOfClass:NSClassFromString(@"UITabBarButton")]) continue; //UITabBarButton是苹果官方的私有方法, 可以通过NSClassFromString()拿到类 //计算按钮的X CGFloat buttonX = buttonW * ((index > 1)? (index + 1): index); view.frame = CGRectMake(buttonX, buttonY, buttonW, buttonH); index += 1; } } @end
相关文章推荐
- C#实现自定义双击事件
- WinForm实现自定义右下角提示效果的方法
- MFC自定义消息的实现方法
- C#实现ProperTyGrid自定义属性的方法
- php自定义错误处理用法实例
- ThinkPHP中自定义目录结构的设置方法
- C#自定义事件监听实现方法
- C#自定义事件及用法实例
- C#自定义签名章实现方法
- C#中使用IFormattable实现自定义格式化字符串输出示例
- javascript 自定义常用方法第1/2页
- 谈谈JavaScript自定义回调函数
- 自定义jQuery插件方式实现强制对象重绘的方法
- jQuery实现自定义checkbox和radio样式
- Jquery Mobile 自定义按钮图标
- jquery自定义插件开发之window的实现过程
- jQuery实现自定义事件的方法
- jQuery自定义滚动条完整实例
- jQuery创建自定义的选择器用以选择高度大于100的超链接实例
- 教你如何自定义百度分享插件以及bshare分享插件的分享按钮