各位親愛的朋友們,你們每天解鎖iPhone,看到底部“滑動來解鎖”這個效果,難道不好奇麼???那麼好學的博主,今天在github上看到個庫,facebook搞的,非常簡單
的API就能完成你們看到的效果,這麼酷炫掉渣天的效果,寫出來拿給別人裝裝B那是再
不BB了,先給你們facebook的庫 傳送門:點擊打開鏈接
老規矩,看圖說話:

我去,這配圖,我自己都覺得好看,我給滿分,覺得好看的各位希望能給我頂一下
開始介紹
博主也是第一次嘗試寫這個東西,先來個Label玩玩
首先,導入庫
platform:ios,'7.0'
target 'FaceBookShimmer' do
pod 'Shimmer'
end
然後就開始撸代碼
先展示上圖中的三個Label 代碼從上直下也是這個順序
self.imageView = [[UIImageView alloc] init];
self.imageView.frame = self.view.bounds;
self.imageView.image = [UIImage imageNamed:@"Greg-Rakozy-1400x725.jpg"];
self.imageView.contentMode = UIViewContentModeScaleAspectFill;
[self.view addSubview:self.imageView];
// UIVisualEffectView *effectView = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]];
// effectView.frame = self.view.bounds;
// [self.imageView addSubview:effectView];
self.shimmeringView = [[FBShimmeringView alloc] initWithFrame:CGRectMake(0, 300, 375, 120)];
self.shimmeringView.shimmering = YES;
self.shimmeringView.shimmeringOpacity = 0.2;
self.shimmeringView.shimmeringBeginFadeDuration = 0.5;
self.shimmeringView.shimmeringSpeed = 200;
self.shimmeringView.shimmeringAnimationOpacity = 1.0;
[self.view addSubview:self.shimmeringView];
self.shimmerLabel = [[UILabel alloc] initWithFrame:self.shimmeringView.bounds];
self.shimmerLabel.text = @"JUST LIKE A DOG";
self.shimmerLabel.textColor = [UIColor whiteColor];
self.shimmerLabel.textAlignment = NSTextAlignmentCenter;
self.shimmerLabel.font = [UIFont fontWithName:@"HelveticaNeue-UltraLight" size:40.0];
self.shimmerLabel.backgroundColor = [UIColor clearColor];
self.shimmeringView.contentView = self.shimmerLabel;
self.shimmeringView2 = [[FBShimmeringView alloc] initWithFrame:CGRectMake(0, 100, 375, 120)];
self.shimmeringView2.shimmering = YES;
self.shimmeringView2.shimmeringOpacity = 0;
self.shimmeringView2.shimmeringBeginFadeDuration = 0.3;
self.shimmeringView2.shimmeringEndFadeDuration = 2;
self.shimmeringView2.shimmeringAnimationOpacity = 0.6;
[self.view addSubview:self.shimmeringView2];
self.shimmerLabel2 = [[UILabel alloc] initWithFrame:self.shimmeringView2.bounds];
self.shimmerLabel2.text = @"落霞與孤鹜齊飛";
self.shimmerLabel2.textColor = [UIColor redColor];
self.shimmerLabel2.textAlignment = NSTextAlignmentCenter;
self.shimmerLabel2.font = [UIFont boldSystemFontOfSize:40];
self.shimmerLabel2.backgroundColor = [UIColor clearColor];
self.shimmeringView2.contentView = self.shimmerLabel2;
self.shimmeringView3 = [[FBShimmeringView alloc] initWithFrame:CGRectMake(0, 200, 375, 120)];
self.shimmeringView3.shimmering = YES;
self.shimmeringView3.shimmeringOpacity = 0;
self.shimmeringView3.shimmeringDirection = FBShimmerDirectionLeft;
self.shimmeringView3.shimmeringBeginFadeDuration = 0.3;
self.shimmeringView3.shimmeringSpeed = 150;
[self.view addSubview:self.shimmeringView3];
self.shimmerLabel3 = [[UILabel alloc] initWithFrame:self.shimmeringView2.bounds];
self.shimmerLabel3.text = @"秋水共長天一色";
self.shimmerLabel3.textColor = [UIColor colorWithRed:255/255.0 green:194/255.0 blue:1/255.0 alpha:1];
self.shimmerLabel3.textAlignment = NSTextAlignmentCenter;
self.shimmerLabel3.font = [UIFont boldSystemFontOfSize:40];
self.shimmerLabel3.backgroundColor = [UIColor clearColor];
self.shimmeringView3.contentView = self.shimmerLabel3;
//! @abstract Set this to YES to start shimming and NO to stop. Defaults to NO.
// 是否閃爍
//@property (nonatomic, assign, readwrite, getter = isShimmering) BOOL shimmering;
//! @abstract The time interval between shimmerings in seconds. Defaults to 0.4.
// 兩次閃爍之間的間隔
//@property (assign, nonatomic, readwrite) CFTimeInterval shimmeringPauseDuration;
//! @abstract The opacity of the content while it is shimmering. Defaults to 1.0.
// 閃爍時動畫的透明度 1.0就是原始亮度 0-1之間隨意選擇
//@property (assign, nonatomic, readwrite) CGFloat shimmeringAnimationOpacity;
//! @abstract The opacity of the content before it is shimmering. Defaults to 0.5.
// 閃爍前的透明度,例如默認0.5,那麼和上面那個參數對比下,就是0.5-1之間閃爍
//@property (assign, nonatomic, readwrite) CGFloat shimmeringOpacity;
//! @abstract The speed of shimmering, in points per second. Defaults to 230.
// 閃爍的速度
//@property (assign, nonatomic, readwrite) CGFloat shimmeringSpeed;
//! @abstract The highlight length of shimmering. Range of [0,1], defaults to 0.33.
// 閃爍過去的時候那條線的寬度 0 - 1之間的浮點數切換
//@property (assign, nonatomic, readwrite) CGFloat shimmeringHighlightLength;
//! @abstract @deprecated Same as "shimmeringHighlightLength", just for downward compatibility
// 和上面類似
//@property (assign, nonatomic, readwrite, getter = shimmeringHighlightLength, setter = setShimmeringHighlightLength:) CGFloat shimmeringHighlightWidth;
//! @abstract The direction of shimmering animation. Defaults to FBShimmerDirectionRight.
// 閃爍的方向,這個枚舉有上下左右四個方向
//@property (assign, nonatomic, readwrite) FBShimmerDirection shimmeringDirection;
//! @abstract The duration of the fade used when shimmer begins. Defaults to 0.1.
// 開始閃爍的時間間隔
//@property (assign, nonatomic, readwrite) CFTimeInterval shimmeringBeginFadeDuration;
//! @abstract The duration of the fade used when shimmer ends. Defaults to 0.3.
// 結束閃爍的時間間隔
//@property (assign, nonatomic, readwrite) CFTimeInterval shimmeringEndFadeDuration;
/**
@abstract The absolute CoreAnimation media time when the shimmer will fade in.
@discussion Only valid after setting {@ref shimmering} to NO.
*/
// 閃爍到shimmeringAnimationOpacity的時候fade需要多久
//@property (assign, nonatomic, readonly) CFTimeInterval shimmeringFadeTime;
- (instancetype)init
{
self = [super init];
if (nil != self) {
// default configuration
_shimmeringPauseDuration = 0.4;
_shimmeringSpeed = 230.0;
_shimmeringHighlightLength = 1.0;
_shimmeringAnimationOpacity = 0.5;
_shimmeringOpacity = 1.0;
_shimmeringDirection = FBShimmerDirectionRight;
_shimmeringBeginFadeDuration = 0.1;
_shimmeringEndFadeDuration = 0.3;
}
return self;
}
看到這裡,大家有沒有發現可以在項目中用到哪裡呢?我是覺得可以用到這裡,給頭像加
一層閃爍,把_shimmingPauseDuration的默認值改為20秒或者各位隨意

