原文:http://blog.csdn.net/xcysuccess3/article/details/8331549
在iOS中,经常遇到需要根据字符串的内容动态指定UILabel,UITextView,UITableViewCell等的高度的情况,这个时候就需要动态的计算字符串内容的高度,下面是计算的方法:
- /**
- @method 获取指定宽度情况ixa,字符串value的高度
- @param value 待计算的字符串
- @param fontSize 字体的大小
- @param andWidth 限制字符串显示区域的宽度
- @result float 返回的高度
- */ floatfloatfloat
- return
前不久QA报了个文字显示不全的bug,我看了下代码,发现是计算高度出了问题。之前的同事在UITableViewCell中使用了UITextView,但是计算高度时使用了和UILabel相同的的方法。
sizeWithFont:constrainedToSize:lineBreakMode:]时,需要将
UITextView.contentSize.width减去16像素(左右的padding 2 x
8px)。同时返回的高度中再加上16像素(上下的padding),这样得到的才是UITextView真正适应内容的高度。
- + (float) heightForTextView: (UITextView *)textView WithText: (NSString *) strText{
- float fPadding = 16.0; // 8.0px x 2
- CGSize constraint = CGSizeMake(textView.contentSize.width - fPadding, CGFLOAT_MAX);
- / / 注意:计算textview 高度 //textview 的font 不能为空
- CGSize size = [strText sizeWithFont: textView.font constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
- float fHeight = size.height + 16.0;
- return fHeight;
- }
【转】UILabel、UITextView自适应得到高度的更多相关文章
-
iOS UILabel UITextView自适应文本,或文本大小自适应
//UILabel自适应文本的高度 UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(, , , )]; label.numberOf ...
-
uilabel 和uitextview 自适应大小
本文转载至 http://blog.csdn.net/liulichao20/article/details/8957752 分类: ios2013-05-21 22:06 321人阅读 评论(0) ...
-
IOS UITextView自适应高度
LOFTER app需要实现了一个类似iPhone短信输入框的功能,它的功能其实蛮简单,就是:[UITextView的高度随着内容高度的变化而变化].实现思路应该是: 在UITextView的text ...
-
iOS开发-使用storyboard实现UILabel的自适应高度(iOS8)
好久没有写博客了.以后多写些博客,对自己是一种提升.对大家也是一种帮助 近期特别痴迷storyboard和xib的可视化编程,在写项目的时候遇到个问题就是怎样使UILabel自适应高度,查了好多文章博 ...
-
UILabel实现自适应高宽
UILabel是iOS开发常用的控件.UILabel的属性需要了解,UILabel的特殊显示效果也需要我们掌握.UILabel自适应高宽度是很多初学者遇到的技术性难题.比如段文字,要让他完全地分行显示 ...
-
iOS开发 UILabel实现自适应高宽
UILabel是iOS开发常用的控件.UILabel的属性需要了解,UILabel的特殊显示效果也需要我们掌握.UILabel自适应高宽度是很多初学者遇到的技术性难题.比如段文字,要让他完全地分行显示 ...
-
UILabel实现自适应宽高需要注意的地方(三)
一.需求图如下所示 UILabel 的高度自适应 UILabel中的段落间距可设置 图片效果如下: 调整段落适应长宽高方式: 需求: 保证"游戏玩法 ...
-
js自适应屏幕高度
//自适应屏幕高度 $(window).resize(function() { hightChange(); }); function hightChange(){ ; $();// iframe i ...
-
css实现自适应屏幕高度;
css实现自适应屏幕高度: <!DOCTYPE html><html lang="en"><head> <meta charset=&qu ...
随机推荐
-
c#实现远程操作svn
/// <summary> /// 本地svn服务器地址 /// </summary> private static string localSVN = Configurati ...
-
callback 转换到 promise
最近项目迭代,从express到koa,面对callback,想偷懒,就想到了Proxy对象 new Proxy(docker,{ get : function (obj,name) { return ...
-
查看SQLServer最耗资源时间的SQL语句
执行最慢的SQL语句 SELECT (total_elapsed_time / execution_count)/1000 N'平均时间ms' ,total_elapsed_time/1000 N'总 ...
-
strcpy和memcpy的区别(转载)
strcpy和memcpy都是标准C库函数,它们有下面的特点.strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符. 已知strcpy函 ...
-
python tornado框架使用
处理方法 t_handler.py from tornado.web import RequestHandler class IndexHandler(RequestHandler): def get ...
-
item31,连续子数组的最大和
整型数组,元素有正数和负数.数组中一个或连续的多个整数组成一个子数组,求所有子数组中最大值. =========== 动态规划, 状态转移方程,max[].size = nums.size() max ...
-
ARM指令集----寻址方式
ARM指令集可以分为跳转指令,数据处理指令,程序状态寄存器传输指令,LOAD/Store指令,协处理器指令和异常中断产生指令6类 ARM指令集的寻址方式 数据处理指令的操作数的寻址方式 字以及无符号字 ...
-
mysql 权限控制具体解释
概述 mysql权限控制在不同的上下文和不同的操作水平上都能够进行控制,他们包括例如以下几个 ** 管理权限能够同意用户管理mysql server的操作. 这些权限控制是全局的,不是针对某个特定的数 ...
-
微信小程序发送ajax
微信小程序通过 wx.request发送ajax请求 1. GET wx.request({ url: app.globalData.pubSiteUrl + 'user-information/ge ...
-
JS,Jquery获取各种屏幕的宽度和高度(转载)
原文:https://www.cnblogs.com/fuyuanming/articles/5453756.html 1.JS 网页可见区域宽: document.body.clientWidth ...