iOS 틱 톡 동 영상 에 애니메이션 효 과 를 불 러 오 는 실현 방법
요 며칠 동안 계속 오픈 소스 의 틱 톡 demo 두 지 두 용 과 함께 했 습 니 다.오늘 여러분 과 공유 하 는 것 은 틱 톡 이나 빠 른 손 에 동 영상 을 불 러 오 는 애니메이션 입 니 다.이 로 딩 효 과 는 실 용적 입 니 다.다음 과 같은 말 은 많이 하지 않 겠 습 니 다.편집장 님 과 함께 공부 하 겠 습 니 다.
위의 그림 에서 완제품 을 보다.
실현 원리
우선 보 기 를 만 들 겠 습 니 다.
@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"
이 라 고 쓰 면 X,Y 와 함께 크기 를 조정 해 보 세 요.총결산
이 애니메이션 기법 은 크기 조정
@"transform.scale"
입 니 다.한 점 에서 layer 크기 조정 을 하면 로 딩 효과 가 나타 납 니 다.마지막 으로 첨부demo ( 로 컬 다운로드 )
자,이상 이 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WKWebview 비전면 자동 재생 h5 비디오 구현 방법(Swift, OC)WKWebview에서 비디오가 재생되는 h5 페이지를 불러올 때 기본적으로 사용자가 클릭해야 비디오를 재생할 수 있고 비디오가 재생될 때 전체 화면으로 재생됩니다.h5 페이지 영상이 전체 화면이 아닌 자동으로 재생되...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.