如果有长的文字
#define LONG_STRING @"iOS(原名:iPhone OS)是由苹果公司为移动设备所开发的操作系统,支持的设备包括iPhone、iPod touch、iPad、Apple TV。iOS与苹果的Mac OS X操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。系统操作占用大概240MB的存储器空间。目前,iOS的最新版本为7.1.1。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等产品上。"
UILabel *lable1 = [[UILabel alloc]init];
lable1.bounds = CGRectMake(0, 0, 150,300);
lable1.center = CGPointMake(100, 400);
lable1.text = LONG_STRING;
//配置显示函数 0表示不限制
lable1.numberOfLines = 0;
//配置换行模式
lable1.lineBreakMode = NSLineBreakByWordWrapping | NSLineBreakByTruncatingTail;
[self.view addSubview:lable1];
一个方法:
//计算文本内容所占大小空间
/*
string:待计算的文本
font:显示的字体
constraint:最大范围限制
return 文本在限制范围内的大小空间
*/
- (CGSize)sizeWithString:(NSString *)string
font:(UIFont *)font
constraint:(CGSize)constraint;
- (CGSize)sizeWithString:(NSString *)string
font:(UIFont *)font
constraint:(CGSize)constraint{
//异常处理
if ([string length] == 0) {
return CGSizeZero;
}
CGSize size;
//ios7处理
NSStringDrawingOptions options =
NSStringDrawingTruncatesLastVisibleLine |
NSStringDrawingUsesFontLeading |
NSStringDrawingUsesLineFragmentOrigin;
//配置字体shuxing
NSDictionary *attributes = @{NSFontAttributeName:font};
CGRect rect = [string boundingRectWithSize:constraint
options:options
attributes:attributes
context:NULL];
size = rect.size;
return size;
}
将宏定义的字符串该小一些
#define LONG_STRING @"iOS(原名:iPhone OS)是由上。"
不计算文本所占空间和计算文本所占空间的区别
UILabel *lable1 = [[UILabel alloc]init];
lable1.bounds = CGRectMake(0, 0, 100,300);
lable1.center = CGPointMake(100, 400);
lable1.text = LONG_STRING;
lable1.backgroundColor = [UIColor redColor];
//配置显示函数 0表示不限制
lable1.numberOfLines = 0;
//配置换行模式
lable1.lineBreakMode = NSLineBreakByWordWrapping | NSLineBreakByTruncatingTail;
[self.view addSubview:lable1];
//计算文本大小
UIFont *font = [UIFont systemFontOfSize:15];
CGSize size = [self sizeWithString:LONG_STRING
font:font
constraint:CGSizeMake(100, 300)];
UILabel *lable2 = [[UILabel alloc]init];
lable2.bounds = CGRectMake(0, 0, 100, size.height);
lable2.center = CGPointMake(270, 400);
lable2.backgroundColor = [UIColor yellowColor];
lable2.text = LONG_STRING;
//配置显示函数 0表示不限制
lable2.numberOfLines = 0;
//配置换行模式
lable2.lineBreakMode = NSLineBreakByWordWrapping | NSLineBreakByTruncatingTail;
[self.view addSubview:lable2];
运行结果如下