您的位置:首页 > 其它

截屏

2016-01-18 21:45 429 查看
#import "ViewController.h"

@interface ViewController ()

@property (nonatomic, weak) UIView *cover;

@property (nonatomic, assign) CGPoint oriP;

@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@property (weak, nonatomic) IBOutlet UIView *view1;

@end

@implementation ViewController
//- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
//{
//    CGRect frame = _view1.frame;
////    frame.size.width = -100;
////    _view1.frame = frame;
////}
- (UIView *)cover
{
if (_cover == nil) {
UIView *view = [[UIView alloc] init];

view.backgroundColor = [UIColor blackColor];
view.alpha = 0.5;

_cover = view;

[self.view addSubview:view];

}
return _cover;
}

- (IBAction)pan:(UIPanGestureRecognizer *)sender {
// 获取下当前的触摸
CGPoint curP = [sender locationInView:_imageView];
if (sender.state == UIGestureRecognizerStateBegan) {
// 记录下一开始的位置
_oriP = curP;
}

// 计算下黑色蒙版的frame
CGFloat w = curP.x - _oriP.x;
CGFloat h = curP.y - _oriP.y;

self.cover.frame = CGRectMake(_oriP.x, _oriP.y, w, h);

if (sender.state == UIGestureRecognizerStateEnded) { // 手指抬起

// 裁剪图片,生成一张新图片

// 开启位图上下文
UIGraphicsBeginImageContextWithOptions(_imageView.bounds.size, NO, 0);

// 设置裁剪区域
UIBezierPath *path = [UIBezierPath bezierPathWithRect:self.cover.frame];
[path addClip];

// 绘制图片
[_imageView.layer renderInContext:UIGraphicsGetCurrentContext()];

// 生成图片
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

// 关闭上下文
UIGraphicsEndImageContext();

_imageView.image = image;

[self.cover removeFromSuperview];

}

}

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

// 创建拖动手势
//    UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
//
//    [_imageView addGestureRecognizer:pan];
}

//- (void)pan:(UIPanGestureRecognizer *)pan
//{
//    NSLog(@"%s",__func__);
//}

@end


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: