#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 = [[NSMutableParagraphStylealloc] 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 = [[NSAttributedStringalloc] initWithString:strattributes:dic];

label.attributedText = attributeStr;

}

//计算UILabel的高度(带有行间距的情况)

-(CGFloat)getSpaceLabelHeight:(NSString*)str withFont:(UIFont*)font withWidth:(CGFloat)width {

NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStylealloc] 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 = [strboundingRectWithSize:CGSizeMake(width,HEIGHT) options:NSStringDrawingUsesLineFragmentOriginattributes:dic context:nil].size;

return size.height;

}

UILabel设置行间距和字间距并计算高度-b的更多相关文章

  1. iOS UILabel设置行间距和字间距

    实现UILabel的文字,设置行间距和字间距. 效果图: 代码: let lblTitle = UILabel(frame: CGRect(x: , y: , width: KScreenWidth- ...

  2. (转)iOS学习——UIlabel设置行间距和字间距

    在iOS开发中经常会用到UIlabel来展示一些文字性的内容,但是默认的文字排版会觉得有些挤,为了更美观也更易于阅读我们可以通过某些方法将UIlabel的行间距和字间距按照需要调节. 比如一个Labe ...

  3. UILabel的行间距,字间距处理

    啥都不说了,直接上代码,做了一个Category #import <UIKit/UIKit.h> @interface UILabel (ChangeLineSpaceAndWordSpa ...

  4. 使用CSS设置行间距,字间距.

    字间距1.text-indent设置抬头距离css缩进即对,对应div设置css样式text-indent : 20px; 缩进了20px 2.letter-spacing来设置字与字间距_字符间距离 ...

  5. css如何设置label的字间距

    css.html如何设置label的字间距 .myClass  label{ letter-spacing: 10px; } 如果label需要居中,需加上 text-indent: 10px; 首行 ...

  6. UILabel设置行间距

    UILabel设置行间距: NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWi ...

  7. Lodop设置文本项行间距、字间距

    LODOP给文本项ADD_PRINT_TEXT设置字间距.行间距,可以在打印设计页面,右键属性里设置,然后在打印设计生成代码,也可以直接写代码.LineSpacing行间距.LetterSpacing ...

  8. UILabel 设置行间距

    UILabel *label1 = [[UILabel alloc]initWithFrame:frame]; label1.numberOfLines = 0; [self.view addSubv ...

  9. label_设置行距、字距及计算含有行间距的label高度

    // //  ViewController.m //  CNBlogs // //  Created by PXJ on 16/5/27. //  Copyright © 2016年 PXJ. All ...

随机推荐

  1. [改善Java代码]养成良好习惯,显式声明UID

    建议11: 养成良好习惯,显式声明UID 我们编写一个实现了Serializable接口(序列化标志接口)的类, Eclipse马上就会给一个黄色警告:需要增加一个Serial Version ID. ...

  2. Java反转单链表(code)

    主要是面试中可能会经常碰上该类似操作,尤其是稍大点公司,面试官可能并不在乎你能不能搞定该题,但是这类型题目最是能体现程序员的思维状态 ---一个迷糊头脑的程序员 怎能立志改变这个世界 /** * @a ...

  3. Sherlock and The Beast

    Sherlock Holmes suspects his archenemy, Professor Moriarty, is once again plotting something diaboli ...

  4. Excel日期格式单元格写成yyyy.MM.dd格式将无法读取到DataTable

    最近在改公司的订单系统,遇到了一个奇怪的问题.C#程序需要从Excel文件中将数据全部读取到DataTable,其中Excel文件的第一列是日期格式yyyy/MM/dd,而这一列中大部分的单元格都是按 ...

  5. 一些C++内容的总结(2013.10.17)

    1.using namespace std;使用的是C++标准库当中的一些变量,比如cout,cin等.但是using namespace std作用域只对当前文件内作用,所以using namesp ...

  6. web服务器顺带网络负载均衡

    Web服务器配置共享文件 文件服务器需要做的 1. 建立共享文件夹,并建立两个子文件夹 2. 创建用户以便访问共享时使用此凭据 3. 共享并给予刚创建的用户读取和写入权限 Web服务器的设置 1. 新 ...

  7. Unity3D项目实战笔记(5):延时功能的几种实现

    我所做过的系统,分单机版系统(2005年).CS系统(2010年).实时系统(2015年),各个系统均有“延时”功能:定时调度的: 本博客说的是实时系统中的延时功能(基于Unity3D游戏引擎). 在 ...

  8. iOS开发——app审核指导方针(官网)

    iOS 开发后上传到App Store审核的指导方针 ——苹果官网介绍地址 https://developer.apple.com/app-store/review/guidelines/

  9. C++多线程技术windows常用方法

    随着计算机CPU计算能力快速提高,计算机的处理性能和并行性能力也大大提升.那么,一味使用运行时标准库的C++语言也应该开始支持多线程技术.今天,我为大家带来了C++在windows平台下的常用多线程方 ...

  10. pthread 实现生产者消费者问题

    经典的生产者消费者问题,在这里用信号量和互斥量来实现生产和消费者模型   #include<cstdlib> #include<cstdio> #include<unis ...