标签: uibezierpath

iOS UIBezierAnimation曲线,如何创建某种弧形?

我很确定这对于之前曾经尝试过的任何人来说都是一个相当简单明了的问题,但我对你称之为"高级"动画的新手来说是一种新手.

我正在尝试使用CAKeyframeAnimation(带"位置"键路径)创建对象的以下移动

http://www.sumopaint.com/files/images800/aeegfexznpohlehd.jpg

我已经尝试使用UIBezierPath设置路径但是很快就感到困惑和沮丧而没有找到它背后的逻辑:)

如果您对此有任何意见,我很想听听......

这是我的基本代码(如果出现更好的想法,也可以从头开始编写:P)

我也希望在完成时淡出对象.是否有这样的选择器在动画完成时执行?(例如[UIView animateWithDuration])?

UIBezierPath *thumbPath = [UIBezierPath bezierPath];
[thumbPath moveToPoint: P(99,270)];
[thumbPath addCurveToPoint:P(164,260) controlPoint1:P(164,280) controlPoint2:P(164,280)];
[thumbPath addCurveToPoint:P(164,260) controlPoint1:P(260,310) controlPoint2:P(260,310)];

CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
pathAnimation.path = thumbPath.CGPath;
pathAnimation.duration = 2.0;
Run Code Online (Sandbox Code Playgroud)

iphone animation core-animation cakeyframeanimation uibezierpath

7
推荐指数
1
解决办法
2048
查看次数

如何细分UIBezierPath并将其存储在两个不同的对象中

我在应用程序中有UIBezierPath.当识别出路径上的手指触摸时,我想细分该曲线并将两条曲线存储到两个不同的对象中.因此,触摸坐标将作为一条曲线的终点和第二条曲线的起点.

再次,如果我触摸任何一条曲线,该曲线将细分为另外两条曲线,依此类推.

我搜索了很多.但找不到任何好的解决方案.

此外,我不知道是否有任何其他方法可以做到这一点.任何帮助将不胜感激.谢谢

iphone uibezierpath

7
推荐指数
1
解决办法
1583
查看次数

如何检查触摸点是否在UIBezierPath(iOS)上

我怎么知道触摸点(touchesBegan)是否在隐藏的UIBezierPath上?

objective-c touch ios uibezierpath

7
推荐指数
1
解决办法
5365
查看次数

设置剪辑UIImage的UIBezierPath的动画

我有一个看起来像甜甜圈的图像,并希望对其进行动画处理,使其看起来像圆环未完成(笔划未关闭).很难描述,但想象一下速度表达到100并且你驱动50.我已经在UIGraphicsBeginImageContextWithOptions内的路径和[path addClip]的帮助下完成了屏蔽,其中我也渲染了UIImage.

我现在的问题是,我可以或如何设置路径的动画.我尝试使用CABasicAnimation和2个路径(第一个路径,其中startAngle和endAngle是相同的,第二个路径是endAngle是所需的角度),"path"作为keyPath但是不起作用.

任何帮助;)

core-animation clipping uiimage ios uibezierpath

7
推荐指数
1
解决办法
2109
查看次数

如何使用渐变填充UIBezierPath?

我使用UIBezierPath绘制了一个图形.我可以使用纯色填充图表下方的区域,但我想用渐变而不是纯色填充图表下方的区域.但是我不确定如何使渐变仅适用于图形而不是整个视图,我已经阅读了几个问题但没有找到任何适用的问题.

在此输入图像描述

这是主要的图形绘制代码:

// Draw the graph
UIBezierPath *barGraph = [UIBezierPath bezierPath];
barGraph.lineWidth = 1.0f;
[blueColor setStroke];
TCDataPoint *dataPoint = self.testData[0];
CGFloat x = [self convertTimeToXPoint:dataPoint.time];
CGFloat y = [self convertDataToYPoint:dataPoint.dataUsage];
CGPoint plotPoint = CGPointMake(x,y);
[barGraph moveToPoint:plotPoint];
for (int ii = 1; ii < [self.testData count]; ++ii)
{
    dataPoint = self.testData[ii];
    x = [self convertTimeToXPoint:dataPoint.time];
    y = [self convertDataToYPoint:dataPoint.dataUsage];
    plotPoint = CGPointMake(x, y);
    [barGraph addLineToPoint:plotPoint];
}
[barGraph stroke];
Run Code Online (Sandbox Code Playgroud)

我一直试图通过试验下面的代码来填充图表,但老实说,尽管经历了各种教程和文档,但我并不确定我在做什么:

