- (IBAction)pan:(UIPanGestureRecognizer *)pan{
//獲取當(dāng)前手指所在的點(diǎn).
CGPoint curP = [pan locationInView:self.view];
if(pan.state == UIGestureRecognizerStateBegan){
CGPoint startP = curP;
self.startP = startP;
}else if(pan.state == UIGestureRecognizerStateChanged){
CGFloat offsetX = curP.x - self.startP.x;
CGFloat offsetY = curP.y - self.startP.y;
//確定遮蓋的區(qū)域位置
CGRect rect = CGRectMake(self.startP.x, self.startP.y, offsetX, offsetY);
//每次移動(dòng)時(shí),調(diào)用遮蓋的Frame.
self.coverView.frame = rect;
}else if(pan.state == UIGestureRecognizerStateEnded){
//1.開啟一個(gè)跟原始圖片相同大小的圖片上下文.
UIGraphicsBeginImageContextWithOptions(self.imageV.bounds.size, NO, 0);
//把self.cover.frame 設(shè)為裁剪區(qū)域
UIBezierPath *path = [UIBezierPath bezierPathWithRect:self.coverView.frame];
[path addClip];
//獲取當(dāng)前上下文.
CGContextRef ctx = UIGraphicsGetCurrentContext();
//把UIImageView當(dāng)中的圖片給繪制上下文當(dāng)中.
[self.imageV.layer renderInContext:ctx];
//從上下文當(dāng)中生成一張新的圖片
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
//關(guān)閉上下文.
UIGraphicsEndImageContext();
//給圖片重新賦值
self.imageV.image = newImage;
//移除遮蓋
[self.coverView removeFromSuperview];
}
}
圖片截屏的是現(xiàn)實(shí)思路
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
推薦閱讀更多精彩內(nèi)容
- 項(xiàng)目中需求監(jiān)測(cè)用戶截屏行為 并生成圖片誘導(dǎo)用戶分享。像飛豬此類APP已經(jīng)實(shí)現(xiàn)分享功能產(chǎn)品需求是改變用戶系統(tǒng)截圖的本...
- 寫在前面 公司近期讓做一個(gè)錄制屏幕類的App,我研究了iOS9新增的Replaykit框架,使用起來確實(shí)挺簡(jiǎn)單的,...
- 不好的男人會(huì)讓你變成瘋子,好的男人會(huì)讓你變成傻子,最好的男人會(huì)讓你變成孩子。 前幾天收到一個(gè)新婚不久的朋友報(bào)喜:我...