图片擦除(支付宝擦除效果)

原理就是俩张图片叠在一起,去除上面图片的效果。

000.gif

代码如下

//
//  ViewController.m
//  05-图片擦除(了解)
//
//  Created by 李亮 on 2016/12/1.
//  Copyright © 2016年 www.thelast.com. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *imgView;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.imgView.userInteractionEnabled = YES;
    UIPanGestureRecognizer * pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
    
    [self.imgView addGestureRecognizer:pan];
}

- (void)pan:(UIPanGestureRecognizer *)pan{
    
    CGPoint p = [pan locationInView:self.imgView];
    
    CGFloat wh = 20;
    CGFloat x = p.x - wh * 0.5;
    CGFloat y = p.y - wh * 0.5;

    CGRect rect = CGRectMake(x, y, wh, wh);
    
    //获取图片的上下文
    UIGraphicsBeginImageContextWithOptions(self.imgView.bounds.size, NO, 0);
    
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    [self.imgView.layer renderInContext:ctx];
    CGContextClearRect(ctx, rect);
    
    UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    self.imgView.image = newImage;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

代码链接

下载地址 demo

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,560评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,257评论 4 61
  • 今天是每日反思的第61天。 万维钢继续讲《巨人的工具》。今天的主角是Ryan Holiday,一个媒体策略师(什么...
    荒原苍狼阅读 524评论 0 0
  • 我不记得家里是从哪一年开始拥有了第一台黑白电视机,只有不到20寸。那时候还是通过天线接收电视信号的年代,电视台稀少...
    恩佑阅读 292评论 1 1
  • 工作可说一直不太顺意,或者可以归结为并不喜欢这里,不喜欢这家公司,甚至是不喜欢这个行业。大概从一年多以前伊始,便想...
    _Feiyu阅读 210评论 0 0