如何在iPhone上为圆形设置动画,使圆弧从“0度”开始,以“360度”结束?
预先谢谢, 饱和
答案 0 :(得分:2)
您需要阅读Quartz 2D Programming Guide's section on arcs。 (我假设您正在使用Cocoa Touch API创建应用程序,而不是Web应用程序。)您还需要知道如何设置自定义动画。您必须创建自定义UIView或CALayer来执行绘图,并创建可以使用CAAnimation对象进行动画处理的属性(弧度)。或者,您可以使用NSTimer控制动画。你几乎必须掌握这些类(和其他类)来解决这个问题。
答案 1 :(得分:1)
在这里,您可以找到关于圆形动画的优秀示例代码:
答案 2 :(得分:0)
您应该阅读Felixyz提供的文档,如果您想要一个如何设置圆形动画的示例,请查看此链接link text上的MBProgressHUD
。加载器有两个模式,一个带有UIViewActivityIndicator
和一个进度指示器(一个填充圆圈,动画从0到360度)我觉得最后一种模式就是你想要的。
以下代码来自该实现的复制/粘贴动画圆圈:
- (void)drawRect:(CGRect)rect {
CGRect allRect = self.bounds;
CGRect circleRect = CGRectMake(allRect.origin.x + 2, allRect.origin.y + 2,
allRect.size.width - 4, allRect.size.height - 4);
CGContextRef context = UIGraphicsGetCurrentContext();
// Draw background
CGContextSetRGBStrokeColor(context, 1.0, 1.0, 1.0, 1.0); // white
CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 0.1); // translucent white
CGContextSetLineWidth(context, 2.0);
CGContextFillEllipseInRect(context, circleRect);
CGContextStrokeEllipseInRect(context, circleRect);
// Draw progress
float x = (allRect.size.width / 2);
float y = (allRect.size.height / 2);
CGContextSetRGBFillColor(context, 1.0, 1.0, 1.0, 1.0); // white
CGContextMoveToPoint(context, x, y);
CGContextAddArc(context, x, y, (allRect.size.width - 4) / 2, -(PI / 2),
(self.progress * 2 * PI) - PI / 2, 0);
CGContextClosePath(context); CGContextFillPath(context);
}
但请先阅读文档!希望它有所帮助