[barGraph closePath];

CGFloat colors [] = {
    1.0, 0.0, 0.0, 1.0,
    1.0, …
Run Code Online (Sandbox Code Playgroud)

ios uibezierpath

7
推荐指数
1
解决办法
7049
查看次数

完全删除UIBezierPath和CAShapeLayer绘制的项目

在纵向模式下(第一次绘图)

在此输入图像描述

旋转到横向后,为什么旧​​的形状:

在此输入图像描述

我正在使用UIBezierPath&CAShapeLayer在自定义UIView图层中绘制圆和线.问题是在设备旋转后能够成功绘制新的圆和线,我无法删除旧的绘制形状.在设备旋转后绘制的新形状是完美的,我只需要从屏幕上移除那些粘在屏幕上的旧形状.附图像.

drawing objective-c cashapelayer ios uibezierpath

7
推荐指数
1
解决办法
5280
查看次数

两个贝塞尔路径形状之间的动画

我发现UIImageView在两个状态之间设置动画是很棘手的:它的原始矩形框架和用a创建的新形状UIBezierPath.提到了许多不同的技术,其中大部分对我不起作用.

首先是认识到使用UIView块动画不起作用; 显然,无法在animateWithDuration:块中执行子图层动画.(见这里这里)

剩下的CAAnimation就是具体的子类CABasicAnimation.我很快就意识到,一个人不能从一个没有一个的视图中动画CAShapeLayer(例如,见这里).

并且它们不能只是任何两个形状层路径,而是"动画形状层的路径只能保证在你喜欢的时候动画"(见这里)

有了它,就会出现更普通的问题,例如使用什么fromValuetoValue(它们应该是a CAShapeLayer还是a CGPath?),将动画添加到(layer或者mask?)等等.

似乎有很多变数; 哪个组合会给我我想要的动画?

animation caanimation ios uibezierpath swift

7
推荐指数
2
解决办法
8924
查看次数

使用UIBezierPath绘制弧段

我知道有很多相关的例子UIBezierPath,但我对用于绘制弧线的角度非常困惑,我的要求就像下面的图像绘制弧线一样.长度和角度应按总数计算.

在此输入图像描述

现在我已经创建了一个绘制弧线的函数,见下文

-(void)createCircleWithStartAngle:(int)startAngle endAngle:(int)endAngle name:(NSString *)name{

    UIView *subView=_viewContainer;

    // Set up the shape of the circle
    int radius = 125;

    CAShapeLayer *circle = [CAShapeLayer layer];
    // Make a circular shape

    UIBezierPath *path=[UIBezierPath bezierPathWithArcCenter:CGPointMake(radius, radius) radius:radius startAngle:startAngle endAngle:endAngle clockwise:YES];


    circle.path = [path CGPath];


    // Center the shape in self.view
    circle.position = CGPointMake(CGRectGetMidX(subView.bounds)-radius,
                                  CGRectGetMidY(subView.bounds)-radius);


    circle.fillColor = [UIColor clearColor].CGColor;

    //making line end cap round
    circle.lineCap=kCALineCapRound;


    UIColor *strokeColor;
    if([name isEqualToString:@"A"])
        strokeColor=[UIColor darkGrayColor];
    else if([name isEqualToString:@"B"])
        strokeColor=[UIColor colorWithRed:40.0/255.0 green:180.0/255.0 blue:213.0/255.0 alpha:1.0]; …
Run Code Online (Sandbox Code Playgroud)

geometry objective-c calayer ios uibezierpath

7
推荐指数
1
解决办法
5891
查看次数

动画Bezier曲线,就像在iPhone屏幕上绘制一样

我想绘制一条泰姬陵墓葬轮廓的bezier路径.

Q1.我怎么能在XCode中绘制它?我可以轻松地在PS中做到这一点,但我发现很难在编程中以XCode方式进行,特别是获取控制点的坐标.

Q2.此外,当屏幕尺寸变化时,如何固定点的坐标?

Q3.我怎么能像看不见的铅笔画在屏幕上那样动画呢?

animation objective-c ios uibezierpath

7
推荐指数
1
解决办法
3878
查看次数

Apple为什么要为UIBezierPath翻转他们的单位圈?

在此输入图像描述

左侧的图像是典型的单位圆圈的样子.右边的那个来自文档.我还没有看到更深入的解释为什么它在网上被翻转.为什么会这样?

trigonometry core-graphics ios uibezierpath

7
推荐指数
2
解决办法
539
查看次数