iOS7中计算UILabel中字符串的高度
来源:互联网 发布:淘宝家具效果图制作 编辑:程序博客网 时间:2024/05/08 17:06
iOS7中出现了新的方法计算UILabel中根据给定的Font以及str计算UILabel的frameSize的方法.本人提供category如下:
UILabel+StringFrame.h
//// UILabel+StringFrame.h// LabelHeight//// Copyright (c) 2014年 Y.X. All rights reserved.//#import <UIKit/UIKit.h>@interface UILabel (StringFrame)- (CGSize)boundingRectWithSize:(CGSize)size;@end
UILabel+StringFrame.m
//// UILabel+StringFrame.m// LabelHeight//// Copyright (c) 2014年 Y.X. All rights reserved.//#import "UILabel+StringFrame.h"@implementation UILabel (StringFrame)- (CGSize)boundingRectWithSize:(CGSize)size{ NSDictionary *attribute = @{NSFontAttributeName: self.font}; CGSize retSize = [self.text boundingRectWithSize:size options:\ NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:attribute context:nil].size; return retSize;}@end
现在来测试代码:
效果图如下:
我们来试验一下使用自定义字体测试一回:
无论自定义字体还是系统字体都是可以完美使用的.
以下代码供你测试:
// 字符串 NSString *str = @"日落时分,沏上一杯山茶,听一曲意境空远的《禅》,心神随此天籁,沉溺于玄妙的幻境里。仿佛我就是那穿梭于葳蕤山林中的一只飞鸟,时而盘旋穿梭,时而引吭高歌;仿佛我就是那潺潺流泻于山涧的一汪清泉,涟漪轻盈,浩淼长流;仿佛我就是那竦峙在天地间的一座山峦,伟岸高耸,从容绵延。我不相信佛,只是喜欢玄冥空灵的梵音经贝,与慈悲淡然的佛境禅心,在清欢中,从容幽静,自在安然。一直向往走进青的山,碧的水,体悟山水的绚丽多姿,领略草木的兴衰荣枯,倾听黄天厚土之声,探寻宇宙自然的妙趣。走进了山水,也就走出了喧嚣,给身心以清凉,给精神以沉淀,给灵魂以升华。"; // 初始化label UILabel *label = [UILabel new]; label.backgroundColor = [UIColor whiteColor]; [self.view addSubview:label]; // label获取字符串 label.text = str; // label获取字体 label.font = [UIFont fontWithName:nil size:18]; // 根据获取到的字符串以及字体计算label需要的size CGSize size = [label boundingRectWithSize:CGSizeMake(320, 0)]; // 设置无限换行 label.numberOfLines = 0; // 设置label的frame label.frame = CGRectMake(0.0f, 50.0f, size.width, size.height);复制代码
iOS6可以使用如下方式来获取字符串的size值 size = [text sizeWithFont:font constrainedToSize:size lineBreakMode:NSLineBreakByCharWrapping]; 但此方法已经在iOS7中被废弃了,注意.// 获取字符串的大小 ios7- (CGSize)getStringRect:(NSString*)aString{ CGSize size; NSAttributedString* atrString = [[NSAttributedStringalloc] initWithString:aString]; NSRange range = NSMakeRange(0, atrString.length); NSDictionary* dic = [atrString attributesAtIndex:0 effectiveRange:&range]; size = [aString boundingRectWithSize:CGSizeMake(237, 200) options:NSStringDrawingUsesLineFragmentOriginattributes:dic context:nil].size; return size;}// 获取字符串的大小 ios6- (CGSize)getStringRect_:(NSString*)aString{ CGSize size; UIFont *nameFont=[UIFont fontWithName:@"Helvetica" size:13]; size=[aString sizeWithFont:nameFont constrainedToSize:CGSizeMake(237, 200) lineBreakMode:NSLineBreakByCharWrapping]; return size;}
原地址: http://www.cnblogs.com/YouXianMing/p/3706269.html
0 0
- iOS7计算UILabel中字符串的高度
- iOS7中计算UILabel中字符串的高度
- iOS7中计算UILabel中字符串的高度
- iOS7中计算UILabel中字符串的高度
- iOS7中计算UILabel中字符串的高度
- iOS7中计算UILabel中字符串的高度
- iOS7中计算UILabel中字符串的高度
- iOS中计算UILabel中字符串的高度
- IOS7中动态计算UILable的高度
- iOS7中UILabel高度调整注意事项
- iOS7.0中UILabel高度调整注意事项
- iOS7中UILabel高度调整注意事项
- 根据字符串长度计算UILabel的高度
- iOS7中UILabel根据内容自动调整高度
- 计算UILabel的高度
- ios开发中计算字符串的高度
- iOS7之后计算字符串高度
- iOS中怎么获取UILabel的高度
- IOS UIView中间透明周围半透明(四种方法) 中间镂空
- 迁移项目之后出现微信提现退款curl出错代码58
- 关于代码动态修改xib内控件尺寸
- android6.0 PowerManagerService dream分析
- Android按钮单击事件的四种常用写法总结
- iOS7中计算UILabel中字符串的高度
- MongoDB学习
- 逻辑思维
- 代理模式-动态代理
- VS2010 VC++ 无法打开包括文件 hidsdi.h + USB通讯需使用的头文件和库
- Qt线程中会导致句柄数增加的行为
- Mysql 常用SQL语句集锦
- android 显示清除缓存
- Java 编译器中的code templates的模板