首页 > 其他 > 详细

自定义导航栏(navigationBar)

时间:2015-11-19 23:56:28      阅读:242      评论:0      收藏:0      [点我收藏+]

为了美观性,一般设置通用的navigationBar

创建基础控件

    UIView *naviView;
    UIImageView *naviImageView;
    UILabel *naviLabel;
    UIButton *naviLeftBtn;

设置控件位置(Frame)

    CGRect naviFrame = CGRectMake(0, 0, 320, 64);
    CGRect backBtnFrame = CGRectMake(10, 31, 30, 21);
    CGRect labelFrame = CGRectMake(0, 31, 320, 21);

 将Frame应用到控件上

    naviView = [[UIView alloc] initWithFrame:naviFrame];
    naviImageView = [[UIImageView alloc] initWithFrame:naviFrame];
    naviLabel = [[UILabel alloc] initWithFrame:labelFrame];

 设置标题样式

    naviLabel.backgroundColor = [UIColor clearColor];
    naviLabel.text = title;
    //    naviLabel.textColor = color;
    [naviLabel setTintColor:color];
    naviLabel.textAlignment = NSTextAlignmentCenter;

 将imageView和label添加到主View上

    [naviView addSubview:naviImageView];
    [naviView addSubview:naviLabel];

 

 

//待添加

 

总代码

#pragma mark 设置导航条及左右按钮
-(UIView *)navigationBarWithTitle:(NSString *)title titleColor:(UIColor *)color isShowBackBtn:(BOOL)isShow rightBtn:(UIButton *)right {
    //x,y,w,h
    CGRect naviFrame = CGRectMake(0, 0, 320, 64);
    CGRect backBtnFrame = CGRectMake(10, 31, 30, 21);
    CGRect rightBtnFrame = CGRectMake(right.frame.origin.x, 27, right.frame.size.width, right.frame.size.height);
    CGRect labelFrame = CGRectMake(0, 31, 320, 21);
    
//    if(!iOS7)
//    {
//        naviFrame = CGRectMake(0, 0, 320, 44);
//        labelFrame = CGRectMake(0, 11, 320, 21);
//        backBtnFrame = CGRectMake(10, 11, 21, 21);
//        rightBtnFrame = CGRectMake(right.frame.origin.x, 11, right.frame.size.width, right.frame.size.height);
//    }
    //    naviImageView.image = [UIImage imageNamed:naviImage_6];
    naviView = [[UIView alloc] initWithFrame:naviFrame];
    
    naviImageView = [[UIImageView alloc] initWithFrame:naviFrame];
    naviImageView.backgroundColor = [UIColor blueColor];
    naviLabel = [[UILabel alloc] initWithFrame:labelFrame];
    naviLabel.backgroundColor = [UIColor clearColor];
    naviLabel.text = title;
    //    naviLabel.textColor = color;
    [naviLabel setTintColor:color];
    naviLabel.textAlignment = NSTextAlignmentCenter;
    
    [naviView addSubview:naviImageView];
    [naviView addSubview:naviLabel];
    
    if(isShow)
    {
        naviLeftBtn = [UIButton buttonWithType:UIButtonTypeCustom];
        [naviLeftBtn setTintColor:color];
        [naviLeftBtn setFrame:backBtnFrame];
        [naviLeftBtn setImage:[UIImage imageNamed:@"navi_backBtn_normal.png"] forState:UIControlStateNormal];
        [naviLeftBtn setImage:[UIImage imageNamed:@"navi_backBtn_selected.png"] forState:UIControlStateHighlighted];
        [naviLeftBtn addTarget:self action:@selector(backAction:) forControlEvents:UIControlEventTouchUpInside];
        [naviView addSubview:naviLeftBtn];
    }
    if(right)
    {
        [right setFrame:rightBtnFrame];
        [naviView addSubview:right];
    }
    [self.view addSubview:naviView];
    return naviView;
}

 

自定义导航栏(navigationBar)

原文:http://www.cnblogs.com/saurik/p/4979388.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!