zoukankan      html  css  js  c++  java
  • iOS 让按钮上的标题换行显示

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

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

    button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;

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

        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];

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

  • 相关阅读:
    WKWebView加载显示问题
    获取iOS设备信息(内存/电量/容量/型号/IP地址/当前WIFI名称)
    iOS scrollsToTop
    iOSNSTimer 后台运行
    iOS监听home,进入后台
    iOS 模拟器改变定位地点的两种方法
    iOS 系统定位具体到省市区街道
    iOS 中的 HotFix 方案总结详解
    iOS 10 :用 UIViewPropertyAnimator 编写动画
    iOS中常见 Crash 及解决方案
  • 原文地址:https://www.cnblogs.com/cui-cui/p/6016113.html
Copyright © 2011-2022 走看看