草庐IT

CAshapeLayer

全部标签

iphone - 如何使用 CAShapeLayer 绘制图形?

是否可以使用CAShapeLayer仅绘制具有给定线宽的曲线?它似乎只能绘制填充形状。我想画一个动画图。只是一条线,不是形状。 最佳答案 好吧,看来你实际上可以用CAShapeLayers画线。尝试这样的事情:UIBezierPath*graphPath=[UIBezierPathbezierPath];[graphPathmoveToPoint:CGPointMake(x,y)];[graphPathaddLineToPoint:CGPointMake(x,y+h)];[graphPathclosePath];然后把它放在一个CA

ios - 单边角的反向 UIBezierPath

我想创建一个mask路径,其最终输出将是一个带有凹面的角。我使用-bezierPathWithRoundedRect:byRoundingCorners:cornerRadii:方法创建了一个UIBezierPath并指定只有一个角需要圆角(在这个例子中,UIRectCornerBottomLeft),我认为通过反转这条路径,我应该首先得到被削减的部分。为此,我正在尝试-bezierPathByReversingPath但它似乎没有任何区别(有或没有因为我得到的是正常的bezier路径而不是反向)这是我目前尝试过的:UIView*vwTest=[[UIViewalloc]init];[

ios - CAShapeLayer 动画不会停留在屏幕上而是消失

我正在尝试绘制一个动画圆圈,但每个部分都需要另一种颜色。现在一切正常,只是在我再次调用该方法之前刚刚绘制的作品消失了,所以只剩下最后一部分。我不想要那个,我想要在4次之后用不同颜色的笔触绘制一个完整的圆圈。如何解决这个问题使其不消失?这是我的初始化代码:-(void)_initCircle{_circle=[CAShapeLayerlayer];_radius=100;//Makeacircularshape_circle.path=[UIBezierPathbezierPathWithRoundedRect:CGRectMake(0,0,2.0*_radius,2.0*_radius

iOS:CAShapeLayer路径转换

在对路径进行基本转换之前,我使用了CAShapeLayer-从较小的圆圈到较大的圆圈。很好,但后来我试着把三角形变成圆形;它有效,但转变很奇怪。换句话说,从一种形状到另一种形状,在形成最终形状之前,它会“翻转”、“扭曲”。对于相同的形状,没有问题——从一个圆到一个圆——但是对于不同的形状,变换很奇怪。我想知道这是否是预期的方式?或者是否有其他技巧或解决方法,我们可以使用CAShapeLayer将一种形状按比例平滑地转换为另一种不同的形状(或者是否有其他方法可以做到这一点;它不一定是CAShape层)?提前致谢。 最佳答案 通过仔细选

ios - CoreAnimation 性能分析 - CAReplicatorLayer 和 CAShapeLayer

我正在制作一个依赖于CoreAnimation的应用程序。它有一个CAReplicatorLayer和一个CAShapeLayer作为子层。当进行12次复制然后设置路径动画(在touchMoved上更改它)时,一旦图形在屏幕上变大(大约12-20fps),FPS就会显着降低。时间分析器显示大约10%的CPU使用率,OpenGLES驱动程序分析器报告大约90-97%的“渲染利用率”和40-50%的“瓷砖利用率”。本指南解释了这两个词,但没有很详细。谁能解释一下这两个到底是什么?AppleDocs显然高渲染利用率是问题所在,那么我可以做些什么来提高性能? 最佳答

ios - 如何旋转包含UIBezierPath的CAShapeLayer?

Thisquestionalreadyhasanswershere:Closed7yearsago.PossibleDuplicate:RotateCGPathwithoutchangingitsposition我搜索并测试了各种代码几个小时,但无法正常工作。我在CAShapeLayer的随机位置处添加了任意UIBezierPath,该对象已添加到视图中。我需要旋转路径,以便可以处理设备旋转。我可以旋转图层而不是路径。我只需要旋转结果。我已经有了通过缩放和转换来处理贝塞尔曲线路径的方法。效果很好,但是现在我只需要向左或向右旋转90度即可。有关如何执行此操作的任何建议?基本代码:UIBe

iphone - 绘图线的优化,CAShapeLayer 的可能替代品

我需要在屏幕上绘制多条线(在50-75范围内),目前使用以下功能,效果很好。在用下面的代码绘制了40-50行之后,应用程序在我的iPhone4中明显变慢了。为了优化,我尝试删除线条阴影,但它仍然没有像我想要的那样流畅地运行。我需要优化下面的代码,我的第一个想法是用.png线条图像替换cashapelayers。但是新的方法应该支持线的旋转,异长同宽的线,以及绘图的动画(我觉得用cgaffinetransforms做的很多)。有什么想法可以帮助我吗?+(CAShapeLayer*)drawLineOnView:(UIView*)viewBetweenPoint1:(CGPoint)poi

objective-c - 使用 CABasicAnimation 为 CAShapeLayer 的 strokeColor 设置动画

使用thisprevious中的答案,我未能在CAShapeLayer上设置闪烁笔画的动画效果线程,经过多次搜索后,我找不到使用CABasicAnimation为笔画设置动画的其他示例。我想要做的是让我的CAShapeLayer脉冲在两种颜色之间。将CABasicAnimation用于不透明度效果很好,但[CABasicAnimationanimationWithKeyPath:@"strokeColor"]让我望而却步,我很感激任何关于如何成功实现的建议。CABasicAnimation*strokeAnim=[CABasicAnimationanimationWithKeyPath

ios - 如何在中心点旋转 CAShapeLayer

我通过将描边颜色设置为红色制作了一个带有几个点的CAShapeLayer。然后我用UIImage的图案填充颜色。我想使用UIRotationGestureRecognizer旋转CAShapeLayer及其填充图案。我使用了CATransform3DRotate,但它无法正常工作。CATransform3Dtransform=CATransform3DIdentity;transform=CATransform3DRotate(transform,recognizer.rotation,0.0,0.0,1.0);shapeLayer.transform=transform;提前致谢

将Uicolor与CashApelayer一起使用

我将RGB颜色传递给shapeLayer.fillColor和shapeLayer.strokeColor,我的代码正在崩溃。这是我尝试的:letshapeLayer=CAShapeLayer()shapeLayer.fillColor=(UIColor(red:57,green:65,blue:101,alpha:1)as!CGColor)shapeLayer.strokeColor=(UIColor(red:57,green:65,blue:101,alpha:1)as!CGColor)如果我将RGB颜色写为:UIColor(red:57,green:65,blue:101,alpha:1