码迷,mamicode.com
首页 > 移动开发 > 详细

iOS 让按钮上的标题换行显示

时间:2016-10-31 16:37:05      阅读:335      评论:0      收藏:0      [点我收藏+]

标签:line   lstat   ring   src   image   bsp   sys   icon   mode   

项目中遇到了要让按钮上的文字换行显示的需求,就写了这个博客。

1.如果按钮上的文字固定,形式是写死的,可以考虑给标题文字加\n换行符来达到效果,但是,记得一定要设置这个属性,不然是不会换行的,

button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;

  NSString * titleStr = @"换行\n显示";

    UIButton * button = [UIButton new];

    button.backgroundColor = [UIColor orangeColor];

    button.frame = CGRectMake(100, 100, 60, 40);

    button.titleLabel.font = [UIFont systemFontOfSize:13];

    button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;

    [button setTitle:titleStr forState:UIControlStateNormal];

    [self.view addSubview:button];

这样的显示效果是这样的:

技术分享

2.如果你按钮上的文字是动态的,想让他到达一个边界值后自动换行,可以使用下面的方法。

先计算出标题文字在规定的最大宽度的size值,然后根据他设置按钮的宽和高就行了,代码如下:

 NSString * titleStr = @"换行显示换行显示换行显示换行显示换行显示换行显示换行";

    UIButton * button = [UIButton new];

    button.backgroundColor = [UIColor orangeColor];

    button.titleLabel.font = [UIFont systemFontOfSize:13];

    button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;

    [button setTitle:titleStr forState:UIControlStateNormal];

    CGRect labelTitleSize = [titleStr boundingRectWithSize:CGSizeMake(100, 1000) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13]} context:nil];

    button.frame = CGRectMake(100, 100, labelTitleSize.size.width+10, labelTitleSize.size.height+10);

   [self.view addSubview:button];

这样的显示效果是这样的:技术分享

 

iOS 让按钮上的标题换行显示

标签:line   lstat   ring   src   image   bsp   sys   icon   mode   

原文地址:http://www.cnblogs.com/cui-cui/p/6016113.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!