iOS “刮刮乐”的简单实现
2019-05-16 本文已影响49人
枫developer
这两天闲来无事,做一个“刮刮乐”的小功能给大家乐一乐。哈哈哈,先来看看效果图:
刮刮乐.gif
这个女朋友奖很简单就可以实现:
1.创建图片上下文。
2.将图片渲染在上下文中。
3.清除手指拖拽的位置。
4.通过上下文生成新的图片。
5.将新的图片添加在UIImageView上,并且关闭上下文。
理论上就这么点东西哈。
#import "ViewController.h"
@interface ViewController ()
// 灰色(将被刮开的图片)
@property (weak, nonatomic) IBOutlet UIImageView *clearImageView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// 添加Pan手势
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panAction:)];
[self.clearImageView addGestureRecognizer:pan];
}
#pragma mark - 长按事件
-(void)panAction:(UIPanGestureRecognizer *)pan {
// 获取当前按的点
CGPoint curPoint = [pan locationInView:self.clearImageView];
// 创建图片上下文
UIGraphicsBeginImageContext(self.clearImageView.bounds.size);
// 获取对应的上下文
CGContextRef context = UIGraphicsGetCurrentContext();
// 将图片渲染在t上下文中
[self.clearImageView.layer renderInContext:context];
// 清除手指选中的地方
CGContextClearRect(context, CGRectMake(curPoint.x - 15, curPoint.y - 15, 30, 30));
// 通过上下文合成图片
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
// 结束上下文
UIGraphicsEndImageContext();
// 将新的图片添加在视图上
self.clearImageView.image = image;
}
@end
是不是很简单,这些小功能其实很有意思,喜欢的朋友可以点个赞哈。