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

iOS开发 UILabel实现自适应高宽

时间:2016-12-07 13:18:06      阅读:392      评论:0      收藏:0      [点我收藏+]

标签:label   dff   get   控件   sub   视图   文本   c89   brief   

  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、为项目命名,生成工程文件。 

    技术分享
  2.  

    添加UILabel

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

          2、设置UILabel的背景颜色;

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

    技术分享
  3.  

    设置UILabel的属性

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

          label.numberOfLines = 0; 

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

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

    技术分享
  4.  

    自适应方式一

          使用:[label sizeToFit];

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

    技术分享
  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实现自适应高宽

标签:label   dff   get   控件   sub   视图   文本   c89   brief   

原文地址:http://www.cnblogs.com/ming1025/p/6140476.html

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