zoukankan      html  css  js  c++  java
  • iOS开发 UILabel实现自适应高宽

      UILabel是iOS开发常用的控件。UILabel的属性需要了解,UILabel的特殊显示效果也需要我们掌握。UILabel自适应高宽度是很多初学者遇到的技术性难题。比如段文字,要让他完全地分行显示且要让后面的控件不被遮挡。这需要我们的UILabel能够自适应高宽,以便完全显示text的内容,后面的控件可以获取UILabel的起始坐标和宽高来重新设置frame来达到紧贴着UILabel显示而不被遮挡。

    工具/原料

     
    • Mac OS X操作系统::OS X 10.11.5
    • 编译环境:Xcode 7.3.1

    方法/步骤

     
    1.  

      创建工程项目和视图控制器

            1、创建一个Sing View Application工程项目;

            2、为项目命名,生成工程文件。 

      iOS开发 UILabel实现自适应高宽
    2.  

      添加UILabel

            1、在ViewController.m创建并实例化一个UILabel;

            2、设置UILabel的背景颜色;

            3、将UILabel添加至父类视图中:addSubview。

      iOS开发 UILabel实现自适应高宽
    3.  

      设置UILabel的属性

            1、设置最大显示行数(=0时不限制),自适应需要设置为0:

            label.numberOfLines = 0; 

            2、设置text属性的文本内容:

            label.text = @""; //内容需要长点才能显示效果

      iOS开发 UILabel实现自适应高宽
    4.  

      自适应方式一

            使用:[label sizeToFit];

            会固定label宽度,然后高度根据文字多少增加。此处固定宽度是label的width=100。

      iOS开发 UILabel实现自适应高宽
    5.  

      自适应方式二

            1、获取text属性的文本内容;

            2、重新定义宽度和高度;

            3、设置换行模式;

            4、计算CGRect并重新设置UILabel的frame。

            CGRect rect = [label.text boundingRectWithSize:CGSizeMake(self.view.frame.size.width - 20, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName: label.font} context:nil];

      iOS开发 UILabel实现自适应高宽
      iOS开发 UILabel实现自适应高宽
  • 相关阅读:
    DailyTick 开发实录 —— UI 设计
    CoreCRM 开发实录 —— 单元测试之 Mock UserManager 和 SignInManager
    CoreCRM 开发实录 —— 单元测试、测试驱动开发和在线服务
    CoreCRM 开发实录 —— Profile
    DailyTick 开发实录 —— 开始
    2016年年终总结
    centos7下mongodb4集群安装
    centos7下elasitcsearch7集群安装
    centos es2.x安装
    centos jdk切换
  • 原文地址:https://www.cnblogs.com/ming1025/p/6140476.html
Copyright © 2011-2022 走看看