图片擦除

2018-04-24  本文已影响16人  child_cool

这里下载DEMO

图片擦除.gif

原理:
双层imageView,顶部imageview添加拖动手势,清除顶部imageview的上下文时会让该部分透明,可以看到下层的图片,彩票刮奖也是类似的效果

@objc func panGestureRecognizer(_ sender: UIPanGestureRecognizer) {
        //获得当前触摸点
        let curPoint = sender.location(in: sender.view)
        
        //确定擦除区域
        let w : CGFloat = 50
        let h : CGFloat = 50
        
        let clearRect = CGRect(x: curPoint.x - w / 2, y: curPoint.y - h / 2, width: w, height: h)
        
        //开启位图上下文
        UIGraphicsBeginImageContextWithOptions(sender.view!.frame.size, false, 0)
        //获取当前上下文
        let ctx = UIGraphicsGetCurrentContext()
        //渲染控件
        sender.view?.layer.render(in: ctx!)
        
        //清除上下文某一部分
        ctx?.clear(clearRect)
        
        //从上下文中生成一张图片
        let image = UIGraphicsGetImageFromCurrentImageContext()
        
        //关闭上下文
        UIGraphicsEndImageContext()
        
        self.imageView.image = image
    }
上一篇下一篇

猜你喜欢

热点阅读