首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >旋转CAShapeLayer

旋转CAShapeLayer
EN

Stack Overflow用户
提问于 2016-11-07 19:46:56
回答 1查看 193关注 0票数 0

我在试着旋转一个CAShapeLayer

代码语言:javascript
复制
             UIBezierPath *aPath = [UIBezierPath bezierPath];
             CGFloat originx = (97.5+250);
             CGFloat originy = (205+250);
             [aPath moveToPoint:CGPointMake(originx,originy)];
             [aPath addArcWithCenter:CGPointMake(originx+15, originy-30) radius:15 startAngle:DEGREES_TO_RADIANS(180) endAngle:DEGREES_TO_RADIANS(360) clockwise:YES];
             [aPath addLineToPoint:CGPointMake(originx+30,originy)];
             CAShapeLayer *shapeLayer = [CAShapeLayer layer];
             shapeLayer.anchorPoint = CGPointMake(originx, originy);
             shapeLayer.path = [aPath CGPath];
             shapeLayer.strokeColor = [[UIColor blueColor] CGColor];
             shapeLayer.lineWidth = 3.0;
             shapeLayer.fillColor = [[UIColor blueColor] CGColor];
             [aPath closePath];
             shapeLayer.transform = CATransform3DMakeRotation(310 * M_PI/180, 0.0, 0.0, 1.0);
             [self.view.layer addSublayer:shapeLayer];

我想在形状本身内围绕一个轴旋转形状(上面的代码使我的小形状在离实际中心几百像素的轴线上旋转。

我觉得应该用这样的锚点来控制:

代码语言:javascript
复制
shapeLayer.anchorPoint = CGPointMake(originx, originy); 

但在代码中它似乎什么也做不了。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-07 19:58:16

anchorPoint相对于层的边界。你不能使用锚点放置你的层。相反,您可以将您的形状相对于零点,旋转它,并将其移动到所需的点。旋转和平移是通过变换完成的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40473356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档