В настоящее время я вижу проблему с утечками памяти, кажется, это происходит из этого кода:
- (void)drawRect:(CGRect)rect
{
CGImageRef cgImage = CGBitmapContextCreateImage(offScreenBuffer);
UIImage *uiImage = [[UIImage alloc] initWithCGImage:cgImage];
CGImageRelease(cgImage);
[uiImage drawInRect:self.bounds];
[uiImage release];
}
этот метод вызывается из событий касаний ...
-(void)drawPoint:(UITouch *)touch {
currentLoc = [[PointLocation alloc] init];
currentLoc.location = [touch locationInView:self];
self.previousPoint = self.point;
self.point = currentLoc;
[self drawToBuffer];
[currentLoc release];
}
это отрисовка в буфер ....
-(void)drawToBuffer {
CGFloat color[4] = {R,G,B,A};
if (self.previousPoint != nil) {
CGContextSetRGBStrokeColor(offScreenBuffer, color[0],color[1],color[2],color[3]);
CGContextBeginPath(offScreenBuffer);
CGContextSetLineWidth(offScreenBuffer, lane);
CGContextSetLineCap(offScreenBuffer, kCGLineCapRound);
CGContextMoveToPoint(offScreenBuffer, previousPoint.location.x, previousPoint.location.y);
CGContextAddLineToPoint(offScreenBuffer, point.location.x, point.location.y);
CGContextDrawPath(offScreenBuffer, kCGPathStroke);
}
[self setNeedsDisplay];
}
это действительно медленно .... :( И я не знаю почему ...
Каждый раз, когда я рисуювыбранный вид, это называется, но каждый раз, когда мне нужно создать изображение и показать его на экране. Есть ли возможность, как это сделать по-другому ??