[iOS] 字体渐变色

 我来答
承吉凌8580
2022-06-19 · TA获得超过1.1万个赞
知道小有建树答主
回答量:349
采纳率:0%
帮助的人:67.9万
展开全部

接到给文字加渐变色的需求后,我和同事一筹莫展,在网上找各种资料,找到两种实现方式:
1、通过把label的layer做为一个渐变图层的mask,即只让文字部分遮住渐变图层

2、重写UILabel的绘制方法drawTextInRect:,从上下文生成图片,清除上下文内容,再把图片作为整个上下文的mask,最后在上下文里绘制渐变

毕竟是消息列表,就选择了性能稍微好点的第二种方式。万事大吉,炫彩字体就出来了。

但是后来发现如果文字中有表情,表情就成为了一个圆形色块,仔细一想应该是把表情的轮廓作为遮罩处理的。

怎么让表情不作为渐变色的遮罩呢,只想到一个方法,用CoreText绘制。先把当前上下文环境保存起来。首先只绘制普通文字,遇到表情,把表情的位置预留出来,并把表情和其位置信息保存起来供下次绘制。绘制完文字后,取到图片、清除上下文、坐标转换、设置mask,然后绘制渐变。然后恢复之前保存的上下文环境,并取到表情信息再一次绘制表情。

由于对CoreText了解有限,实现的也很蹩脚,不过总算能够满足效果了。

重点:后来,同事突然给我说,有一个更简单且完美的方法,直接设置textColor为渐变颜色就行了。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
logo在线生成器
2024-10-28 广告
在上海数都信息科技有限公司,我们专注于技术创新,为用户提供高效、定制化的汉字图标生成解决方案。利用先进的图形处理与人工智能算法,我们能够快速将汉字转化为风格多样、视觉效果出众的图标。这些图标不仅保留了汉字的文化韵味,还融入了现代设计美学,广... 点击进入详情页
本回答由logo在线生成器提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式