最近完成了刮刮乐功能,用的swift3.0语言,特此把代码分享出来。
// 刮奖 实现刮刮乐效果
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
// 触摸任意位置
let touch:UITouch = (touches as NSSet).anyObject() as! UITouch
// 触摸位置在图片上的坐标
let cententPoint:CGPoint = touch.location(in: self.imageTuceng)
// 设置清除点的大小
let rect = CGRect.init(x: cententPoint.x, y: cententPoint.y, width: 20, height: 20)
// 默认是去创建一个透明的视图
UIGraphicsBeginImageContextWithOptions(self.imageTuceng.bounds.size, false, 0)
// 获取上下文(画板)
let ref = UIGraphicsGetCurrentContext()
// 把imageView的layer映射到上下文中
self.imageTuceng.layer.render(in: ref!)
// 清除划过的区域
ref?.clear(rect)
// 获取图片
let image = UIGraphicsGetImageFromCurrentImageContext()
// 结束图片的画板, (意味着图片在上下文中消失)
self.imageTuceng.image = image
}