1.用xib的话,设置约束的时候 不设置lable的高度即可,高度返回的就是最优高度。

2.用lable代码计算高度

CGFloat getHeightForLableString(NSString *value,CGFloat width,UIFont * font)
{
UILabel * lable=[[UILabel alloc]initWithFrame:CGRectMake(, , width, )];
lable.text= value;
lable.numberOfLines = ;
lable.font = font;
return [lable sizeThatFits:CGSizeMake(width, MAXFLOAT)].height;
}

3.用ios7以后用的新出的函数

        CGFloat height = [_contentLable.text boundingRectWithSize:CGSizeMake(getWidth(_contentLable.frame), MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName : _contentLable.font} context:nil].size.height;

4.

/**
@method 获取指定宽度情况ixa,字符串value的高度
@param value 待计算的字符串
@param fontSize 字体的大小
@param andWidth 限制字符串显示区域的宽度
@result float 返回的高度
*/
- (float) heightForString:(NSString *)value fontSize:(float)fontSize andWidth:(float)width
{
CGSize sizeToFit = [value sizeWithFont:[UIFont systemFontOfSize:fontSize] constrainedToSize:CGSizeMake(width, CGFLOAT_MAX) lineBreakMode:UILineBreakModeWordWrap];//此处的换行类型(lineBreakMode)可根据自己的实际情况进行设置
return sizeToFit.height;
}

5.UITextView计算高度

/**
@method 获取指定宽度width,字体大小fontSize,字符串value的高度
@param value 待计算的字符串
@param fontSize 字体的大小
@param Width 限制字符串显示区域的宽度
@result float 返回的高度
*/
- (float) heightForString:(NSString *)value andWidth:(float)width{
//获取当前文本的属性
NSAttributedString *attrStr = [[NSAttributedString alloc] initWithString:value];
_text.attributedText = attrStr;
NSRange range = NSMakeRange(, attrStr.length);
// 获取该段attributedString的属性字典
NSDictionary *dic = [attrStr attributesAtIndex: effectiveRange:&range];
// 计算文本的大小
CGSize sizeToFit = [value boundingRectWithSize:CGSizeMake(width - 16.0, MAXFLOAT) // 用于计算文本绘制时占据的矩形块
options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading // 文本绘制时的附加选项
attributes:dic // 文字的属性
context:nil].size; // context上下文。包括一些信息,例如如何调整字间距以及缩放。该对象包含的信息将用于文本绘制。该参数可为nil
return sizeToFit.height + 16.0;
}

ios字符串计算高度总结的更多相关文章

  1. iOS 字符串处理笔记

    iOS字符串处理笔记,包括如何使用正则表达式解析,NSScanner扫描,设置和使用CoreParse解析器来解析处理自定义符号等内容 搜索 在一个字符串中搜索子字符串 最灵活的方法 - (NSRan ...

  2. iOS字符串加密至MD5&及获取文件MD5

    iOS 字符串加密至MD5 #import <CommonCrypto/CommonDigest.h> + (NSString *) md5:(NSString *)str { const ...

  3. iOS 字符串 MD5

    iOS 字符串 MD5 Objective-C 实现 需要引入头文件 #import <CommonCrypto/CommonCrypto.h> 这里用方法实现 + (nullable N ...

  4. iOS字符串安全

    iOS字符串安全 一个编译成功的可执行程序,其中已初始化的字符串都是完整可见的. 针对于iOS的Mach-O二进制通常可获得以下几种字符串信息: 资源文件名 可见的函数符号名 SQL语句 format ...

  5. ios字符串截取

    最近刚从 . net 转到ios平台  又开始了新的学习,所以开始写博客,这样可以让我每天都能进步一点点 对字符串的操作很多情况下和c#中的不一样 1.字符串的声明 //声明字符串 NSString  ...

  6. iOS 字符串的宽度和高度自适应

    //获取字符串的宽度 -(float)widthForString:(NSString *)value fontSize:(float)fontSize andHeight:(float)height ...

  7. iOS 字符串删除 DOM

    iOS  string 删除 包含的 DOM NSMutableString *mutableString = [NSMutableString stringWithString:responseSt ...

  8. iOS字符串为空的判断

    //判断字符串 -(BOOL) isValidString:(id)input { if (!input) { return NO; } if ((NSNull *)input == [NSNull ...

  9. ios字符串操作

    string的操作应用 NSRange range = [self.general rangeOfString:@"."]; NSString *str = [self.gener ...

随机推荐

  1. Linux下配置VNC

    1.确认是否安装vnc服务端 : rpm -q tigervnc-server 默认是没有安装的,需要在Linux系统文件Packages文件夹找到vnc安装包(里面有两个分别是客户端与服务端)tig ...

  2. How to Install/Deinstall Oracle Workspace Manager (文档 ID 263428.1)

    In this Document   Goal   Solution   References APPLIES TO: Workspace Manager - Version 9.0.1.0 to 1 ...

  3. CoreLocation导航Demo

    CoreLocation实现定位和导航功能还是非常简单的,基本思路是: 1.导入<CoreLocation/CoreLocation.h>头文件 2.使用该框架内的导航管理者,创建该导航管 ...

  4. java实现二叉树的相关操作

    import java.util.ArrayDeque; import java.util.Queue; public class CreateTree { /** * @param args */ ...

  5. 回溯算法————n皇后、素数串

    回溯就是算法是搜索算法中一种控制策略,是一个逐个试探的过程.在试探的过程中,如果遇到错误的选择,就会回到上一步继续选择下一种走法,一步一步的进行直到找到解或者证明无解为止. 如下是一个经典回溯问题n皇 ...

  6. linux 让一个程序开机自启动并把一个程序加为服务

    本文以tomcat7为例 首先找到tomcat启动的目录,我的为 cd /usr/local/tomcat7/bin/ 这个目录 启动脚本是startup.sh 然后在/etc/rc.d/rc.loc ...

  7. 500多条Linux信息

    http://www.cnblogs.com/zgqjymx/myposts.html?page=77 http://www.cnblogs.com/zgqjymx/tag/%E5%8E%9F%E5% ...

  8. ESMOD北京高级时装艺术学校_百度百科

    ESMOD北京高级时装艺术学校_百度百科 ESMOD北京高级时装艺术学校

  9. HDOJ1166 敌兵布阵

    赤裸裸的线段树,借个模板,改写一下即可. 代码: #include<iostream> #include<cstdio> #include<stdio.h> #in ...

  10. scp的使用

    scp有两种版本 一种是ma的 直接使用scp命令 一种是winscp类似ftp mac版的scp命令格式如下: scp ./xxx.tar.gz root@ip: /root/xxx 这句话的意思是 ...