[iOS] 字体渐变色
展开全部
接到给文字加渐变色的需求后,我和同事一筹莫展,在网上找各种资料,找到两种实现方式:
1、通过把label的layer做为一个渐变图层的mask,即只让文字部分遮住渐变图层
2、重写UILabel的绘制方法drawTextInRect:,从上下文生成图片,清除上下文内容,再把图片作为整个上下文的mask,最后在上下文里绘制渐变
毕竟是消息列表,就选择了性能稍微好点的第二种方式。万事大吉,炫彩字体就出来了。
但是后来发现如果文字中有表情,表情就成为了一个圆形色块,仔细一想应该是把表情的轮廓作为遮罩处理的。
怎么让表情不作为渐变色的遮罩呢,只想到一个方法,用CoreText绘制。先把当前上下文环境保存起来。首先只绘制普通文字,遇到表情,把表情的位置预留出来,并把表情和其位置信息保存起来供下次绘制。绘制完文字后,取到图片、清除上下文、坐标转换、设置mask,然后绘制渐变。然后恢复之前保存的上下文环境,并取到表情信息再一次绘制表情。
由于对CoreText了解有限,实现的也很蹩脚,不过总算能够满足效果了。
重点:后来,同事突然给我说,有一个更简单且完美的方法,直接设置textColor为渐变颜色就行了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
logo在线生成器
2024-10-28 广告
2024-10-28 广告
在上海数都信息科技有限公司,我们专注于技术创新,为用户提供高效、定制化的汉字图标生成解决方案。利用先进的图形处理与人工智能算法,我们能够快速将汉字转化为风格多样、视觉效果出众的图标。这些图标不仅保留了汉字的文化韵味,还融入了现代设计美学,广...
点击进入详情页
本回答由logo在线生成器提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询