自动布局(Masonry)设置tabbar

//自定义标签工具栏
- (void) initTabBarView{
//
    self.bottomView = [[UIView alloc]initWithFrame:CGRectMake(0, kScreenHeight-tabViewHeight-1,kScreenWidth, tabViewHeight+1)];
    [self.view addSubview:self.bottomView];

    UIView  *upLine = [[UIView alloc]initWithFrame:CGRectMake(0, 0,kScreenWidth, 0.5)];
    upLine.backgroundColor =  RGB(0xd4, 0xdd, 0xe3);
    upLine.alpha = 0.16;
    [self.bottomView addSubview:upLine];

   UIView  *downLine = [[UIView alloc]initWithFrame:CGRectMake(0, 0.5 ,kScreenWidth, 0.5)];
   downLine.backgroundColor =  RGB(0x34, 0x53, 0x6a);
   downLine.alpha = 0.16;
   [self.bottomView addSubview:downLine];

    _tabBarView = [[UIView alloc]initWithFrame:CGRectMake(0, 1, 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+1];

    for (int i=0; i < tabCount+1; 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[0] mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.mas_equalTo(self.tabBarView.mas_left);

    }];
    for(int i= 0;i< textArr.count;i++)
    {
        UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
        btn.tag = 100+i;
        [btn setImage:[UIImage imageNamedWithoutCache:imageNameArray[i*2] ] forState:UIControlStateNormal];
        [btn setImage:[UIImage imageNamedWithoutCache:imageNameArray[i*2+1] ] forState:UIControlStateSelected];
        [btn setImage:[UIImage imageNamedWithoutCache:imageNameArray[i*2+1] ] forState:UIControlStateHighlighted];
        [btn setTitle:textArr[i] forState:UIControlStateNormal];
        [btn setTitleColor:RGB(0x7c, 0x86, 0x8d) forState:UIControlStateNormal];
        [btn setTitleColor:RGB(0, 0x9c, 0xff) forState:UIControlStateHighlighted];
        [btn setTitleColor:RGB(0, 0x9c, 0xff) forState:UIControlStateSelected];
        btn.titleLabel.font = [UIFont systemFontOfSize: 18/2];
        [btn addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];
        btn.frame = CGRectMake(kScreenWidth/tabCount*i + kScreenWidth/(tabCount*4), (tabViewHeight-btnHeight)/2,kScreenWidth/(2*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, 0, 0)];
        [btn setImageEdgeInsets:UIEdgeInsetsMake(0, 0,btn.titleLabel.bounds.size.height, -btn.titleLabel.bounds.size.width)];

       [self.tabBarView addSubview:btn];

        [spaceViews[i+1] 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)/2);
            make.bottom.equalTo(self.tabBarView.mas_bottom).offset(-(tabViewHeight-btnHeight)/2);
            make.height.equalTo(@33);
            make.left.equalTo(((UIView *)spaceViews[i]).mas_right);
            make.right.equalTo(((UIView *)spaceViews[i+1]).mas_left);
        }];
        if(i == 0)
        {
            [btn setSelected:YES];
        }

    }

    [spaceViews[tabCount] mas_makeConstraints:^(MASConstraintMaker *make) {
        make.right.equalTo(self.tabBarView.mas_right);
    }];

}
时间: 2024-10-13 19:39:36

自动布局(Masonry)设置tabbar的相关文章

StoryBoard 设置TabBar SelectImage 和tintColor

如图:StoryBoard 结构是 Tabbar + Navi + ViewController 需求:需要修改TabBar的Image 和SelectImage 设置Image 设置SelectImage 方式一 设置SelectImage 方式二 新建一个 UITabBarController StoryBoard 中的TabBar Class选择 新建的UITabBarController - (void)viewDidLoad { [super viewDidLoad]; // Do a

IOS7上设置TabBar的图片

IOS7上设置TabBar的图片 by 伍雪颖 - (void)setTarBarStyle { UIEdgeInsets insets = UIEdgeInsetsMake(6, 0, -6, 0); _tarBar.imageInsets = insets; _tarBar.selectedImage = [[UIImage imageNamed:@"near_on"] imageWithRenderingMode:UIImageRenderingModeAlwaysOrigina

[IOS]设置TabBar背景图片

Xcode6.1_IOS SDK 8.1 ********************************************************************** 在AppDelegate.m中设置TabBar背景图片 ********************************************************************** UITabBarController *tabBarController = [[UITabBarController

设置tabbar上面文字的颜色

//设置tabbar 选中文字的颜色 [[UITabBarItem appearance] setTitleTextAttributes:@{NSFontAttributeName : [UIFont fontWithName:@"HelveticaNeue-Bold" size:10.0f], NSForegroundColorAttributeName : [UIColor colorWithRed:63/255.0 green:178/255.0 blue:227/255.0 a

设置tabBar、使用第三方插件和自定义组件使用简单实例

创建小程序项目进入时填写,因需要用上第三方插件,所以要填上开发者的APPID,前往微信公众平台去注册一个账号获取APPID,在设置=>开发设置可以查看相关appid信息 简单思路 底部导航添加三个子集,每个子集指向相应的页面,两个插件页面,一个自定义组件页面 一.设置tabBar 1.找到app.json设置tabBar,若没有找到tabBar,自己添加并刷新 下面的tabBar是常见的写法 "tabBar":{ "color":"black&quo

iOS自动布局——Masonry详解

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由鹅厂新鲜事儿发表于云+社区专栏 作者:oceanlong | 腾讯 移动客户端开发工程师 前言 UI布局是整个前端体系里不可或缺的一环.代码的布局是设计语言与用户视觉感受沟通的桥梁,不论它看起来多么简单或是琐碎,但不得不承认,绝大部分软件开发的问题,都是界面问题.那么,如何高效的完成UI开发,也是软件行业一直在克服的问题. 所以,软件界面开发的核心点即是:如何减少UI设计稿的建模难度和减少建模转化到代码的实现难度 最初iOS提供了

masonry 设置控件抗压缩及抗拉伸

使用masonry正常设置约束时两个label的显示是下图 添加代码设置蓝色label的抗压缩属性后( [self.missionNameLabel setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; )效果如下 同理使用代码( [self.missionNameLabel setContentCompressionResistanc

Masonry设置约束优先级[转]

原文:http://www.jianshu.com/p/b0e1797036fe #####前言:以前看到那种布局好的界面,当其中一个控件消失后,其余控件自动调整约束,还不知道怎么实现. 下去学习了一下,其实就是设置约束有先级的问题. 下面直接上代码,布局用的是Masonry pragma mark - 1. 先看看效果哈 纯代码约束优先级.gif pragma mark - 2. 代码实现加简单注释 #import "ViewController.h" #import "M

设置TabBar分栏控制器上图片的大小问题

我们都知道,iOS因为屏幕分辨率的问题,UID在交付我们iOS开发人员程序配图的时候,一般是三套图,分别对应三种不同的分辨率,对不同size的屏幕系统会自动使用不同像素的图片,我们只需要在命名时给三套图统一命名@1x.@2x和@3x就可以了. 那么为什么会有三套图呢? 这是根据iPhone不断更新而随之出现的.iPhone4之前的iPhone3G/iPhone3GS甚至于更早的iPhone一二代手机,屏幕特点是一个点位只有一个像素:而iPhone4开始到iPhone6/iPhone6s,使用的就