我目前正在处理的应用程序的性能存在一些奇怪的问题。 One View使用自建信息图,类似于极坐标图。它每8秒重绘一次。 重绘的前五次一切都很好,但之后滚动视图是视图的超视图,显示信息图开始严重断断续续。这是代码的基本部分,它产生图形。
[_ chartLayer removeFromSuperlayer]; _chartLayer = [CALayer图层];
CAShapeLayer *segment = [mySegmentProducer produceSegmentWith:startAngle and: endAngle and: radius and: sliceAngle];
[_chartLayer addSublayer:segment];
[self.layer addSublayer:_chartLayer];
这里的函数“produceSegmentWith:”放在另一个类中:
- (CAShapeLayer*) produceSegmentWith:(float)startAngle and:(float)endAngle and:(float) radius and: (float) sliceAngle {
CAShapeLayer *segment = [CAShapeLayer layer];
CGPathRef pathTwo = [self addSegmentPath: radius fromStartAngle:startAngle toEndAngle:endAngle];
// hue = 224 / 360 initial value
segment.fillColor = [UIColor colorWithHue:self.hue/360 saturation:0.5 brightness:0.63 alpha:1.0].CGColor;
segment.lineWidth = 0.0;
segment.path = pathTwo;
self.hue-= 15;
return segment;
}
我很害羞我在这里做的事情是错的。在其他帖子中,我看到总是使用函数“CGPathRelease”。但我不知道如何正确使用它。当我把它放在“返回段”上方的行中时,我总是得到一个“BAD_THREAD_ACCESS”异常。任何人都可以把我带到正确的方向?