麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > iOS > 正文

iOS仿抖音視頻加載動畫效果的實現方法

2019-10-21 18:39:17
字體:
來源:轉載
供稿:網友

前言

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

上圖看成品

iOS,仿抖音,視頻,加載,動畫

實現原理

首先我創建一個視圖

@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]; //調用動畫代碼}

這里我們可以看到 我們實際上創建的是一個 1pt寬度 0.5 pt的寬度 的視圖

緊接著動畫實現的代碼

- (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; }}

完事 就這幾行代碼 搞定

其實核心的只有4行代碼

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

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

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

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

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

總結

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

最后附上demo

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美激情图区 | 草b视频在线观看 | 激情小说另类 | 欧美激情 在线播放 | 欧美成人精品欧美一级乱黄 | 亚洲成人免费网站 | 一区二区久久 | 成年人黄视频 | 毛片视频在线免费观看 | 亚洲综合视频在线播放 | av电影在线观看网址 | 久草最新在线 | 一级在线视频 | 一区二区三区日韩精品 | japanese嫩21videos| 久久在线免费视频 | 亚洲精品日韩色噜噜久久五月 | 黄网站在线观 | 久久艹综合 | 男女羞羞视频在线免费观看 | 亚洲第一色片 | 久久久久久久久久网 | 国产69精品99久久久久久宅男 | 黄色免费影片 | 久久人人av | 三人弄娇妻高潮3p视频 | 久久精品二区 | 成人三级电影网 | 欧美精品一区二区三区在线 | 精品一区二区三区免费毛片 | 亚洲国产精品久久久久婷婷老年 | 黄色片免费看看 | 国产jjizz一区二区三区视频 | 麻豆一二区 | 国产精品久久久久久久hd | av最新在线 | 久久99精品久久久久久青青日本 | 国产精品高潮视频 | 91情侣在线偷精品国产 | 一级免费观看 | 中文字幕精品一区久久久久 |