IOS开发中UILabel自适应大小显示的方法

1,根据label中的文字内容自动换行显示的方法

  1>,认识两个属性

    @property(nonatomic) NSInteger numberOfLines;

    @property(nonatomic) NSLineBreakMode lineBreakMode;

    其中NSLineBreakMode为枚举类型

typedef NS_ENUM(NSInteger, NSLineBreakMode) { /* What to do with long lines */

NSLineBreakByWordWrapping = 0,     /* Wrap at word boundaries, default */

NSLineBreakByCharWrapping, /* Wrap at character boundaries */

NSLineBreakByClipping, /* Simply clip */

NSLineBreakByTruncatingHead, /* Truncate at head of line: "...wxyz" */

NSLineBreakByTruncatingTail, /* Truncate at tail of line: "abcd..." */

NSLineBreakByTruncatingMiddle /* Truncate middle of line:  "ab...yz" */

} NS_ENUM_AVAILABLE_IOS(6_0);

  2> 方法

    第一步:设置Label所能显示的行数,即设置numberOfLines属性,   label.numberOfLines = 0;当该属性为0时表示没有限制

    第二步:设置Label内容的显示方式,及设置lineBreakMode属性    label.lineBreakMode = NSLineBreakByWordWrapping;表示自适应

    第三步:重新设置label的frame  此事需要计算frame

  3>例子  (将宽度固定,自适应计算高度)

   

// 1 初始化label,并设置属性

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 300, 100)];

label.numberOfLines = 0;

label.lineBreakMode = NSLineBreakByWordWrapping;

// 2 初始化label中显示的内容

NSString *text = @"紫陌红尘,蓦然回首。多少的春花秋月;多少的逝水沉香;多少的海誓山盟,如沿途的风景花开花谢。人世间的情缘触痛了多少无言的感慨,情深缘浅的风吹散了多 少相聚离散。花开是有情,花落是无意。来者是萍水相逢,去者是江湖相忘。缘起时,我在人群中看到你。缘灭时,你消失在人群中。";

// 3 固定label的宽度为300不变,计算label的高度

CGSize textSize = [text boundingRectWithSize:CGSizeMake(300, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14]} context:nil].size;

CGRect rect = label.frame;

rect.size.height = textSize.height;

label.frame = rect;

时间: 2024-12-27 05:16:59

IOS开发中UILabel自适应大小显示的方法的相关文章

IOS开发中数据持久化的几种方法--NSUserDefaults

IOS开发中数据持久化的几种方法--NSUserDefaults IOS 开发中,经常会遇到需要把一些数据保存在本地的情况,那么这个时候我们有以下几种可以选择的方案: 一.使用NSUserDefault是最简单直接的一个办法: 1)保存数据: 1 // 实例化一个NSUserDefaults单例对象 2 NSUserDefaults *user = [NSUserDefaults standardUserDefaults]; 3 // 把一个数组array保存在key为allContact的键值

IOS开发中UILabel单行、多行文本计算高度、宽度的技巧

IOS学习了一段时间了,对于这个文本内容多了需要计算高度的问题特别蛋疼,这个根本没法和Android相比啊,Android根本就不用自己费心计算宽度和高度,内部都帮你实现好了,好了,YY到此结束,遇到这么蛋疼的问题还得需要解决. 首先来看单行文本的问题:对于单行文本来说,计算CGSize就比较简单了,这里直接上代码了,如下: NSString *content = @"欢迎来到北京"; CGSize size =[content sizeWithAttributes:@{NSFontA

iOS开发中UIDatePicker控件的使用方法简介

iOS上的选择时间日期的控件是这样的,左边是时间和日期混合,右边是单纯的日期模式. 您可以选择自己需要的模式,Time, Date,Date and Time  , Count Down Timer四种模式. 本篇文章简单介绍下PickerDate控件的使用1.新建一个Singe View Application,命名为DatePickDemo,其他设置如图 2.放置控件打开ViewController.xib,拖拽一个DatePicker控件放到界面上,再拖拽一个Button控件放到界面上,双

iOS开发中动画的各种类型及方法总结

1.UIImage Animation图片动画 #define FPS 30.0 - (void)viewDidLoad {     [super viewDidLoad];     UIImage *image = [UIImage animatedImageNamed: @"ship-anim" duration:5*1/FPS];     self.imageView.image = image; } 2.NSTimer 计时器实现动画的方式 2.1基本方法: #define F

[iOS]如何在iOS开发中切换显示语言实现国际化

1.在Project设置,添加中英两种语言: 2.新建Localizable.strings文件,作为多语言对应的词典,存储多种语言,点击右侧Localization,勾选中英: 3.添加一个字段, 在English中,添加:"SUBMIT_BTN_TITLE" = "Go"; 在Chinese中,添加:"SUBMIT_BTN_TITLE" = "开始"; 4.一个工具类GDLocalizableController,用来切换

iOS开发中获取视图在屏幕上显示的位置

在iOS开发中,我们会经常遇到一个问题,例如,点击一个按钮,弹出一个遮罩层,上面显示一个弹框,弹框显示的位置在按钮附近.如果这个按钮的位置相对于屏幕边缘的距离是固定的,那就容易了,可以直接写死位置.可是,如果按钮是在UITableView的cell上呢?随着UITableView的滚动,按钮可能在顶部,也可能在底部,还可能在中间,左侧.右侧都有可能,那么,这个时候,怎么去计算按钮所在的位置呢?如果按钮所在的UITabelView是在另外一个UIScrollView的一个cell上呢?如果外面再有

iOS开发中一些有用的小代码

1.判断邮箱格式是否正确的代码: //利用正则表达式验证 -(BOOL)isValidateEmail:(NSString *)email { NSString *emailRegex = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES%@&qu

ios开发中遇到的问题和解答汇总

如何让一个数组中的字典,如果字典中有重复的id.将重复的id的字典进行数组整合....<点击查看详情>iOS UIView 创建是不是都会经过initWithFrame?<点击查看详情>iPad 9.1系统上键盘响应很慢<点击查看详情>ios如何绑定数据?<点击查看详情>iOS开发,我想上传一个.gsd的文件(或者stl),请问该怎么做<点击查看详情>iOS NSTimer问题<点击查看详情>iOS大部分积分墙软件为啥都做基于Safa

iOS开发中遇到的一些问题及解决方案【转载】

iOS开发中遇到的一些问题及解决方案[转载] 2015-12-29 [385][scrollView不接受点击事件,是因为事件传递失败] // //  MyScrollView.m //  Created by beyond on 15/6/6. //  Copyright (c) 2015年 beyond.com All rights reserved. //  不一定要用继承,可以使用分类 #import "MyScrollView.h" #import "CoView.