#ZBImageTextEngine

起因

为了解决图文混排的痛点,UI给你提各种"1像素"问题;

  • space大小不正确问题;
  • 富文本不同font对齐问题如:baselineOffset在8.0失效问题
  • 不同font富文本,删除线无法居中问题;
  • 富文本中有图片/web图问题;
  • 富文本文字后面有图片切点九图问题;
  • 富文本文字后面有边框样式问题;
  • 富文本文字/图片有事件
  • 写富文本代码啰嗦; ...

Features

  • 图文混排

How To Use

  • space
[self.spaceLabel zb_makeContexts:^(ZBImageTextMaker *make) {make.text(@"丨");make.space(10);make.text(@"丨");make.space(20);make.text(@"丨");make.space(30);make.text(@"丨");
}];
复制代码
  • image
[self.imageLabel zb_makeContexts:^(ZBImageTextMaker *make) {make.image([UIImage imageNamed:@"Canada_28"]);make.image([UIImage imageNamed:@"Canada_28"]).size(CGSizeMake(20, 20));make.image([UIImage imageNamed:@"img_empty"]).size(CGSizeMake(40, 40)).border([ZBImageTextItemBorder borderWithRadius:20]);make.image([UIImage imageNamed:@"img_empty"]).size(CGSizeMake(40, 40)).border([ZBImageTextItemBorder borderWithColor:[UIColor redColor] width:5 radius:10]);make.image([UIImage imageNamed:@"img_empty"]).size(CGSizeMake(40, 40)).border([ZBImageTextItemBorder borderWithColor:[UIColor redColor] width:1 radius:3 margin:UIEdgeInsetsMake(3, 3, 3, 3)]);make.image([UIImage imageNamed:@"img_empty"]).size(CGSizeMake(40, 40)).url(@"http://b0.hucdn.com/img/country_new/ct_18.png");
}];
复制代码
  • text
[self.textLabel zb_makeContexts:^(ZBImageTextMaker *make) {make.text(@"优惠券");//指定font,colormake.text(@"优惠券").font([UIFont systemFontOfSize:20]).color([UIColor redColor]);//删除线make.text(@"优惠券").decoration([ZBImageTextItemDecoration decoration]).baselineFont([UIFont systemFontOfSize:30]);//有背景的文字,图片会点九拉伸make.text(@"优惠券").font([UIFont systemFontOfSize:20]).color([UIColor redColor]).offset(0.6).bg([ZBImageTextItemBackground bgWithImage:[UIImage imageNamed:@"bg01"] margin:UIEdgeInsetsMake(2, 5, 2, 5)]);//有边框的文字make.text(@"下单立减10元").font([UIFont systemFontOfSize:20]).color([UIColor redColor]).color([UIColor redColor]).border([ZBImageTextItemBorder borderWithColor:[UIColor redColor] width:0.5 radius:2 margin:UIEdgeInsetsMake(2, 3, 2, 3)]);
} globalConfig:@{@"baselineFont": [UIFont systemFontOfSize:30]}];
复制代码

help

1. 如何垂直调整
make.text(@"优惠券").offset(10);
复制代码
2.hook

使用block


typedef void(^ZBImageTextBlock)(id obj);
复制代码

example:

  • ZBImageTextItem
//ZBImageTextBlock imageViewBlock = data[@"imageView"] ? : nil;
//ZBImageTextBlock itemBlock = data[@"item"] ? : nil;make.image([UIImage imageNamed:@"img_empty"]).width(14).height(14).config(@{ @"imageView" :^(UIImageView *imageView) {
NSLog(@"%@",imageView);
}});复制代码
  • ZBImageTextItem
//ZBImageTextBlock imageViewBlock = data[@"imageView"] ? : nil;
//ZBImageTextBlock itemBlock = data[@"item"] ? : nil;
//ZBImageTextBlock textLayerBlock = data[@"textLayer"] ? : nil;
复制代码

Installation

platform :ios, '8.0'pod 'ZBImageText'
复制代码

github

github.com/k373379320/…

补充

有啥问题可以提issues/留言,改善和补充~

转载于:https://juejin.im/post/5cc85475e51d456e4e0886db

