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

首頁 > 系統 > iOS > 正文

iOS利用UIBezierPath + CAAnimation實現路徑動畫效果

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

前言

上次給大家介紹了iOS利用UIBezierPath + CAAnimation實現心跳動畫效果的相關內容,今天實現一個根據心跳路徑實現一個路徑動畫,讓某一視圖沿著路徑進行運動.。

效果圖如下:

caanimation,動畫,ios,uibezierpath,路徑動畫

核心代碼

1-首先通過 drawRect 繪制心形路徑

- (void)drawRect:(CGRect)rect { // Drawing code // 初始化UIBezierPath UIBezierPath *path = [UIBezierPath bezierPath]; // 首先設置一個起始點 CGPoint startPoint = CGPointMake(rect.size.width/2, 120); // 以起始點為路徑的起點 [path moveToPoint:startPoint]; // 設置一個終點 CGPoint endPoint = CGPointMake(rect.size.width/2, rect.size.height-40); // 設置第一個控制點 CGPoint controlPoint1 = CGPointMake(100, 20); // 設置第二個控制點 CGPoint controlPoint2 = CGPointMake(0, 180); // 添加三次貝塞爾曲線 [path addCurveToPoint:endPoint controlPoint1:controlPoint1 controlPoint2:controlPoint2]; // 設置另一個起始點 [path moveToPoint:endPoint]; // 設置第三個控制點 CGPoint controlPoint3 = CGPointMake(rect.size.width-100, 20); // 設置第四個控制點 CGPoint controlPoint4 = CGPointMake(rect.size.width, 180); // 添加三次貝塞爾曲線 [path addCurveToPoint:startPoint controlPoint1:controlPoint4 controlPoint2:controlPoint3]; // 設置線寬 path.lineWidth = 3; // 設置線斷面類型 path.lineCapStyle = kCGLineCapRound; // 設置連接類型 path.lineJoinStyle = kCGLineJoinRound; // 設置畫筆顏色 [[UIColor redColor] set]; [path stroke];}

2-添加心形路徑View到主視圖

 HeartView *heart = [[HeartView alloc] init]; heart.frame = CGRectMake(0, 0, Screen_Width, Screen_Height-Screen_Height); [self.view addSubview:heart];

3-給動畫視圖(紅色圓形視圖)添加軌跡路徑動畫

 CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position"]; // 設置動畫的路徑為心形路徑 animation.path = self.path.CGPath; // 動畫時間間隔 animation.duration = 3.0f; // 重復次數為最大值 animation.repeatCount = FLT_MAX; animation.removedOnCompletion = NO; animation.fillMode = kCAFillModeForwards; // 將動畫添加到動畫視圖上 [_demoView.layer addAnimation:animation forKey:nil];

總結

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


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 榆中县| 昌黎县| 武川县| 原平市| 嵊州市| 大同市| 定日县| 丹阳市| 柳江县| 江都市| 林州市| 青铜峡市| 丹江口市| 濮阳市| 南雄市| 平顶山市| 象山县| 涿州市| 靖边县| 宜都市| 台安县| 册亨县| 托克托县| 昂仁县| 华池县| 安乡县| 蕉岭县| 新邵县| 平邑县| 黄山市| 光山县| 建宁县| 兴和县| 隆德县| 山西省| 得荣县| 应用必备| 金平| 铜陵市| 开封市| 清新县|