- 很多音乐播放器类型的软件,歌词的Label文本能够随着进度而不断的填充颜色,这个功能是如何实现的呢?
- 原理就是重写UILabel的
drawRect
对UILabel进行颜色填充
- 原理就是重写UILabel的
#import "HMLabel.h"
@implementation HMLabel
//重绘UILabel
- (void)drawRect:(CGRect)rect
{
[super drawRect:rect];
// 1.填充颜色
[[UIColor greenColor] set];
// 2.设置改变颜色的宽度 (实际开发中,这里可以设置进度比例,然后外部刷新即可。为了演示效果,我就直接设置为0.5了)
rect.size.width *= 0.5;
// 3.label颜色混合模式填充 kCGBlendModeSourceIn:来源颜色,也就是我们第一步填充的颜色
UIRectFillUsingBlendMode(rect, kCGBlendModeSourceIn);
}
@end