生活随笔
收集整理的這篇文章主要介紹了
沿着path路径做动画
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
沿著path路徑做動畫
?
路徑
?
效果
?
源碼
//
// ViewController.m
// PathAnimation
//
// Created by YouXianMing on 16/1/26.
// Copyright ? 2016年 YouXianMing. All rights reserved.
//#import "ViewController.h"@interface ViewController ()@property (nonatomic) CGPoint startPoint;
@property (nonatomic) CGPoint endPoint;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// 起始點 結束點self.startPoint = CGPointMake(0, 150);self.endPoint = CGPointMake(160, 150);// 初始化viewUIButton *redButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 10, 10)];redButton.center = self.startPoint;redButton.backgroundColor = [UIColor redColor];[redButton addTarget:self action:@selector(buttonEvent) forControlEvents:UIControlEventTouchUpInside];[self.view addSubview:redButton];// CAKeyframeAnimationCAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position"];animation.path = [self path].CGPath;animation.duration = 2.f;animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];redButton.center = self.endPoint;[redButton.layer addAnimation:animation forKey:nil];
}- (UIBezierPath *)path {UIBezierPath* bezierPath = [UIBezierPath bezierPath];[bezierPath moveToPoint: self.startPoint];[bezierPath addLineToPoint: CGPointMake(68, 150)];[bezierPath addLineToPoint: CGPointMake(83, 107)];[bezierPath addLineToPoint: CGPointMake(96, 206)];[bezierPath addLineToPoint: CGPointMake(102, 150)];[bezierPath addLineToPoint: CGPointMake(116, 150)];[bezierPath addLineToPoint: CGPointMake(127, 82)];[bezierPath addLineToPoint: CGPointMake(143, 213)];[bezierPath addLineToPoint: self.endPoint];return bezierPath;
}- (void)buttonEvent {// todo
}@end
細節
?
效果
?
源碼
?
//
// ViewController.m
// PathAnimation
//
// Created by YouXianMing on 16/1/26.
// Copyright ? 2016年 YouXianMing. All rights reserved.
//#import "ViewController.h"@interface ViewController ()@property (nonatomic) CGPoint startPoint;
@property (nonatomic) CGPoint endPoint;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// 起始點 結束點self.startPoint = CGPointMake(0, 150);self.endPoint = CGPointMake(160, 150);// 初始化viewUIButton *redButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 10, 10)];redButton.center = self.startPoint;redButton.backgroundColor = [UIColor redColor];[redButton addTarget:self action:@selector(buttonEvent) forControlEvents:UIControlEventTouchUpInside];[self.view addSubview:redButton];// CAKeyframeAnimationCAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position"];animation.path = [self path].CGPath;animation.duration = 2.f;animation.autoreverses = true;animation.repeatCount = CGFLOAT_MAX;animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];[redButton.layer addAnimation:animation forKey:nil];
}- (UIBezierPath *)path {UIBezierPath* bezierPath = [UIBezierPath bezierPath];[bezierPath moveToPoint: self.startPoint];[bezierPath addLineToPoint: CGPointMake(68, 150)];[bezierPath addLineToPoint: CGPointMake(83, 107)];[bezierPath addLineToPoint: CGPointMake(96, 206)];[bezierPath addLineToPoint: CGPointMake(102, 150)];[bezierPath addLineToPoint: CGPointMake(116, 150)];[bezierPath addLineToPoint: CGPointMake(127, 82)];[bezierPath addLineToPoint: CGPointMake(143, 213)];[bezierPath addLineToPoint: self.endPoint];return bezierPath;
}- (void)buttonEvent {// todo
}@end
細節
總結
以上是生活随笔為你收集整理的沿着path路径做动画的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。