图片擦除

2017-11-23  本文已影响23人  翻这个墙

图片擦除实现步骤

// 加载图片,并添加拖动手势;另外加载一张背景图片,用于图片被擦除后显示,置于擦除图片下方,已通过storyboard实现

//监视拖动
- (IBAction)pan:(UIPanGestureRecognizer *)sender {

// 开启位图上下文
    UIGraphicsBeginImageContextWithOptions(sender.view.bounds.size, NO, 0);

// 获取当前位图上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();

// 渲染控件,相当于控件的layer图层加载到位图上下文中
    [sender.view.layer renderInContext:ctx];

//  清除上下文中某一部分
    //获取当前触摸点
    CGPoint curP =[sender locationInView:sender.view];

    //计算擦除区域
    CGFloat wh = 30;
    CGFloat x = curP.x - wh * 0.5;
    CGFloat y = curP.y - wh * 0.5;
    CGRect clearR = CGRectMake(x, y, wh, wh);

    // 核心代码
    CGContextClearRect(ctx, clearR);

// 从上下文中生成一张图片
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

// 关闭上下文
    UIGraphicsEndImageContext();

// 将擦除后的图片显示回控件中
    UIImageView *imageV = (UIImageView *)sender.view;
    imageV.image = image;

}
上一篇 下一篇

猜你喜欢

热点阅读