国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > iOS > 正文

iOS仿抖音視頻加載動畫效果的實(shí)現(xiàn)方法

2020-07-26 02:22:41
字體:
供稿:網(wǎng)友

前言

這幾天一直跟開源的抖音demo斗智斗勇,今天跟大家分享的是抖音中或者快手中加載視頻的動畫,這個加載效果還是挺實(shí)用,下面話不多說了,來隨著小編一起學(xué)習(xí)學(xué)習(xí)吧

上圖看成品

實(shí)現(xiàn)原理

首先我創(chuàng)建一個視圖

@interface ViewController ()@property (nonatomic, strong) UIView *playLoadingView;@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad];  //init player status bar self.playLoadingView = [[UIView alloc]init]; self.playLoadingView.backgroundColor = [UIColor whiteColor]; [self.playLoadingView setHidden:YES]; [self.view addSubview:self.playLoadingView];  //make constraintes [self.playLoadingView mas_makeConstraints:^(MASConstraintMaker *make) { make.center.equalTo(self.view); make.width.mas_equalTo(1.0f); //寬 1 dp make.height.mas_equalTo(0.5f); //高 0.5 dp }];  [self startLoadingPlayAnimation:YES]; //調(diào)用動畫代碼}

這里我們可以看到 我們實(shí)際上創(chuàng)建的是一個 1pt寬度 0.5 pt的寬度 的視圖

緊接著動畫實(shí)現(xiàn)的代碼

- (void)startLoadingPlayAnimation:(BOOL)isStart { if (isStart) { self.playLoadingView.backgroundColor = [UIColor whiteColor]; self.playLoadingView.hidden = NO; [self.playLoadingView.layer removeAllAnimations];  CAAnimationGroup *animationGroup = [[CAAnimationGroup alloc] init]; animationGroup.duration = 0.5; animationGroup.beginTime = CACurrentMediaTime() + 0.5; animationGroup.repeatCount = MAXFLOAT; animationGroup.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];  CABasicAnimation *scaleAnimation = [CABasicAnimation animation]; scaleAnimation.keyPath = @"transform.scale.x"; scaleAnimation.fromValue = @(1.0f); scaleAnimation.toValue = @(1.0f * ScreenWidth);  CABasicAnimation *alphaAnimation = [CABasicAnimation animation]; alphaAnimation.keyPath = @"opacity"; alphaAnimation.fromValue = @(1.0f); alphaAnimation.toValue = @(0.5f);  [animationGroup setAnimations:@[scaleAnimation, alphaAnimation]]; [self.playLoadingView.layer addAnimation:animationGroup forKey:nil]; } else { [self.playLoadingView.layer removeAllAnimations]; self.playLoadingView.hidden = YES; }}

完事 就這幾行代碼 搞定

其實(shí)核心的只有4行代碼

CABasicAnimation *scaleAnimation = [CABasicAnimation animation];scaleAnimation.keyPath = @"transform.scale.x";scaleAnimation.fromValue = @(1.0f);scaleAnimation.toValue = @(1.0f * ScreenWidth);

關(guān)鍵在scaleAnimation.keyPath = @"transform.scale.x"; 這里我們要沿著x做縮放

縮放的得值從 1~屏幕寬度, 當(dāng)然值多大自己可以控制.

如果@"transform.scale.y" 則是沿著Y軸縮放

當(dāng)然 如果寫成@"transform.scale" 那就X,Y 一起縮放 大家可以試試.

總結(jié)

本篇的動畫技巧是 縮放的 transform.scale.y 從一個點(diǎn) 做layer縮放 就會出現(xiàn) 加載效果.

最后附上demo (本地下載)

好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對武林網(wǎng)的支持。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 婺源县| 安远县| 永平县| 景宁| 甘洛县| 房产| 庄河市| 周至县| 威信县| 两当县| 固原市| 礼泉县| 盖州市| 宜州市| 车险| 汉川市| 榆林市| 乐亭县| 益阳市| 南京市| 宜昌市| 阿合奇县| 九寨沟县| 承德市| 广平县| 黄大仙区| 柞水县| 酒泉市| 江油市| 宜兴市| 乐都县| 山西省| 晋宁县| 万年县| 朝阳区| 桐乡市| 成都市| 公安县| 睢宁县| 达孜县| 诏安县|