利用YYLabel 进行图文混排+高度计算

1、项目需求:

用一个控件显示图片和文字,并且依据图片和文字动态计算控件的高度。

2、方案:

利用YYLabel控件和属性字符串处理。

注:(在使用YYLabel之前,使用UILabel测试过,但是发现在图文混排的时候。利用属性字符串计算高度不太准确。会有多余的文字不显示。)

示例代码

//使用YYText 处理富文本行高

YYLabel *contentL = [[YYLabel alloc] init];
//设置多行
contentL.numberOfLines = 0;
//这个属性必须设置,多行才有效
contentL.preferredMaxLayoutWidth = kScreenWidth -32;NSMutableAttributedString *attri = [[NSMutableAttributedString alloc] initWithAttributedString:[OSCBaseCommetView contentStringFromRawString:commentItem.content withFont:24.0]];//可以将要插入的图片作为特殊字符处理
//需要使用 YYAnimatedImageView 控件,直接使用UIImage添加无效。

YYAnimatedImageView *imageView1= [[YYAnimatedImageView alloc] initWithImage:[UIImage imageNamed:@"ic_quote_left"]];
imageView1.frame = CGRectMake(0, 0, 16, 16);YYAnimatedImageView *imageView2= [[YYAnimatedImageView alloc] initWithImage:[UIImage imageNamed:@"ic_quote_right"]];
imageView2.frame = CGRectMake(0, 0, 16, 16);
// attchmentSize 修改,可以处理内边距
NSMutableAttributedString *attachText1= [NSMutableAttributedString attachmentStringWithContent:imageView1 contentMode:UIViewContentModeScaleAspectFit attachmentSize:imageView1.frame.size alignToFont:[UIFont systemFontOfSize:24] alignment:YYTextVerticalAlignmentCenter];NSMutableAttributedString *attachText2= [NSMutableAttributedString attachmentStringWithContent:imageView2 contentMode:UIViewContentModeScaleAspectFit attachmentSize:imageView2.frame.size alignToFont:[UIFont systemFontOfSize:24] alignment:YYTextVerticalAlignmentCenter];//插入到开头
[attri insertAttributedString:attachText1 atIndex:0];//插入到结尾
[attri appendAttributedString:attachText2];//用label的attributedText属性来使用富文本
contentL.attributedText = attri;CGSize maxSize = CGSizeMake([UIScreen mainScreen].bounds.size.width - 32, MAXFLOAT);//计算文本尺寸
YYTextLayout *layout = [YYTextLayout layoutWithContainerSize:maxSize text:attri];
contentL.textLayout = layout;
CGFloat introHeight = layout.textBoundingSize.height;contentL.frame =  commentItem.layoutInfo.contentTextViewFrame;
contentL.width = maxSize.width;contentL.height = introHeight + 50;[self addSubview:contentL];

转载于:https://www.cnblogs.com/edensyd/p/9259551.html

