- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一些带有 drawrect 代码的 UIView 用于绘制饼图:
- (void)drawRect:(CGRect)rect
{
CGRect parentViewBounds = self.bounds;
CGFloat x = CGRectGetWidth(parentViewBounds)/2;
CGFloat y = CGRectGetHeight(parentViewBounds)/2;
// Get the graphics context and clear it
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextClearRect(ctx, rect);
// define line width
CGContextSetLineWidth(ctx, 4.0);
CGContextSetFillColor(ctx, CGColorGetComponents( [someColor CGColor]));
CGContextMoveToPoint(ctx, x, y);
CGContextAddArc(ctx, x, y, 100, radians(270), radians(270), 0); // 27
CGContextClosePath(ctx);
CGContextFillPath(ctx);
}
但是当我尝试在绘制后为“endAngle”属性设置动画时,它不起作用:
CABasicAnimation *theAnimation;
theAnimation=[CABasicAnimation animationWithKeyPath:@"endAngle"];
theAnimation.duration=1;
theAnimation.repeatCount=1;
theAnimation.autoreverses=NO;
theAnimation.fromValue=[NSNumber numberWithFloat:270];
theAnimation.toValue=[NSNumber numberWithFloat:60];
[[self.layer presentationLayer] addAnimation:theAnimation forKey:@"animateLayer"];
我哪里出错了?
最佳答案
如果你想制作动画,那么你应该考虑使用 Core Animation 进行绘图。它使动画变得更加简单。
看看this great tutorial on making a custom animatable pie chart with Core Animation .我相信您可以修改它以获得您想要的。
如果你觉得它很复杂,那么你可以看看 my answer至 "Draw part of a circle"它通过画一个非常宽的圆圈来绘制饼图形状。
关于iphone - 使用 CABasicAnimation 为 Circle 的 endAngle 设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12787582/
如何使用 easeljs 为圆弧的 endAngle 设置动画 我尝试通过 pie.setMyAngle = 0.1; 创建我自己的属性,然后在 tick 中递增它,但这没有用 function in
对于具有除默认值 (360) 以外的任何 endAngle 的极坐标图表,x 轴标签消失 没有 endAngle 的作品:http://jsfiddle.net/qs5v601b/1/ $(funct
我只是在玩这个演示并自己重新创建它:http://bl.ocks.org/mbostock/5100636 我可以定义一个新的 endAngle,它会很好地设置动画,但现在我也尝试设置 startAn
我已经使用 start 和 endAngle 渲染了 svg 圆。它工作得很好。但是当我渲染完整的圆(startAngle 为 70 和 endAngle 为 70)时,输出有很大的不同(0、90、1
我有一些带有 drawrect 代码的 UIView 用于绘制饼图: - (void)drawRect:(CGRect)rect { CGRect parentView
我想获得旭日示例中每个弧的开始和结束角度,如 http://bl.ocks.org/4063423 : 最佳答案 你可以在代码中看到它们: var arc = d3.svg.arc() .st
我有一个包含以下数据的数据集: { current: 5 expected: 8 gap: -3 id: 3924
我正在尝试使用触摸监听器在圆中的两点之间绘制弧线。这是我的代码: public class MainActivity extends Activity implements OnTouchListen
我这里有这行代码: CGContextAddArc(context, (round(frame.size.width))/(2 * (appDelegate.webview?.scrollView.z
我是一名优秀的程序员,十分优秀!