有想法就試試呗,代碼如下
// 給圖片加一個shimming
// 初始化
self.shimmeringView4 = [[FBShimmeringView alloc] initWithFrame:CGRectMake(140, 400, 80, 80)];
// 是否閃爍
self.shimmeringView4.shimmering = YES;
// 閃爍之前的透明度
self.shimmeringView4.shimmeringOpacity = 1;
// 從哪個方向閃爍
self.shimmeringView4.shimmeringDirection = FBShimmerDirectionLeft;
// 開始閃爍的時間
self.shimmeringView4.shimmeringBeginFadeDuration = 0.3;
// 一次周期的時間間隔
self.shimmeringView4.shimmeringPauseDuration = 3;
// 0-1之間,閃爍的線條間隔 由於給圖片加,那麼就要粗一點,好看點
self.shimmeringView4.shimmeringHighlightWidth = 0.9;
// 閃爍速度
self.shimmeringView4.shimmeringSpeed = 150;
self.shimmeringView4.layer.cornerRadius = 40;
self.shimmeringView4.clipsToBounds = YES;
self.shimmeringView4.backgroundColor = [UIColor whiteColor];
[self.view addSubview:self.shimmeringView4];
self.headImageView = [[UIImageView alloc] initWithFrame:self.shimmeringView4.bounds];
self.headImageView.image = [UIImage imageNamed:@"photo-1433878455169-4698e60005b1-1400x933.jpeg"];
self.headImageView.contentMode = UIViewContentModeScaleToFill;
self.headImageView.layer.cornerRadius = 40;
self.headImageView.clipsToBounds = YES;
// 用imageView加載到shimmering裡面
self.shimmeringView4.contentView = self.headImageView;
self.shimmeringView4.backgroundColor = [UIColor whiteColor];改方法默認是灰色的,這個閃爍的浮層就是灰色的,顏
色可以自己更改成喜歡的顏色,一般白色就很酷炫了
self.shimmeringView4.shimmeringHighlightWidth = 0.9;0-1之間,閃爍的線條間隔由於給圖片加,那麼就要粗一點,
篇幅大一點大氣點
正如官方所說
Shimmer is an easy way to add a shimmering effect to any view in your app. It's useful as an unobtrusive loading indicator.
Shimmer was originally developed to show loading status inPaper.
對了,突然想到一點,可以用來做預加載指示器啊,各位可以嘗試下,這裡就不介紹了
Demo地址:https://github.com/DeftMKJ/FACEBOOKShimming
OVER ~~~~~~