在ios中删除图像时,应用终止

时间:2014-12-31 06:11:47

标签: ios

我所做的就是从画廊中获取图像  使用touch.my图像移动手指在图像上删除时擦除。但问题是应用程序终止时擦除图像。我的代码是这样的

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    self.sizeSlider.hidden=NO;
    UITouch *touch = [touches anyObject];
    lastPoint = [touch locationInView:self.view];
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
    CGPoint currentPoint = [touch locationInView:self.shareView];
    UIGraphicsBeginImageContext(self.shareView.frame.size);
    [imgForeGround.image drawInRect:CGRectMake(0, 0, self.shareView.frame.size.width,  
    self.shareView.frame.size.height)];

    // I add this
    CGContextSetBlendMode(UIGraphicsGetCurrentContext(), kCGBlendModeClear);

    CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), sizeSlider.value);
    CGContextBeginPath(UIGraphicsGetCurrentContext());
    CGContextSetBlendMode(UIGraphicsGetCurrentContext(), kCGBlendModeClear);
    CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
    CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);
    CGContextStrokePath(UIGraphicsGetCurrentContext());
    imgForeGround.image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    lastPoint = currentPoint;

    [imgForeGround setNeedsDisplay];

}

请有人帮我避免这个问题的内存泄漏帮助表示赞赏

1 个答案:

答案 0 :(得分:0)

还有一些控件易于实施:

https://github.com/moqod/iOS-Scratch-n-See