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

首頁 > 系統 > iOS > 正文

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

2020-02-19 15:45:01
字體:
來源:轉載
供稿:網友

不管是安卓系統開發,還是IOS開發,現在都以動圖為主,本文是武林技術頻道小編帶給大家的iOS利用UIBezierPath + CAAnimation實現路徑動畫效果,一起來來看看吧!

效果圖如下:

核心代碼

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];

以上就是武林技術頻道小編介紹的關于iOS利用UIBezierPath + CAAnimation實現路徑動畫效果,相信通過介紹大家更加了解,歡迎大家隨時關注js.Vevb.com。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桦南县| 双牌县| 青海省| 呼伦贝尔市| 轮台县| 陇南市| 太康县| 谢通门县| 辰溪县| 东兴市| 安平县| 泌阳县| 沂南县| 滕州市| 荔浦县| 六盘水市| 始兴县| 门头沟区| 林芝县| 桦甸市| 东乌珠穆沁旗| 鄂托克前旗| 当涂县| 澜沧| 固镇县| 晋城| 龙州县| 高淳县| 武陟县| 鲁甸县| 镇康县| 定安县| 汶上县| 凤凰县| 关岭| 古丈县| 玉林市| 廊坊市| 盐亭县| 荥阳市| 尼勒克县|