基于YYLabel的图文混排
#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的图文混排相关推荐
- 菜鸡瞎逼逼:基于UGUI的图文混排
前一阵子在做UI的时候遇到了这样的一个需求,是在一行里显示这样的东西: 而且我们这个项目要做多语言,也就是前边后边的文字都不一定是什么,有可能是中文有可能是英文有可能是俄语也有可能是泰文-(我们项目虽 ...
- 菜ji瞎逼逼:基于UGUI的图文混排(续)
上一篇 图文混排 时至今日又有到这个需求 就又把这个捡起来,顺便发现有了更好的理解.以做记录 直接上shader // Author:zouchunyi // E-mail:zouchunyi@kin ...
- android多媒体图文混排,干货!!!Android富文本实现图文混排
效果图 rich.jpg 像图中的效果,大家在开发并不少见,大家可能不知道android提供了实现图文混排的类.大家或许会写一个布局或者使用drawableLeft这个属性实现文本的左侧图标. and ...
- XMPP键盘订制实现图文混排
在现阶段的通信服务中,各种标准都有,因此会出现无法实现相互连通,而XMPP(Extensible Message and presence Protocol)协议的出现,实现了整个及时通信服务协议的互 ...
- 使用CoreText实现图文混排
2019独角兽企业重金招聘Python工程师标准>>> OS没有现成的支持图文混排的控件,而要用多个基础控件组合拼成图文混排这样复杂的排版,是件很苦逼的事情.对此的解决方案有使用Co ...
- iOS自己总结的超级详细分解富文本大全(AttributedString),图文混排很轻松
前言 最近项目中对图文混排有一定的需求,例如价格,文字链接,文字颜色变化等要求,翻了很多资料,咱们对这些属性做了如下的总结,希望能在方便自己查阅! NSFontAttributeName 设置字体大小 ...
- 计算机基础图文混排教案,中职《Word图文混排》教学设计|word图文混排教学设计...
摘 要 文章举例说明了中等职业学校计算机教学中的<word图文混排>教学设计并通过此设计实现了图文混排在实际生活中的应用,培养及提高了学生团结合作.分析问题和解决问题的能力,特别是应用计算 ...
- 自定义UI 简易图文混排
系列文章目录 自定义UI 基础知识 自定义UI 绘制饼图 自定义UI 圆形头像 自定义UI 自制表盘 自定义UI 简易图文混排 自定义UI 使用Camera做三维变换 自定义UI 属性动画 自定义UI ...
- 【逗老师带你学IT】PRTG监控系统通过企业微信推送图文混排告警消息
往期回顾: [逗老师带你学IT]PRTG监控系统通过企业微信推送告警消息 [逗老师带你学IT]PRTG HTTP API获取指定传感器流量图表图片 在往期的文章里,我们讲了 1.如何在PRTG产生告警 ...
- ios 表情符号 键盘_iOS 表情键盘+gif聊天图文混排,看我的就够了
更新: 1.解决首次加载键盘卡顿的问题: 2.修改聊天布局方式,现在无需计算,更加丝滑. 前言: 之前做过[OC版本]和[swift版本]图文混排和表情键盘,说实在的很low,特别是键盘,整体只是实现 ...
最新文章
- 给 Spring Boot 项目减减肥!18.18M 到 0.18M 是如何做到的?
- 浅谈数据分析的魅力和能力要求!
- 用navicate 连接本地数据库提示用户名/口令无效
- CV方向介绍 | 基于自然语言的跨模态行人re-id的SOTA方法简述(上)
- orm2 中文文档 8. 聚合
- Machine learning for improved image-based wavefront sensing
- html5应用开发大赛
- 一些NER的英文数据集
- Parentheses Column Values
- 一些python书=待买
- jsp 网页计数器代码
- Python实现Mean Shift算法
- php为图片平铺文字水印
- less文件中导入另一个less文件
- MATLAB批量改变图片大小
- MBR膜持续发力 守护绿水青山
- 荣耀猎人游戏本散热怎么样?测试一下就知道
- 02 汇编语言的函数
- 2022最新软件测试面试八股文,全网最全最新,堪称地表最强
- 企业升级改造项目中的电力监控系统的研究与应用
热门文章
- linux基础ppt下载,《Linux基础》PPT课件.ppt
- 期权、期货及其他衍生品 Chapter14 维纳过程与伊藤引理
- imagej得到灰度图数据_IMAGE J灰度分析
- 华为电脑如何投屏到电视linux,华为手机如何投屏到电脑上?手把手教你,无线投屏怎么做...
- 使用 Premiere 制作视频简介
- python cookbook pdf java1234_[python书籍]Python.Cookbook(第2版)中文版.pdf
- 程序员使用C#编写表白小软件(VS2013)(表白程序)
- Farrago for Mac 1.1.0 音频效果和音乐剪辑工具 破解版下载
- Java 如何获取线程状态呢?
- 全球与中国激光共焦扫描显微镜市场深度研究分析报告