圆弧/圆动画iphone(Arc / Circle animation in iphone)

2019-06-26 14:50发布

我将如何动画iPhone上的一个圆圈,使电弧开始于“0度”和“360度”结束?

先谢谢了,星期六

Answer 1:

你需要阅读的石英2D编程指南对弧段 。 (我假设你正在创建与可可触摸API,而不是一个Web应用程序的应用程序。)你还需要知道如何建立一个自定义动画。 您必须创建一个自定义的UIView或CALayer的做图,并创建一个属性(弧度),可与CAAnimation对象是动画。 或者,你可以控制使用一个NSTimer,而不是动画。 你很可能有这些类(及其他)一抓拉这一关。



Answer 2:

在这里,你可以找到关于圆动画伟大的示例代码:

http://www.iphonedevsdk.com/forum/iphone-sdk-development/24152-draw-animated-circle-iphone-using-core-graphics.html



Answer 3:

你应该阅读Felixyz提供的文件,如果你想如何动画圈为例看看在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);
}

但首先阅读文件! 希望能帮助到你



文章来源: Arc / Circle animation in iphone