如何在iOS中的循环path上animation标签?

在我看来,我被卡在animationuiLabel。

其实我只是想让我的标签/文字在圆形path上animation。 我在互联网上search了很多,但找不到任何好的教程或例子,像我的问题。 我做了CAShapeLayer(圆)从0增加到最大值….

同样,我希望我的标签/文本从圆形path的初始点开始移动,并在完成一个圆后返回到初始点。

希望我已经相当准确地解释了我的问题……如果有什么遗漏或不可理解的话。 请问我。

感谢预期。

您好iOmi我只是谷歌它,我发现最好的问题类似你的这个

贝娄这是一个金的答案希望它可以帮助你

CAShapeLayer* circle = [[CAShapeLayer alloc] init]; CGMutablePathRef path = CGPathCreateMutable(); CGRect textRect = CGRectMake(self.view.bounds.size.width/4, (self.view.bounds.size.height-self.view.bounds.size.width/2)/2, self.view.bounds.size.width/2, self.bounds.size.width/2); float midX = CGRectGetMidX(textRect); float midY = CGRectGetMidY(textRect); CGAffineTransform t = CGAffineTransformConcat( CGAffineTransformConcat( CGAffineTransformMakeTranslation(-midX, -midY), CGAffineTransformMakeRotation(-1.57079633/0.99)), CGAffineTransformMakeTranslation(midX, midY)); CGPathAddEllipseInRect(path, &t, textRect); circle.path = path; circle.frame = self.bounds; circle.fillColor = [UIColor clearColor].CGColor; circle.strokeColor = [UIColor blackColor].CGColor; circle.lineWidth = 60.0f; [self.layer addSublayer:circle]; CABasicAnimation* animation = [CABasicAnimation animationWithKeyPath:@"strokeEnd"]; animation.duration = 15.0f; animation.fromValue = [NSNumber numberWithFloat:0.0f]; animation.toValue = [NSNumber numberWithFloat:1.0f]; animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; [circle addAnimation:animation forKey:@"strokeEnd"]; [circle release]; UILabel* label = [[UILabel alloc] init]; label.text = @"Test Text"; label.font = [UIFont systemFontOfSize:20.0f]; label.center = CGPathGetCurrentPoint(path); label.transform = CGAffineTransformMakeRotation(1.57079633); [label sizeToFit]; [self.layer addSublayer:label.layer]; CAKeyframeAnimation* textAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"]; textAnimation.duration = 15.0f; textAnimation.path = path; textAnimation.rotationMode = kCAAnimationRotateAuto; textAnimation.calculationMode = kCAAnimationCubicPaced; textAnimation.removedOnCompletion = NO; [label.layer addAnimation:textAnimation forKey:@"position"]; 

我只是创build一个演示它的屏幕截图是: –

在这里输入图像说明

这里是DEMO LINK

http://www.sendspace.com/file/dq5i1e