利用YYLabel 进行图文混排+高度计算相关推荐

  1. 实现小程序的图文混排功能

    在小程序的开发过程中,小程序开发人员经常会遇到商品详情中图文混排的功能.这个时候要么考虑用WxParse.wxParse组件去解析.另一种是我们后台巧妙地利用数据结构实现图文混排的功能.后台系统的代码 ...

  2. Android TextView中图文混排设置行间距导致高度不一致问题解决

    Android TextView中图文混排设置行间距导致高度不一致问题解决 参考文章: (1)Android TextView中图文混排设置行间距导致高度不一致问题解决 (2)https://www. ...

  3. 图文混排作品HTML5利用css样式,DivCSS布局实例:很实用的图文混排CSS列表

    CSS网页布局的一大特点就是列表元素的应用,在传统的表格布局中往往将列表元素作为表格来处理,这样的方式非但不具有语义还产生了许多不必要的代码. 今天我们共同学习一款"图文混排CSS列表&qu ...

  4. 利用ListView实现新闻客户端的新闻内容图文混排

    如图: 布局文件: <LinearLayout xmlns:android="<a href="http://schemas.android.com/apk/res/a ...

  5. 使用CoreText实现图文混排

    2019独角兽企业重金招聘Python工程师标准>>> OS没有现成的支持图文混排的控件,而要用多个基础控件组合拼成图文混排这样复杂的排版,是件很苦逼的事情.对此的解决方案有使用Co ...

  6. 计算机基础及word实验原理,大学计算机基础实验3-Word 文档的图文混排

    Word文档的图文混排 [实验目的] 1.熟练掌握插入图片.图片编辑.格式化. 2.掌握绘制简单的图形和格式化. 3.掌握艺术字体的使用. 4.学会公式编辑器的使用. 5.掌握文本框的使用 6.掌握图 ...

  7. 计算机基础图文混排教案,中职《Word图文混排》教学设计|word图文混排教学设计...

    摘 要 文章举例说明了中等职业学校计算机教学中的<word图文混排>教学设计并通过此设计实现了图文混排在实际生活中的应用,培养及提高了学生团结合作.分析问题和解决问题的能力,特别是应用计算 ...

  8. (一一二)图文混排中特殊文字的点击与事件处理

    在上一篇文章(一一一)图文混排基础 -利用正则分割和拼接属性字符串中提到了对attributedText的特殊处理,将其中的话题.URL都用红色进行了表示,如下图所示: 本节要实现的功能是这样的att ...

  9. 【小松教你手游开发】【系统模块开发】图文混排 (在label中插入表情)

    本身ngui是自带图文混排的,这个可以在ngui的Example里找到.但是为什么不能用网上已经说得很清楚,比如雨松momo的http://www.xuanyusong.com/archives/29 ...

  10. 03-CSS操作--CSS操作规范(书写技巧)+通栏布局+标签的注意事项+三大类标签+边距合并问题+图文混排+图像签名+水平居中+垂直居中

    一.CSS操作规范 1.CSS书写技巧 (1)最外层是一个<div id="bigDiv">,将所有元素都包进去 (2)去除<body>的外边距(body{ ...

最新文章

  1. Xamarin.Forms单元控件Cell
  2. UA OPTI570 量子力学3 单个自由粒子的薛定谔方程
  3. c++ 多线程 类成员函数_多线程(C++/Python)
  4. 大学计算机基础超详细知识点(高手总结),大学计算机基础超详细知识点(高手总结).doc...
  5. 狂神说学习笔记 Java流程控制
  6. Head First PHP MySQL(中文版)
  7. jar包转换为exe可执行文件
  8. mac 无法删除用户
  9. Python用win32模块让窗体闪烁!附源码
  10. 一起学英语 - 前言
  11. Dynamics CRM IFD部署如何更换SSL证书
  12. C#有关字符串和路径的拼接
  13. php导出数据库为excel文件,phpexcel导出数据库成excel文件
  14. 树莓派WIFI配置遇到的坑 之 连接不上WIFI
  15. python读取excel(读写处理xls或xlsx)
  16. 室内导航技术蓝牙aoa定位运用
  17. python 之复数
  18. 假期福利! 经典O'Reilly图书免费送, 搞懂DApp生态就靠它了!
  19. sqlserver 中 @@rowcount的简单用法
  20. ffmpeg 从视频中提取WAV格式的音频

热门文章

  1. php 汉字转拼音 [包含20902个基本汉字+5059生僻字]
  2. Spring Cloud 微服务架构图
  3. pycharm专业版的破解
  4. 如何下载Idea专业版
  5. CentOS之命令方式安装向日葵与内网穿透
  6. Segmentation-Driven 6D Object Pose Estimation论文详解
  7. 机器学习之随机森林算法
  8. linux下载tar包和rpm包以及镜像的地址分享一下
  9. SQL语句简单增删改查
  10. PID控制器及其参数整定