最終效果
最終就是要實(shí)現(xiàn)這樣的效果

pic.gif
偶然在 github 上看到 facebook 有個(gè)這樣的 label,于是想著我也山寨一個(gè)吧
我要做個(gè)閃光字體,支持多種閃光模式的shimmer label
思路很簡(jiǎn)單的
下面一個(gè)灰色的 grayLabel
上面一個(gè)白色的高亮 whiteLabel
還有一個(gè)漸變的 CAGradientLayer *gLayer(用法網(wǎng)上非常多,可以去看看)
然后給 gLayer 上個(gè)漸變色
然后一句話 whiteLabel.layer.mask = gLayer 就實(shí)現(xiàn)高亮了
左右滑動(dòng)就給 gLayer 加個(gè)平移動(dòng)畫就 ok 了,很簡(jiǎn)單吧
思路拓展
layer 有個(gè) mask 蒙版屬性,只要有 layer 的都可以做閃爍效果?。?br>
比如 imageView.layer 等等等等
最后我封裝了一個(gè) UILabel 的閃爍文字,一行代碼就開啟閃爍了,和 facebook 的效果一樣,還可以自定義多種樣式。
例如:
self.label1 = [[CKShimmerLabel alloc] init];
self.label1.text = @"hello world 1";
[self.label1 startShimmer]; // 開啟閃爍
一些可以修改的屬性:
ShimmerType shimmerType; // 閃爍類型,默認(rèn)LeftToRight
BOOL repeat; // 循環(huán)播放,默認(rèn)是
CGFloat shimmerWidth; // 閃爍寬度,默認(rèn)20
CGFloat shimmerRadius; // 閃爍半徑,默認(rèn)20
UIColor *shimmerColor; // 閃爍顏色,默認(rèn)白
NSTimeInterval durationTime; // 持續(xù)時(shí)間,默認(rèn)2秒
// 直接 self.label1.shimmerColor = [UIColor yellowColor]; 就可以修改顏色
想要看代碼的可以在這里下載到:
有bug可以反饋給我哦