第2月第24天 coretext 行高

1.NSMutableAttributedString 行高

NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:labelText];
        NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];

        [paragraphStyle setLineSpacing:LINESPACE];//调整行间距

        [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [labelText length])];
        label.attributedText = attributedString;

http://blog.sina.com.cn/s/blog_9256a1210101ku7o.html

2.boundingRectWithSize 行高

#define UILABEL_LINE_SPACE 6
#define HEIGHT [ [ UIScreen mainScreen ] bounds ].size.height
//给UILabel设置行间距和字间距
-(void)setLabelSpace:(UILabel*)label withValue:(NSString*)str withFont:(UIFont*)font {
    NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init];
    paraStyle.lineBreakMode = NSLineBreakByCharWrapping;
    paraStyle.alignment = NSTextAlignmentLeft;
    paraStyle.lineSpacing = UILABEL_LINE_SPACE; //设置行间距
    paraStyle.hyphenationFactor = 1.0;
    paraStyle.firstLineHeadIndent = 0.0;
    paraStyle.paragraphSpacingBefore = 0.0;
    paraStyle.headIndent = 0;
    paraStyle.tailIndent = 0;
    //设置字间距 NSKernAttributeName:@1.5f
    NSDictionary *dic = @{NSFontAttributeName:font, NSParagraphStyleAttributeName:paraStyle, NSKernAttributeName:@1.5f
};

    NSAttributedString *attributeStr = [[NSAttributedString alloc] initWithString:str attributes:dic];
    label.attributedText = attributeStr;
}

//计算UILabel的高度(带有行间距的情况)
-(CGFloat)getSpaceLabelHeight:(NSString*)str withFont:(UIFont*)font withWidth:(CGFloat)width {
    NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init];
    paraStyle.lineBreakMode = NSLineBreakByCharWrapping;
    paraStyle.alignment = NSTextAlignmentLeft;
    paraStyle.lineSpacing = UILABEL_LINE_SPACE;
    paraStyle.hyphenationFactor = 1.0;
    paraStyle.firstLineHeadIndent = 0.0;
    paraStyle.paragraphSpacingBefore = 0.0;
    paraStyle.headIndent = 0;
    paraStyle.tailIndent = 0;
    NSDictionary *dic = @{NSFontAttributeName:font, NSParagraphStyleAttributeName:paraStyle, NSKernAttributeName:@1.5f
};

    CGSize size = [str boundingRectWithSize:CGSizeMake(width, HEIGHT) options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;
    return size.height;
}

http://blog.csdn.net/luco2008/article/details/50977718

3.CTFramesetterSuggestFrameSizeWithConstraints 行高

1)CFMutableAttributedStringRef/NSAttributedString

2)CTParagraphStyleRef/NSMutableParagraphStyle

http://blog.sina.com.cn/s/blog_6308b98c0101byh9.html

4.yytext

http://www.cnblogs.com/lujianwenance/p/5716804.html

5.nsattributedstring 转nsstring

6.UILabel和Scrollview结合用,label高度自适应

https://my.oschina.net/langzhouzhou1/blog/648748

时间: 2024-08-10 19:18:45

第2月第24天 coretext 行高的相关文章

Web打印连续的表格,自动根据行高分页

拿到这个需求,我已经蛋碎了一地,经过N天的攻克,终于是把它搞定了,只是不知道会不会在某种情况下出现BUG.表示我心虚没有敢做太多的测试.... ----------------------------------------------------------废话分割线----------------------------------------------------------- 注:我们的系统是基于ligerui这个一堆bug的插件的. 详细需求: 1.任意一个表格,行高不均匀且不相等:

line-height行高与图片的隐匿文本间隙消除方法

1.块级元素中插入一个内联img元素后,产生多余间隙 代码 消除图片底部间隙几种方法 1.图片与底线对齐 2.图片元素块状化-无基线对齐 3.行高足够小,基线上移 4.消除隐匿文本字体大小 源码 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 &l

自动布局下的自定义行高约束问题

昨天晚上被自动布局里自定义行高磨了一晚上,简直快要疯掉.我是利用Masonry来进行自动布局的,布局很简单,就是cell里面放两个label,可是,在我添加完约束之后,控制台就会打印一大堆东西,约束是这样的: _titleLab.font = [UIFont systemFontOfSize:28*TTScreenWith/640]; [_titleLab mas_makeConstraints:^(MASConstraintMaker *make) { make.centerY.mas_equ

[Flex] 组件Tree系列 —— 运用variableRowHeight和wordWrap设置可变行高

mxml: 1 <?xml version="1.0" encoding="utf-8"?> 2 <!--功能描述:运用variableRowHeight和wordWrap设置可变行高--> 3 <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 4 xmlns:s="library://ns.adobe.com/flex/spark"

UITableView!别再用代码计算行高了(一)

你还在用代码去计算行高吗?你不感觉那种方式很low吗?从今天起,试着做些改变吧! 别给我讲你喜欢写代码的感觉,你就是要用代码去计算行高,那我这篇文章不适合你. 在讲解复杂内容之前,还是先学习简单的内容,本篇就是讲解一些基本的内容. 一.纯文字Cell 一般我们用的都是UILabel控件,这个控件配合Autolayout简直是完美,废话不多说. 我们首先创建一个简单的工程,工程中我们创建一个UITableViewController子类,这里命名为LabelViewController,下图是一些

line-height 行高

line-height 行高指一行文字的高度,具体来说是指两行文子间基线间的距离      line-height 与 font-size 的计算值之差(行距)分为两半,分别加到一个文本行内容的顶部和底部.可以包含这些内容的最小框就是行框. 行高是指上下文本行的基线间的垂直距离,即图中两条红线间垂直距离. 行距是指一行底线到下一行顶线的垂直距离,即第一行粉线和第二行绿线间的垂直距离. 半行距是行距的一半,即区域3垂直距离/2,区域1,2,3,4的距离之和为行高,而区域1,2,4距离之和为字体si

tableView计算动态行高的总结

研究tableView怎么计算动态行高研究了两天一直还不太会,今天最终做出来了想要的效果. 首先.我在网上搜集了非常多资料,各种大神的总结,然后開始看.研究.试验,基本思路都是一样的. 1.一定要将label的numberOfLine设为0 2.获得文字信息所须要的size 3.将label的height设为titleSize.height 4.在- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIn

【转】css行高line-height的一些深入理解及应用

一.前言 前两天在腾讯ISD团队博客上看到一篇翻译的文章“深入理解css 行高”,是个不错的文章,学到了不少东西,建议您看看. 这里,我也要讲讲我对line-height的一些理解,所讲解的东西绝大多数与上面提到的“深入理解css 行高”是不重复的,可以说是补充或是另外一个角度的思考.另外,将结合实际,展示line-height的一些特性和一些常见应用,帮助您对css行高line-height的理解.所讲述的并不一定都是正确的,欢迎指正欢迎交流. 二.一些字面意思“行高”顾名思意指一行文字的高度

在固定宽度 下计算出实际的行高

//根据字符串内容的多少  在固定宽度 下计算出实际的行高 - (CGFloat)HelperTextHeightFromTextString:(NSString *)text width:(CGFloat)textWidth fontSize:(CGFloat)size { if ([self heperGetCurrentIOS] >= 7.0) { //iOS7之后 /* 第一个参数: 预设空间 宽度固定  高度预设 一个最大值 第二个参数: 行间距 如果超出范围是否截断 第三个参数: 属