注册
iOS

超出范围自动滚动、支持彩色流动特效的UILabel封装

JKRShimmeringLabel


特征


4f576703574522a3fc5739419f179757.gif


c9dd37b762292bc0fb23fbf0601f8cc8.gif

  1. 支持炫彩字

  2. 支持炫彩流动字

  3. 支持超出显示范围自动滚动文本

  4. 支持RTL下的对称显示和滚动

  5. 支持Frame布局

  6. 支持Xib和StoryBoard内使用

  7. 支持AutoLayout布局


使用


源码连接


和原生UILabel一样用,只需要设置mask属性(一张彩色的图片遮罩)即可。


原有项目的UILabel替换


因为JKRAutoScrollLabel和JKRShimmeringLabel本身就是继承UILabel,可以直接把原有项目的UILabel类,替换成JKRAutoScrollLabel或JKRShimmeringLabel即可。


JKRAutoScrollLabel


超出范围自动滚动的Lable,需要设置attributedText,不能设置text。要同时支持流动彩字,设置mask即可。不需要彩色可以不设置mask,只有自动滚动的特性。


// Frame布局,字体支持炫彩闪动,同时超出显示范围自动滚动

NSMutableAttributedString *textForFrameAttr = [[NSMutableAttributedString alloc] initWithString:@"我是滚动测试文本Frame布局,看看我的效果" attributes:@{NSForegroundColorAttributeName: UIColorHex(FFFFFF), NSFontAttributeName: [UIFont systemFontOfSize:19 weight:UIFontWeightBold]}];

self.autoScrollLabelForFrame = [[JKRAutoScrollLabel alloc] initWithFrame:CGRectMake(isRTL ? kScreenWidth - 10 - 300 : 10, CGRectGetMaxY(title0.frame) + 10, 300, 24)];

// 滚动文本需要设置 attributedText 才能生效

self.autoScrollLabelForFrame.attributedText = textForFrameAttr;

// 设置文字颜色的mask图片遮罩,如果不需要字体炫彩,不设置即可

self.autoScrollLabelForFrame.mask = [self maskImage];

[self.view addSubview:self.autoScrollLabelForFrame];


JKRShimmeringLabel


支持流动彩字,设置mask即可,如果还需要超出范围自动滚动,需要使用JKRAutoScrollLabel。


// Frame布局,字体支持炫彩闪动

self.shimmerLabelForFrame = [[JKRShimmeringLabel alloc] initWithFrame:CGRectMake(isRTL ? kScreenWidth - 10 - 300 : 10, CGRectGetMaxY(title1.frame) + 10, 300, 24)];

self.shimmerLabelForFrame.text = @"我是彩色不滚动文本Frame布局,看看我的效果";

self.shimmerLabelForFrame.font = [UIFont systemFontOfSize:19];

// 设置文字颜色的mask图片遮罩,如果不需要字体炫彩,不设置即可

self.shimmerLabelForFrame.mask = [self maskImage];

[self.view addSubview:self.shimmerLabelForFrame];


Xib使用


控件支持xib和autolayout的场景,和UILabel一样设置约束即可,自动滚动和彩色动画,会自动支持。只需要正常配置约束,然后设置mask彩色遮罩即可。


同时,因为JKRShimmeringLabel和JKRAutoScrollLabel本身就是继承UILabel的,所以UILabel在Xib中的文本自动填充宽度、约束优先级等等特性,也都可以正常使用。


作者:Whip78215
链接:https://juejin.cn/post/7220690079701434405
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

0 个评论

要回复文章请先登录注册