/**
* return 动态返回字符串size大小
*
* @param aString 字符串
* @param width 指定宽度
* @param height 指定宽度
*
* @return CGSize
*/
- (CGSize)getStringRect:(NSAttributedString *)aString width:(CGFloat)width height:(CGFloat)height
{
CGSize size = CGSizeZero;
NSMutableAttributedString *atrString = [[NSMutableAttributedString alloc] initWithAttributedString:aString];
NSRange range = NSMakeRange(0, atrString.length);
//获取指定位置上的属性信息,并返回与指定位置属性相同并且连续的字符串的范围信息。
NSDictionary* dic = [atrString attributesAtIndex:0 effectiveRange:&range];
//不存在段落属性,则存入默认值
NSMutableParagraphStyle *paragraphStyle = dic[NSParagraphStyleAttributeName];
if (!paragraphStyle || nil == paragraphStyle) {
paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
paragraphStyle.lineSpacing = 0.0;//增加行高
paragraphStyle.headIndent = 0;//头部缩进,相当于左padding
paragraphStyle.tailIndent = 0;//相当于右padding
paragraphStyle.lineHeightMultiple = 0;//行间距是多少倍
paragraphStyle.alignment = NSTextAlignmentLeft;//对齐方式
paragraphStyle.firstLineHeadIndent = 0;//首行头缩进
paragraphStyle.paragraphSpacing = 0;//段落后面的间距
paragraphStyle.paragraphSpacingBefore = 0;//段落之前的间距
[atrString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:range];
}
//设置默认字体属性
UIFont *font = dic[NSFontAttributeName];
if (!font || nil == font) {
font = [UIFont fontWithName:@"HelveticaNeue" size:12.0];
[atrString addAttribute:NSFontAttributeName value:font range:range];
}
NSMutableDictionary *attDic = [NSMutableDictionary dictionaryWithDictionary:dic];
[attDic setObject:font forKey:NSFontAttributeName];
[attDic setObject:paragraphStyle forKey:NSParagraphStyleAttributeName];
CGSize strSize = [[aString string] boundingRectWithSize:CGSizeMake(width, height)
options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading
attributes:attDic
context:nil].size;
size = CGSizeMake(strSize.width, strSize.height);
return size;
}
计算NSAttributedString字符串size
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 方法一; (CGSize) getAttributeSizeWithText:(NSString *)text f...
- 很多UILabel的使用场景下,需要根据字符串大小来计算UILabel的大小,以保证UILabel的美观:使用NS...
- 其实是在swift与OC相对应的API,实在没找到,好不容易找到了留下做个标记,建议这个方法写到string的ex...
- 题目描述:给定一个字符串s,请计算输出含有连续两个s作为子串的最短字符串 思路: 从特殊到一般abc -> abc...
- 开发中常遇到字符串输入长度限制的需求 比如昵称限制输入7个字等因为iOS中字符串的length属性 计算的是字符的...