ios实现navigationItem的titleLabel双行显示

要实现上面这个功能其实有很多方法,我这里介绍两种方法来实现,一种是通过我们创建一个view,然后往这个view里面加入两个label,然后我们再设置自动布局的约束

 //设置titleView
      let titleView = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 32))
      
       
      //导航栏的titleView为我们自定义的titleView
        navigationItem.titleView = titleView
       
        ///创建titleLabel,就是发微博的label
        let titleLabel:UILabel = UILabel(title: "发动态", color: UIColor.black, fontSize: 15)
        
        ///创建nameLabel
        let nameLabel:UILabel = UILabel(title: "哈哈哈", 
        color: UIColor.lightGray, fontSize: 13)
        
        //添加子控件
        titleView.addSubview(titleLabel)
        
        titleView.addSubview(nameLabel)
        
        //titleLabel设置自动布局
        titleLabel.mas_makeConstraints { (make) in
            //设置中心点X的自动布局
            make?.centerX.mas_equalTo()(titleView.mas_centerX)
            //设置顶部的自动布局
            make?.top.mas_equalTo()(titleView.mas_top)
        }
        //设置nameLabel的自动布局
        nameLabel.mas_makeConstraints { (make) in
            //设置中心点X的布局
            make?.centerX.mas_equalTo()(titleView.mas_centerX)
            //设置顶部的自动布局
            make?.top.mas_equalTo()(titleLabel.mas_bottom)
            //设置底部的自动布局
            make?.bottom.mas_equalTo()(titleView.mas_bottom)
        }
        
    }
另外一种就是通过label来显示,然后通过设置label的attributedText属性来进行设置,换行我们这里可以通过\n,换行符来做

 //创建一个Label
    UILabel * titleView=[[UILabel alloc]init];
    
    //显示宽高
    titleView.w=180;
    titleView.h=44;
    
    //设置文字居中显示
    titleView.textAlignment=NSTextAlignmentCenter;
    
    //设置titleLabel自动换行
    titleView.numberOfLines=0;
    
    //设置发微博的prefix
    NSString * prefix=@"发动态";
    NSString * name = @"哈哈哈"  
    //获取标题的字符串
    NSString * str=[NSString stringWithFormat:@"%@\n%@",prefix,name];
    //创建一个带有属性的字符串比如说颜色,字体等文字的属性
    NSMutableAttributedString * attrStr=[[NSMutableAttributedString alloc]initWithString:str];
    
    //设置name的字体大小
    [attrStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:12] range:[str rangeOfString:name]];
    //设置发动态的字体大小
    [attrStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:13] range:[str rangeOfString:prefix]];
    //设置name的颜色
    [attrStr addAttribute:NSForegroundColorAttributeName value:[UIColor grayColor] range:[str rangeOfString:name]];
    
    //label中也可以携带图片
    //    NSTextAttachment * attachment=[[NSTextAttachment alloc]init];
    //    attachment.image=[UIImage imageNamed:@""];
    //    NSAttributedString * str2=[NSAttributedString attributedStringWithAttachment:attachment];
    //    [attrStr appendAttributedString:str2];
    
    //设置有属性的text
    titleView.attributedText=attrStr;
    //设置导航栏的titleView
    self.navigationItem.titleView=titleView;
  


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值