基于YYLabel的图文混排相关推荐

  1. 菜鸡瞎逼逼:基于UGUI的图文混排

    前一阵子在做UI的时候遇到了这样的一个需求,是在一行里显示这样的东西: 而且我们这个项目要做多语言,也就是前边后边的文字都不一定是什么,有可能是中文有可能是英文有可能是俄语也有可能是泰文-(我们项目虽 ...

  2. 菜ji瞎逼逼:基于UGUI的图文混排(续)

    上一篇 图文混排 时至今日又有到这个需求 就又把这个捡起来,顺便发现有了更好的理解.以做记录 直接上shader // Author:zouchunyi // E-mail:zouchunyi@kin ...

  3. android多媒体图文混排,干货!!!Android富文本实现图文混排

    效果图 rich.jpg 像图中的效果,大家在开发并不少见,大家可能不知道android提供了实现图文混排的类.大家或许会写一个布局或者使用drawableLeft这个属性实现文本的左侧图标. and ...

  4. XMPP键盘订制实现图文混排

    在现阶段的通信服务中,各种标准都有,因此会出现无法实现相互连通,而XMPP(Extensible Message and presence Protocol)协议的出现,实现了整个及时通信服务协议的互 ...

  5. 使用CoreText实现图文混排

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

  6. iOS自己总结的超级详细分解富文本大全(AttributedString),图文混排很轻松

    前言 最近项目中对图文混排有一定的需求,例如价格,文字链接,文字颜色变化等要求,翻了很多资料,咱们对这些属性做了如下的总结,希望能在方便自己查阅! NSFontAttributeName 设置字体大小 ...

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

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

  8. 自定义UI 简易图文混排

    系列文章目录 自定义UI 基础知识 自定义UI 绘制饼图 自定义UI 圆形头像 自定义UI 自制表盘 自定义UI 简易图文混排 自定义UI 使用Camera做三维变换 自定义UI 属性动画 自定义UI ...

  9. 【逗老师带你学IT】PRTG监控系统通过企业微信推送图文混排告警消息

    往期回顾: [逗老师带你学IT]PRTG监控系统通过企业微信推送告警消息 [逗老师带你学IT]PRTG HTTP API获取指定传感器流量图表图片 在往期的文章里,我们讲了 1.如何在PRTG产生告警 ...

  10. ios 表情符号 键盘_iOS 表情键盘+gif聊天图文混排,看我的就够了

    更新: 1.解决首次加载键盘卡顿的问题: 2.修改聊天布局方式,现在无需计算,更加丝滑. 前言: 之前做过[OC版本]和[swift版本]图文混排和表情键盘,说实在的很low,特别是键盘,整体只是实现 ...

最新文章

  1. 给 Spring Boot 项目减减肥!18.18M 到 0.18M 是如何做到的?
  2. 浅谈数据分析的魅力和能力要求!
  3. 用navicate 连接本地数据库提示用户名/口令无效
  4. CV方向介绍 | 基于自然语言的跨模态行人re-id的SOTA方法简述(上)
  5. orm2 中文文档 8. 聚合
  6. Machine learning for improved image-based wavefront sensing
  7. html5应用开发大赛
  8. 一些NER的英文数据集
  9. Parentheses Column Values
  10. 一些python书=待买
  11. jsp 网页计数器代码
  12. Python实现Mean Shift算法
  13. php为图片平铺文字水印
  14. less文件中导入另一个less文件
  15. MATLAB批量改变图片大小
  16. MBR膜持续发力 守护绿水青山
  17. 荣耀猎人游戏本散热怎么样?测试一下就知道
  18. 02 汇编语言的函数
  19. 2022最新软件测试面试八股文,全网最全最新,堪称地表最强
  20. 企业升级改造项目中的电力监控系统的研究与应用

热门文章

  1. linux基础ppt下载,《Linux基础》PPT课件.ppt
  2. 期权、期货及其他衍生品 Chapter14 维纳过程与伊藤引理
  3. imagej得到灰度图数据_IMAGE J灰度分析
  4. 华为电脑如何投屏到电视linux,华为手机如何投屏到电脑上?手把手教你,无线投屏怎么做...
  5. 使用 Premiere 制作视频简介
  6. python cookbook pdf java1234_[python书籍]Python.Cookbook(第2版)中文版.pdf
  7. 程序员使用C#编写表白小软件(VS2013)(表白程序)
  8. Farrago for Mac 1.1.0 音频效果和音乐剪辑工具 破解版下载
  9. Java 如何获取线程状态呢?
  10. 全球与中国激光共焦扫描显微镜市场深度研究分析报告