UILabel实现自适应高宽
UILabel是iOS开发常用的控件。UILabel的属性需要了解,UILabel的特殊显示效果也需要我们掌握。UILabel自适应高宽度是很多初学者遇到的技术性难题。比如段文字,要让他完全地分行显示且要让后面的控件不被遮挡。这需要我们的UILabel能够自适应高宽,以便完全显示text的内容,后面的控件可以获取UILabel的起始坐标和宽高来重新设置frame来达到紧贴着UILabel显示而不被遮挡。
工具/原料
- Mac OS X操作系统::OS X 10.11.5
- 编译环境:Xcode 7.3.1
方法/步骤
创建工程项目和视图控制器
1、创建一个Sing View Application工程项目;
2、为项目命名,生成工程文件。

添加UILabel
1、在ViewController.m创建并实例化一个UILabel;
2、设置UILabel的背景颜色;
3、将UILabel添加至父类视图中:addSubview。

设置UILabel的属性
1、设置最大显示行数(=0时不限制),自适应需要设置为0:
label.numberOfLines = 0;
2、设置text属性的文本内容:
label.text = @""; //内容需要长点才能显示效果

自适应方式一
使用:[label sizeToFit];
会固定label宽度,然后高度根据文字多少增加。此处固定宽度是label的width=100。

自适应方式二
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];

UILabel实现自适应高宽的更多相关文章
- iOS开发 UILabel实现自适应高宽
UILabel是iOS开发常用的控件.UILabel的属性需要了解,UILabel的特殊显示效果也需要我们掌握.UILabel自适应高宽度是很多初学者遇到的技术性难题.比如段文字,要让他完全地分行显示 ...
- textarea自适应高(宽)度
转载请注明来源:https://www.cnblogs.com/hookjc/ 方法一: <textarea rows=1 cols=40 style='overflow:scroll;over ...
- UILabel实现自适应宽高需要注意的地方(三)
一.需求图如下所示 UILabel 的高度自适应 UILabel中的段落间距可设置 图片效果如下: 调整段落适应长宽高方式: 需求: 保证"游戏玩法 ...
- iOS-UILabel自适应高、宽
UILabel自适应高 UILabel自适应宽
- 关于Google圆角高光高宽自适应按钮及其拓展
关于Google圆角高光高宽自适应按钮及其拓展————源自张鑫旭css讲解 这篇文章发布于 2009年10月24日,星期六,18:08,归类于 css相关. 阅读 48770 次, 今日 1 次 by ...
- jQuery实现布局高宽自适应
在页面布局(layout)时经常是上左右的框架布局并且需要宽.高度的自适应,div+css是无法实现(*hegz:div+css其实是可以实现的,利用jQuery比较容易实现浏览器的兼容性),所以需要 ...
- js 自适应容器宽高
var echartsWarp= document.getElementById('echartsWarp'); var resizeWorldMapContainer = function () { ...
- LayIM聊天框全屏根据浏览器高宽自适应
个人博客 地址:http://www.wenhaofan.com/article/20190410190628 问题 由于LayIM没有处理聊天框在全屏状态下根据浏览器缩放处理高宽,所以会导致在浏览器 ...
- JS获取IMG图片高宽
前段时间在LJW写的touchslider.js轮播代码里添加自适应屏幕大小的功能时,遇到一个问题.不管用什么样的方法都无法获取到IMG标签的高宽,最后只有给图片定一个高宽的比例值:趁今天有空我就写了 ...
随机推荐
- 【经验】ansible 批量推送公钥
1.使用 ssh-keygen -t rsa生成密钥对 ssh-keygen -t rsa 2.推送单个公钥到远程机器 格式: ssh-copy-id -i ~/.ssh/id_rsa.pub use ...
- linux python升级和ipython的安装
==CentOS 6.X 自带的python版本是 2.6 , 由于工作需要,很多时候需要2.7版本.所以需要进行版本升级.由于一些系统工具和服务是对 Python 有依赖的,所以升级 Python ...
- 约瑟夫环问题(c++)
#include <iostream> struct node{ int payload; node* next; node(int payload){this->payload = ...
- Windows XP SP3下成功编译CUint2.1-3
软件环境:Visual C++ 6.0 操作系统:Windows XP SP3 从sourceforge.net下载CUint-2.1-3.tar.bz解压出目录CUnit-2.1-3 从CUint打 ...
- PowerShell全自动分配CPU
代码 $pro = Get-Process foreach ($n in $pro){ if($n.ProcessorAffinity -ne 255){ #continue } if($n.Id - ...
- 压缩文本、字节或者文件的压缩辅助类-GZipHelper
下面为大家介绍一.NET下辅助公共类GZipHelper,该工具类主要作用是对文本.字符.文件等进行压缩与解压.该类主要使用命名空间:System.IO.Compression下的GZipStream ...
- 我利用网上代码开发的JQuery图片插件
我利用网上代码开发的JQuery图片插件 代码如下 (function($){ $.fn.FocusPic = function(options){ var defaults = { interval ...
- 公网,专用,共享独立IP介绍
什么是IP地址? IP地址也被称为InternetProtocol地址,IP地址被用于在互联网上确定不同的计算机和设备.你可以认为它像一个邮寄信封一个家庭返回地址,只在数字和时间使用.IP地址被用于在 ...
- 二 Java利用等待/通知机制实现一个线程池
接着上一篇博客的 一Java线程的等待/通知模型 ,没有看过的建议先看一下.下面我们用等待通知机制来实现一个线程池 线程的任务就以打印一行文本来模拟耗时的任务.主要代码如下: 1 定义一个任务的接口 ...
- SQL 使用 AND 与 OR
1.介绍:关于AND与OR的使用是比较基础的,但是在项目中如果不注意使用的话会使查出来的数据有错误. 2.主要问题: 在未加任何AND与OR的选择是独立的,与逻辑运算一样.即: SELECT * FR ...