自动布局(Masonry)设置tabbar
//自定义标签工具栏
- (void) initTabBarView{
//
self.bottomView = [[UIView alloc]initWithFrame:CGRectMake(, kScreenHeight-tabViewHeight-,kScreenWidth, tabViewHeight+)];
[self.view addSubview:self.bottomView]; UIView *upLine = [[UIView alloc]initWithFrame:CGRectMake(, ,kScreenWidth, 0.5)];
upLine.backgroundColor = RGB(0xd4, 0xdd, 0xe3);
upLine.alpha = 0.16;
[self.bottomView addSubview:upLine]; UIView *downLine = [[UIView alloc]initWithFrame:CGRectMake(, 0.5 ,kScreenWidth, 0.5)];
downLine.backgroundColor = RGB(0x34, 0x53, 0x6a);
downLine.alpha = 0.16;
[self.bottomView addSubview:downLine]; _tabBarView = [[UIView alloc]initWithFrame:CGRectMake(, , kScreenWidth, tabViewHeight)];
_tabBarView.backgroundColor = [UIColor whiteColor]; [self.bottomView addSubview:_tabBarView]; NSArray *textArr = @[@"通讯录",@"常用联系人",@"个人中心"];
NSArray *imageNameArray = @[@"tab_ico_contact_nor.png",@"tab_ico_contact_hl.png",
@"tab_ico_collect_nor.png",@"tab_ico_collect_hl.png",
@"tab_ico_me_nor.png",@"tab_ico_me_hl.png"];
int tabCount =(int)textArr.count; NSMutableArray *spaceViews = [NSMutableArray arrayWithCapacity:tabCount+]; for (int i=; i < tabCount+; i++) {
UIView *v = [UIView new];
[spaceViews addObject:v];
[self.tabBarView addSubview:v]; [v mas_makeConstraints:^(MASConstraintMaker *make) {
make.height.mas_equalTo(tabViewHeight);
make.centerY.mas_equalTo(self.tabBarView.mas_centerY);
}];
}
[spaceViews[] mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(self.tabBarView.mas_left); }];
for(int i= ;i< textArr.count;i++)
{
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.tag = +i;
[btn setImage:[UIImage imageNamedWithoutCache:imageNameArray[i*] ] forState:UIControlStateNormal];
[btn setImage:[UIImage imageNamedWithoutCache:imageNameArray[i*+] ] forState:UIControlStateSelected];
[btn setImage:[UIImage imageNamedWithoutCache:imageNameArray[i*+] ] forState:UIControlStateHighlighted];
[btn setTitle:textArr[i] forState:UIControlStateNormal];
[btn setTitleColor:RGB(0x7c, 0x86, 0x8d) forState:UIControlStateNormal];
[btn setTitleColor:RGB(, 0x9c, 0xff) forState:UIControlStateHighlighted];
[btn setTitleColor:RGB(, 0x9c, 0xff) forState:UIControlStateSelected];
btn.titleLabel.font = [UIFont systemFontOfSize: /];
[btn addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];
btn.frame = CGRectMake(kScreenWidth/tabCount*i + kScreenWidth/(tabCount*), (tabViewHeight-btnHeight)/,kScreenWidth/(*tabCount) , btnHeight); //kScreenWidth/(2*tabCount) btn.bounds.size.width
btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;
[btn setTitleEdgeInsets:UIEdgeInsetsMake(btn.imageView.image.size.height, -btn.imageView.image.size.width, , )];
[btn setImageEdgeInsets:UIEdgeInsetsMake(, ,btn.titleLabel.bounds.size.height, -btn.titleLabel.bounds.size.width)]; [self.tabBarView addSubview:btn]; [spaceViews[i+] mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.equalTo(btn.mas_right);
make.width.equalTo(((UIView *)spaceViews[i]).mas_width);
}]; [btn mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.tabBarView.mas_top).offset((tabViewHeight-btnHeight)/);
make.bottom.equalTo(self.tabBarView.mas_bottom).offset(-(tabViewHeight-btnHeight)/);
make.height.equalTo(@);
make.left.equalTo(((UIView *)spaceViews[i]).mas_right);
make.right.equalTo(((UIView *)spaceViews[i+]).mas_left);
}];
if(i == )
{
[btn setSelected:YES];
} } [spaceViews[tabCount] mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self.tabBarView.mas_right);
}]; }
自动布局(Masonry)设置tabbar的更多相关文章
- 设置tabbar的角标与第三方库Masonry的基本使用
// 设置tabbar的角标 [[[[[self tabBarController] viewControllers] objectAtIndex: 0] tabBarItem] setBadgeVa ...
- StoryBoard 设置TabBar SelectImage 和tintColor
如图:StoryBoard 结构是 Tabbar + Navi + ViewController 需求:需要修改TabBar的Image 和SelectImage 设置Image 设置SelectIm ...
- 设置TabBar图片
设置TabBar图片 // 拿到 TabBar 在拿到想应的item UITabBar *tabBar = _tabBarController.tabBar; UITabBarItem *item0 ...
- 设置tabBar、使用第三方插件和自定义组件使用简单实例
创建小程序项目进入时填写,因需要用上第三方插件,所以要填上开发者的APPID,前往微信公众平台去注册一个账号获取APPID,在设置=>开发设置可以查看相关appid信息 简单思路 底部导航添加三 ...
- iOS自动布局——Masonry详解
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由鹅厂新鲜事儿发表于云+社区专栏 作者:oceanlong | 腾讯 移动客户端开发工程师 前言 UI布局是整个前端体系里不可或缺的一环 ...
- 项目中 -- 设置tabBar样式 (旅游局)
- (void)addChildViewController:(UIViewController *)ViewController image:(UIImage *)image selectImg:( ...
- iOS AutoLayout自动布局&Masonry介绍与使用实践
Masonry介绍与使用实践:快速上手Autolayout http://www.cnblogs.com/xiaofeixiang/p/5127825.html http://www.cocoachi ...
- iOS开发 masonry 设置tableHeadView
最近做公司项目,使用到到tableHeadView,一直习惯用masonry来设置约束,但是设置tableHeadView没有那么的简单.先看下效果图: 视图层次结构是这样的: 基础的创建工程项目之类 ...
- 设置TabBar分栏控制器上图片的大小问题
我们都知道,iOS因为屏幕分辨率的问题,UID在交付我们iOS开发人员程序配图的时候,一般是三套图,分别对应三种不同的分辨率,对不同size的屏幕系统会自动使用不同像素的图片,我们只需要在命名时给三套 ...
随机推荐
- paper 92:图像视觉博客资源2之MIT斯坦福CMU
收录的图像视觉(也包含机器学习等)领域的博客资源的第二部分,包含:美国MIT.斯坦福.CMU三所高校 1)这些名人大家一般都熟悉,本文仅收录了包含较多资料的个人博客,并且有不少更新,还有些名人由于分享 ...
- zw版【转发·台湾nvp系列Delphi例程】HALCON BinThreshold
zw版[转发·台湾nvp系列Delphi例程]HALCON BinThreshold unit Unit1;interfaceuses Windows, Messages, SysUtils, Var ...
- 鸟哥的Linux私房菜之学习shell script
运行程序的时候一般都是创建一个子程序来执行,所以子程序中的变量什么的在当前的shell下没法使用,但是如果使用source来执行就可以在当前shell下执行程序 shift 1 去掉第一个参数,后面接 ...
- TM1680的I2C的51例程
搞到一个例程,虽然是51的, 但是我的ST版本也是用的模拟I2C, 分析一下吧: unsigned char i=0;TM1680start(); //I2C起始信号 TM1680SendByte( ...
- DirectoryInfo类
DirectoryInfo类和Directory类之间的关系与FileInfo类和File类之间的关系十分类似.下面介绍一下DirectoryInfo类的常用属性. DirectoryInfo类的常用 ...
- Mac OX 隐藏文件夹,文件,应用,磁盘的2种方法 hide finder folder, file, application, volume in 2 ways
经常需要主目录下隐藏一些文件夹之类的, 第一想到的当然就是:在要隐藏的文件夹前面加『.』(leading dot),这个用法当然可以的了 用习惯了Linux/GNU系统的,基本习惯使用这种办法 但是, ...
- Mysql密码恢复
由于种种原因,Mysql root用户的密码可能被恶意篡改,这个时候就需要对Mysql进行密码恢复了.大致步骤如下: 1.修改MySQL的登录设置: # vi /etc/my.cnf 在[mysqld ...
- Quartz2D简介及基本线条绘制
* Quartz2D简介 1.什么是Quartz2D? 他是一个二维的绘图引擎,同时支持iOS和Mac系统 2.Quartz2D能完成的工作 画基本线条,绘制文字,图片,截图,自定义UIView. 3 ...
- POJ 3580:SuperMemo(Splay)
http://poj.org/problem?id=3580 题意:有6种操作,其中有两种之前没做过,就是Revolve操作和Min操作.Revolve一开始想着一个一个删一个一个插,觉得太暴力了,后 ...
- C#Web编程
1.Web服务器控件可以包含服务器上调用的事件处理程序.只有送回服务器时,才在服务器上触发事件.把autoPostBack设置为true,事件将立即传给服务器.这样就会使客户端调用Javascript ...