iOS7中计算UILabel中字符串的高度
iOS7中计算UILabel中字符串的高度
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;现在来测试代码:
效果图如下:
我们来试验一下使用自定义字体测试一回:
显示结果:
无论自定义字体还是系统字体都是可以完美使用的.
以下代码供你测试:
// 字符串 NSString *str = @"日落时分,沏上一杯山茶,听一曲意境空远的《禅》,心神随此天籁,沉溺于玄妙的幻境里。仿佛我就是那穿梭于葳蕤山林中的一只飞鸟,时而盘旋穿梭,时而引吭高歌;仿佛我就是那潺潺流泻于山涧的一汪清泉,涟漪轻盈,浩淼长流;仿佛我就是那竦峙在天地间的一座山峦,伟岸高耸,从容绵延。我不相信佛,只是喜欢玄冥空灵的梵音经贝,与慈悲淡然的佛境禅心,在清欢中,从容幽静,自在安然。一直向往走进青的山,碧的水,体悟山水的绚丽多姿,领略草木的兴衰荣枯,倾听黄天厚土之声,探寻宇宙自然的妙趣。走进了山水,也就走出了喧嚣,给身心以清凉,给精神以沉淀,给灵魂以升华。"; // 初始化label UILabel *label = [UILabel new]; label.backgroundColor = [UIColor whiteColor]; [self.view addSubview:label]; // label获取字符串 label.text = str;
// 根据获取到的字符串以及字体计算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;
}
iOS - UILabel NS_CLASS_AVAILABLE_IOS(2_0) @interface UILabel : UIView @available(iOS 2.0, *) public class UILabel : UIView, NSCoding 实际上 label 就是一个可以显示文字的视图控件。
[ios开发]-APP-上架流程 由于苹果的机制,在非越狱机器上安装必须通过官方的Appstore, 开发者开发好应用后上传Appstore,也需要通过审核等环节。 AppCan作为一个跨主流平台的一个开发平台,也对ipa包上传Appstore作了支持。 本文从三个流程来介绍如何实现AppCan在 线编译出ipa包,以及上传到苹果Appstore。
相关文章
- 由3个a,5个b,2个c构成的所有字符串_如何计算A且B的概率
- 选择边缘计算网关的五大优势
- 网络号和主机号的计算
- (神经)现象学的计算途径
- 原码补码反码在线计算_补码的补码是原码
- 【云计算】GFS思想优势以及架构
- 量子计算,一个颠覆性的新技术| TeaTalk·Online第一期
- 【计算理论】非确定性有限自动机 ( 计算过程 | 计算树 | 确定可接受字符串 | 设计非确定性有限自动机 | 空字符 )
- 数据透视表:动态计算近N天数据变化
- 在浏览器里引入外部js计算字符串的md5
- JavaScript计算2个日期之间相差天数详解编程语言
- 经纬度计算详解编程语言
- 在java代码中执行js脚本,实现计算出字符串“(1+2)*(1+3)”的结果详解编程语言
- 利用MySQL实现空间距离计算(mysql距离计算)
- Go语言计算字符串长度——len()和RuneCountInString()
- 计数MySQL分割字符串并计算其数量(mysql分割字符串并)
- MySQL中处理时间的技巧:以秒为单位计算(mysql时间秒数)
- Oracle字符个数统计,精确计算每个字符串中的字符数。(oracle统计字符个数)
- 探索寨板Linux:开拓高效企业计算新境界(寨板linux)
- 解锁Linux系统中的计算工具:BC(linuxbc)
- MSSQL查询统计表行数的简单方法(mssql 计算表行数)
- SQL Server 除法运算实现快速精准计算(除法 sqlserver)
- Oracle中如何计算字符串的长度(oracle中计算长度)
- JavaScript计算字符串中每个字符出现次数的小例子
- js判断计算字符串长度/判断空的简单方法
- 计算字符串和文件MD5值的小例子
- PHP改进计算字符串相似度的函数similar_text()、levenshtein()