我很确定这对于之前曾经尝试过的任何人来说都是一个相当简单明了的问题,但我对你称之为"高级"动画的新手来说是一种新手.
我正在尝试使用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
我在应用程序中有UIBezierPath.当识别出路径上的手指触摸时,我想细分该曲线并将两条曲线存储到两个不同的对象中.因此,触摸坐标将作为一条曲线的终点和第二条曲线的起点.
再次,如果我触摸任何一条曲线,该曲线将细分为另外两条曲线,依此类推.
我搜索了很多.但找不到任何好的解决方案.
此外,我不知道是否有任何其他方法可以做到这一点.任何帮助将不胜感激.谢谢
我怎么知道触摸点(touchesBegan)是否在隐藏的UIBezierPath上?
我有一个看起来像甜甜圈的图像,并希望对其进行动画处理,使其看起来像圆环未完成(笔划未关闭).很难描述,但想象一下速度表达到100并且你驱动50.我已经在UIGraphicsBeginImageContextWithOptions内的路径和[path addClip]的帮助下完成了屏蔽,其中我也渲染了UIImage.
我现在的问题是,我可以或如何设置路径的动画.我尝试使用CABasicAnimation和2个路径(第一个路径,其中startAngle和endAngle是相同的,第二个路径是endAngle是所需的角度),"path"作为keyPath但是不起作用.
任何帮助;)
我使用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) 在纵向模式下(第一次绘图)
旋转到横向后,为什么旧的形状:
我正在使用UIBezierPath
&CAShapeLayer
在自定义UIView
图层中绘制圆和线.问题是在设备旋转后能够成功绘制新的圆和线,我无法删除旧的绘制形状.在设备旋转后绘制的新形状是完美的,我只需要从屏幕上移除那些粘在屏幕上的旧形状.附图像.
我发现UIImageView
在两个状态之间设置动画是很棘手的:它的原始矩形框架和用a创建的新形状UIBezierPath
.提到了许多不同的技术,其中大部分对我不起作用.
首先是认识到使用UIView块动画不起作用; 显然,无法在animateWithDuration:
块中执行子图层动画.(见这里和这里)
剩下的CAAnimation
就是具体的子类CABasicAnimation
.我很快就意识到,一个人不能从一个没有一个的视图中动画CAShapeLayer
(例如,见这里).
并且它们不能只是任何两个形状层路径,而是"动画形状层的路径只能保证在你喜欢的时候动画"(见这里)
有了它,就会出现更普通的问题,例如使用什么fromValue
和toValue
(它们应该是a CAShapeLayer
还是a CGPath
?),将动画添加到(layer
或者mask
?)等等.
似乎有很多变数; 哪个组合会给我我想要的动画?
我知道有很多相关的例子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) 我想绘制一条泰姬陵墓葬轮廓的bezier路径.
Q1.我怎么能在XCode中绘制它?我可以轻松地在PS中做到这一点,但我发现很难在编程中以XCode方式进行,特别是获取控制点的坐标.
Q2.此外,当屏幕尺寸变化时,如何固定点的坐标?
Q3.我怎么能像看不见的铅笔画在屏幕上那样动画呢?
uibezierpath ×10
ios ×8
objective-c ×4
animation ×3
iphone ×2
caanimation ×1
calayer ×1
cashapelayer ×1
clipping ×1
drawing ×1
geometry ×1
swift ×1
touch ×1
trigonometry ×1
uiimage ×1