计算string高度

一、CTFramesetterSuggestFrameSizeWithConstraints计算文本显示所占区域修正方法

UIFont    *uiFont = [UIFont fontWithName:@"Helvetica" size:17.0];

CTFontRef ctFont = CTFontCreateWithName((CFStringRef) uiFont.fontName, uiFont.pointSize, NULL);

CGFloat leading = uiFont.lineHeight - uiFont.ascender + uiFont.descender;

CTParagraphStyleSetting paragraphSettings[1] = { kCTParagraphStyleSpecifierLineSpacingAdjustment, sizeof (CGFloat), &leading };

CTParagraphStyleRef  paragraphStyle = CTParagraphStyleCreate(paragraphSettings, 1);

CFRange textRange = CFRangeMake(0, text.length);

//  Create an empty mutable string big enough to hold our test

CFMutableAttributedStringRef string = CFAttributedStringCreateMutable(kCFAllocatorDefault, text.length);

//  Inject our text into it

CFAttributedStringReplaceString(string, CFRangeMake(0, 0), (CFStringRef) text);

//  Apply our font and line spacing attributes over the span

CFAttributedStringSetAttribute(string, textRange, kCTFontAttributeName, ctFont);

CFAttributedStringSetAttribute(string, textRange, kCTParagraphStyleAttributeName, paragraphStyle);

CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString(string);

CFRange range;

CGSize sizeAfterRender = CTFramesetterSuggestFrameSizeWithConstraints(framesetter, textRange, nil,

CGSizeMake(300, 1000000)

, &range);

二、ios7.0以上方法

NSDictionary *attributes = @{NSFontAttributeName:font};

CGSize lablesize = [showtext  boundingRectWithSize:CGSizeMake(300,1000000) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading

attributes:attributes

context:nil].size;

时间: 2024-10-09 20:56:02

计算string高度的相关文章

iOS常用技术-计算Label高度

////  ViewController.m//  计算Label高度////  Created by 大欢 on 16/1/19.//  Copyright © 2016年 bjsxt. All rights reserved.// #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad {    [super vie

使用boundingRectWithSize计算内容高度的坑

iOS中,根据给定的内容.字体,宽度,计算文本高度的函数,iOS7之前使用sizeWithFont,iOS7之后使用boundingRectWithSize.</span> - boundingRectWithSize:options:attributes:context: Calculates and returns the bounding rect for the receiver drawn using the given options and display characteris

ScrollView嵌套ListView只显示一行之计算的高度不正确的解决办法(转)

ScrollView嵌套ListView只显示一行之计算的高度不正确的解决办法 分类: android应用开发2013-12-19 09:40 1045人阅读 评论(3) 收藏 举报 AndroidScrollView嵌套ListView显示一行高度不正确 1.前言 从谷歌那里找到的ScrollView嵌套ListView只显示一行的解决办法相信很多人都遇到过,然后大部分都是用这位博主的办法解决的吧 刚开始我也是用这个办法解决的,首先感谢这位哥的大私奉献,贴上地址 http://blog.csd

ios 根据文字数量计算UILabel高度

以前封装过多个关于实现此功能的方法,虽然都实现了效果,但代码和实现思路都相对复杂很多,而且并不比我下面要说的这个方法好,这个也是我今天突发奇想来的,测量一下字体的宽度,然后根据这个点来计算 UILabel高度.这里我使用的FontSize是13,我测出它的高度.宽度都是15像素,如果你使用其他号字体,需要自己从新测下字体宽度.高度,下面贴出代码. 一.实现代码 //申明时的label的高度可以随便设置,因为之后计算出高度后还需要从设置一次 UILabel *label = [[UILabel a

转:动态计算UITableViewCell高度详解

转自:http://www.cocoachina.com/industry/20140604/8668.html 不知道大家有没有发现,在iOS APP开发过程中,UITableView是我们显示内容常见的控件,本人觉得它是UIKit中最复杂的一个控件.今天要向大家介绍的就是如何动态计算UITableViewCell高度的一经验与技巧,在此做一些总结方便朋友们查阅.为了不让讲解空洞抽象,我还是用代码实例的方式进行讲解,这样更容易接收与学习. 本文将介绍四种情况下UITableViewCell的计

动态计算UITableViewCell高度详解 (转)

感觉挺有用的一篇文章,分析了4种解决方案.回头测试之.如果有别的方案,我会在后面补上. 原文地址:http://www.ifun.cc/blog/2014/02/21/dong-tai-ji-suan-uitableviewcellgao-du-xiang-jie/ 不知道大家有没有发现,在iOS APP开发过程中,UITableView是我们显示内容常见的控件,本人觉得它是UIKit中最复杂的一个控件.今天要向大家介绍的就是如何动态计算UITableViewCell高度的一经验与技巧,在此做一

UITableView使用AutoLayout动态计算cell高度

UITableView几乎是每个app都需要用的控件,而cell高度自适应也是我们 需要掌握的,当然cell上面的控件也是有多种表现形式,今天小编讲解的是其中一种比较常见的:Auto Layout with UILabel in UITableViewCell. 话不多说,上教程. 首先我们创建一个Sigle View Application的项目,然后拖上一个UITableView到storyboard中,设置好代理并且设置好约束.约束这里就不做讲解了,可以到AutoLayout详解了 解一下

iOS根据字符串计算UITextView高度

iOS计算字符串高度,有需要的朋友可以参考下. 方法一:ios7.0之前适用 /** @method 获取指定宽度width,字体大小fontSize,字符串value的高度 @param value 待计算的字符串 @param fontSize 字体的大小 @param Width 限制字符串显示区域的宽度 @result float 返回的高度 */ - (float) heightForString:(NSString *)value fontSize:(float)fontSize a

iOS依据字符串计算UITextView高度

iOS计算字符串高度,有须要的朋友能够參考下. 方法一:ios7.0之前适用 /** @method 获取指定宽度width,字体大小fontSize,字符串value的高度 @param value 待计算的字符串 @param fontSize 字体的大小 @param Width 限制字符串显示区域的宽度 @result float 返回的高度 */ - (float) heightForString:(NSString *)value fontSize:(float)fontSize a