释放双眼,带上耳机,听听看~!

网上大部分的boundingRectWithSize和sizeWithFont 计算出来的宽高在某些有特殊情况下(如链接中有n等等)计算出来的还是有偏差不准,此时用NSAttributedString和label的attributedText计算会迎刃而解

1.给model的.h文件添加一个NSAttributedString属性

/**    带有属性的(特殊文字会高亮显示显示表情) */

@property (nonatomic, copy) NSAttributedString *attributedText;

2..m重写text的set方法

//重写set

- (void)setMessageStr:(NSString *)messageStr

{

_messageStr = messageStr;

//计算出attributedText

NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:messageStr];

[attrString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:16] range:NSMakeRange(0, messageStr.length)];

_attributedText = attrString;

}

3.cell.m文件

//用attributedText解决有时高度计算不准的bug

self.contentL.attributedText = privateLetterMyModel.attributedText;

//最终计算出来的准确的size

CGSize frame = [self.contentL.attributedText boundingRectWithSize:CGSizeMake(ScreenWidth - 120, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin context:nil].size;

4.viewController中计算cell高度

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{

TestModel *model = self.dataArr[indexPath.row];

CGSize frame = [CalculateSize sizeForNoticeTitle:model.messageStr font:[UIFont systemFontOfSize:16] maxW:  ScreenWidth - 120];

CGSize frame = [model.attributedText boundingRectWithSize:CGSizeMake(ScreenWidth - 120, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin context:nil].size;

return frame.height ;

}

5.从服务器用mdel.text获取数据(以为重写了setText方法所以会自动获取attributedText)

ios html高度自适应,iOS UILabel高度自适应终结篇相关推荐

  1. ios 根据文字数量计算UILabel高度(已修改)

    由于留言的朋友给出了更好的方法,所以下面的代码都是它留言中给出的,优于我前面计算Lable高度方法,这个可以说非常的准,是IOS自带的计算UILABEL高度的方式. 一.实现代码 // 创建label ...

  2. IOS开发—IOS7.0以后UILabel高度自适应设置

    IOS7.0以后UILabel高度自适应 IOS7.0以后,UILabel自适应高度的方法发生了改进,以下根据代码展示如何对一个label做自适应文本高度的操作. 代码示例: UILabel *lab ...

  3. ios开发者账号 APPID 需要回答密保问题来重新编辑手机号导致app无法更新终结篇

    ios开发者账号 APPID 需要回答密保问题终结篇 之前的appid账号没有注册过手机号或邮箱或者忘记密保问题导致不能发布新版本的问题的解决办法 1.通过苹果手机登录该APPID, 2. 选择姓名选 ...

  4. ios 获取html的高度,iOS Webview自适应实际内容高度的4种方法详解

    //第一种方法 - (void)webViewDidFinishLoad:(UIWebView *)webView { CGFloat webViewHeight=[webView.scrollVie ...

  5. iOS开发 UILabel实现自适应高宽

    UILabel是iOS开发常用的控件.UILabel的属性需要了解,UILabel的特殊显示效果也需要我们掌握.UILabel自适应高宽度是很多初学者遇到的技术性难题.比如段文字,要让他完全地分行显示 ...

  6. iOS UILabel UITextView自适应文本,或文本大小自适应

    //UILabel自适应文本的高度 UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 100, 300, 100)];label ...

  7. 2015 / 11 / 14 日结 /tableviewcell高度的坑 / label 自适应的坑 / heardview 头部的坑

    今天遇到的问题: 1,heardview 头部高度问题,当设置tableview的tableviewheardview属性,再调用系统方法 - (CGFloat)tableView:(UITableV ...

  8. iOS 动态计算文本内容的高度

    关于ios 下动态计算文本内容的高度,经过查阅和网上搜素,现在看到的有以下几种方法: 1. //  获取字符串的大小  ios6 - (CGSize)getStringRect_:(NSString* ...

  9. echarts 自适应高度_web 报表工具如何自适应

    现在的报表用户已经不再将报表作为一个单纯的报表工具看待了,有时候也会当作页面工具来使用,这时为了页面显示工整美观,就需要报表能够自适应宽度.下面我们就基于润乾报表来讲一下是如何做到自适应展现报表. 产 ...

  10. scroll-view如何自适应页面剩余高度

    在uni-app使用中,有如下场景,页面有三个组件,top-bar顶部标题栏高度指定,bottom-bar底部功能菜单栏高度指定,scroll-view区域是一个scroll-view滚动区域,浏览聊 ...

最新文章

  1. Redis通信协议(protocol)
  2. 课时 12:可观测性-监控与日志(莫源)
  3. 怎么用cmd关闭系统弹窗_C盘空间越来越小怎么办?5招帮你解决问题!
  4. c# thread数线程的创建
  5. Linux中进程与线程的概念以及区别
  6. PHP自动加载(下)——PSR4
  7. JAVA设计模式---单例模式的几种实现方式比较
  8. Python输出语句
  9. 虹软人脸识别android源码demo,虹软2.0 离线人脸识别 Android 开发 Demo
  10. dsp31段最佳调音图_均衡器如何使用_31段均衡器调整方法
  11. 使用最小二乘法拟合曲线
  12. python常数_SciPy所有常数解释
  13. 职业操盘手的止损法则
  14. 【提问的智慧】-[How To Ask Questions The Smart Way]
  15. 昂达v80 plus linux,昂达(ONDA)V80 Plus平板电脑整体性能评测-ZOL中关村在线
  16. Android Studio NKD开发之 FFmpeg库的引入--简单播放器(主要验证是否正确引入ffmpeg库)
  17. pd.DataFrame用法
  18. 计算机代码,名词解释和作用,还有我们要高高飞起来喔!
  19. 加密算法、公钥、私钥、数字签名与CA
  20. javaScript学习笔记:用城市代码查询城市天气

热门文章

  1. 微信公众号--相关资料
  2. 终端mysql Operation not permitted错误解决方案
  3. 腾讯QQ企业邮箱POP3/SMTP设置
  4. tcl/tk demo
  5. js 获取url的get传值函数
  6. 分配大小为0的内存和0值进行比较
  7. 10大黑客专用的 Linux 操作系统,你了解哪些?
  8. MDK530编译出现ARM版本不符问题
  9. 每日一题(30)—— 局部变量能否和全局变量重名?
  10. github page hexo博客gitee_利用Github和hexo搭建个人免费博客