iOS 文字可根据进度改变颜色的进度条

iOS 文字可根据进度改变颜色的进度条,第1张

日常记录工程中遇到的问题~~

先上效果图:

简单解释:

一个进度条view,要求进度条上的文字需要适应进度条的背景颜色和进度的颜色,over。

思路:

添加顺序为:

ProgressView - label1 - view - label2

注意,label2要添加在view上,此时label2就可以根据view的进度显示一部分,然后label1显示的是view没有覆盖到的一部分,label1+label2就可以完整的显示全部要显示的内容了。

注意:

此方法算是一个取巧的方法,另外还有一种通过重新绘制label的方法也可以尝试。此篇只写了第一种方法,第二种方法有同学做过的欢迎来交流~~

因为是工程中用到的,工程中的显示进度view是一个渐变的图片,而且已经封装了下,需要的同学可以直接拿来用。

progressView1.backgroundColor、progressView1.progressImage、progressView1.textColor1、progressView1.textColor2 可以根据需要自己修改。

好了,这样出来的效果就是文章开头的图片效果了。

具体的图层排列给大家看下debug模式下的内容:

大家根据图层排列可以很直接的看到。

重要的地方只有一点,最上层的label2要贴在显示进度的view上,而且要加上这句 label2.layer.masksToBounds = YES 让其超过父视图的部分不显示。

clipsToBounds:是类View的属性,如果设置为yes,则不显示超出父View的部分

masksToBounds:是类CALayer的属性,如果设置为yes,则不显示超出父View layer的部分

他们是不同的名字,因为UIView和CALayer是不同的,有不同的术语与他们有联系的,但它们在功能上是等价的。如果你拆开clipsToBounds你会看到它只是调用masksToBounds

OK完成了,有什么不对的、更好的地方欢迎交流指正,谢谢 (*^▽^*)

1、首先在电脑上打开project文档,如图所示,选择菜单栏上的【格式】。

2、然后点击左侧的【文本样式】,如图所示。

3、然后在d出的文本样式页面,设置字体的样式,字体,字号等等参数,如图所示。

4、设置完毕之后,点击【确定】,如图所示。

5、这时project中的字体就发生了变化,如图所示。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11802468.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存