iPhone撕衣服游戏-图片擦除

原理:

       撕衣服游戏的原理就是用两张几乎一样的照片(两张照片的区别就是一张比较保守,一张比较开放,实质是设计师在原本开放的模特照片上P了一层衣服),把开放的图片放在下面,把保守的图片放在上面(每一张图片都放在一张imageView上)。撕衣服的过程也就是擦除图片的过程,把手势接触过的地方图片擦除。

步骤:

       1.给控制器添加pan手势,并设置监听方法。

       2.在监听方法里

         2.1 获取当前点

         2.2 获取擦除的矩形范围(以当前点为中心,擦除当前点四周指定范围)

         2.3 开启上下文

         2.4 把控件上的layer渲染到上下文中

         2.5 擦除图片

         2.6 把生成的新图片赋给原来的imageView


代码:

- (void)viewDidLoad {
    [super viewDidLoad];
    // 给控制器添加pan手势
    UIPanGestureRecognizer *panGesutre = [[UIPanGestureRecognizer alloc] initWithTarget:self action: @selector(pan:)];
    
    [self.view addGestureRecognizer:panGesutre];
}

- (void)pan:(UIPanGestureRecognizer *)panGesture
{
    //1.获取当前点
    CGPoint currentPoint = [panGesture locationInView:self.view];
    
    //2.获取擦除的矩形范围
    CGFloat wipeWidth = 30;
    CGFloat wipeHeight = 30;
    CGFloat wipeX = currentPoint.x - wipeWidth * 0.5;
    CGFloat wipeY = currentPoint.y - wipeHeight * 0.5;
    
    CGRect rect = CGRectMake(wipeX, wipeY, wipeWidth, wipeHeight);
    //3.开启上下文
    UIGraphicsBeginImageContextWithOptions(self.view.frame.size, NO, 0);
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    
    //4.控件的layer渲染上去
    [self.imageView.layer renderInContext:ctx];
    
    //5.擦除图片
    CGContextClearRect(ctx, rect);
    
    //6.生成一张新的图片
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    self.imageView.image = image;
}
效果演示:

图片素材分享:撕衣服游戏图片素材


  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值