亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

IOS實現手動截圖并保存

2020-07-26 03:30:02
字體:
來源:轉載
供稿:網友

本文實例介紹了iOS手動剪裁圖片并保存到相冊的詳細代碼,分享給大家供大家參考,具體內容如下

一、實現效果
1、操作步驟

  • 繪制一個矩形框,彈出一個alertView,提示是否保存圖片
  • 點擊"是",將圖片保存到相冊
  • 在相冊中查看保存的圖片

2、效果圖

二、實現思路
1、在控制器的view上添加一個imageView,設置圖片
2、在控制器的view上添加一個pan手勢
3、跟蹤pan手勢,繪制一個矩形框(圖片的剪切區域)
4、在pan手勢結束時,通過alertView提示“是否將圖片保存至相冊?”

  • 點擊“是”,保存圖片
  • 點擊“否”,暫時什么都不做

三、實現步驟
1、通過storyboard在控制器的view上添加一個imageView(設置圖片),并在控制器的.m文件中擁有該屬性

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

2、設置通過手勢繪制的圖片的剪切區域
將圖片的剪切區域作為成員屬性clipView

@property (nonatomic, weak) UIView *clipView;

3、通過懶加載的方式創建clipView,并初始化

- (UIView *)clipView{  //如果clipView為被創建,就創建  if (_clipView == nil)  {    UIView *view = [[UIView alloc] init];    _clipView = view;    //設置clipView的背景色和透明度    view.backgroundColor = [UIColor blackColor];    view.alpha = 0.5;    //將clipView添加到控制器的view上,此時的clipView不會顯示(未設置其frame)    [self.view addSubview:_clipView];  }  return _clipView;}

4、給控制器的view添加pan手勢,跟蹤pan手勢,繪制圖片剪切區域
1)、創建并添加手勢

/**創建手勢**/UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];  /**  *每當pan手勢的位置發生變化,就會調用pan:方法,并將手勢作為參數傳遞  *//**添加手勢**/[self.view addGestureRecognizer:pan];

2)、增加成員屬性,記錄pan手勢開始的點

@property (nonatomic, assign) CGPoint startPoint;

3)、監聽手勢的移動

- (void)pan:(UIPanGestureRecognizer *)pan{  CGPoint endPoint = CGPointZero;  if (pan.state == UIGestureRecognizerStateBegan)  {    /**開始點擊時,記錄手勢的起點**/    self.startPoint = [pan locationInView:self.view];  }  else if(pan.state == UIGestureRecognizerStateChanged)  {    /**當手勢移動時,動態改變終點的值,并計算起點與終點之間的矩形區域**/    endPoint = [pan locationInView:self.view];    //計算矩形區域的寬高    CGFloat w = endPoint.x - self.startPoint.x;    CGFloat h = endPoint.y - self.startPoint.y;    //計算矩形區域的frame    CGRect clipRect = CGRectMake(self.startPoint.x, self.startPoint.y, w, h);    //設置剪切區域的frame    self.clipView.frame = clipRect;  }  else if(pan.state == UIGestureRecognizerStateEnded)  {    /**若手勢停止,將剪切區域的圖片內容繪制到圖形上下文中**/    //開啟位圖上下文    UIGraphicsBeginImageContextWithOptions(self.imageView.bounds.size, NO, 0);    //創建大小等于剪切區域大小的封閉路徑    UIBezierPath *path = [UIBezierPath bezierPathWithRect:self.clipView.frame];    //設置超出的內容不顯示,    [path addClip];    //獲取繪圖上下文    CGContextRef context = UIGraphicsGetCurrentContext();    //將圖片渲染的上下文中    [self.imageView.layer renderInContext:context];    //獲取上下文中的圖片    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();    //關閉位圖上下文    UIGraphicsEndImageContext();    //移除剪切區域視圖控件,并清空    [self.clipView removeFromSuperview];    self.clipView = nil;    //將圖片顯示到imageView上    self.imageView.image = image;    //通過alertView提示用戶,是否將圖片保存至相冊    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"保存圖片" message:@"是否將圖片保存至相冊?" delegate:self cancelButtonTitle:@"否" otherButtonTitles:@"是", nil];    [alertView show];}}

4)、設置alertView的代理方法,確定是否保存圖片

- (void)alertView:(nonnull UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{  //若點擊了“是”,則保存圖片  if (buttonIndex == 1)  {    UIImageWriteToSavedPhotosAlbum(self.imageView.image, nil, nil, nil);    /**    * 該方法可以設置保存完畢調用的方法,此處未進行設置    */  }}

以上就是本文的全部內容,希望對大家的學習有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品久久91精品| 国产激情视频一区| 啪一啪鲁一鲁2019在线视频| 国产免费观看久久黄| 亚洲国产一区自拍| 日本一区二区不卡| 成人妇女免费播放久久久| 性欧美办公室18xxxxhd| 在线看片第一页欧美| 992tv成人免费视频| 欧美激情视频在线观看| 亚洲电影av在线| 高清一区二区三区日本久| 91av视频导航| 国内免费久久久久久久久久久| 亚洲人成网站免费播放| 国产一区二区三区丝袜| 欧美又大又粗又长| 欧美精品一区二区三区国产精品| 亚洲电影免费观看| 成人性生交大片免费观看嘿嘿视频| 中文字幕亚洲激情| 国产精品成人观看视频国产奇米| 美女扒开尿口让男人操亚洲视频网站| 一区二区三区高清国产| 国产一区二区三区在线| 日韩美女视频在线观看| 国产精品亚洲欧美导航| 日韩美女写真福利在线观看| 国内自拍欧美激情| 国产精品久久久久久亚洲影视| 日韩小视频在线| 欧美大肥婆大肥bbbbb| 亚洲精品自产拍| 91成人在线视频| 久久久久中文字幕2018| 久久久视频免费观看| 欧美日韩国产一区二区| 国产欧美韩国高清| 欧美性猛交xxxx乱大交| 日韩中文字幕不卡视频| 欧美午夜精品久久久久久浪潮| 色悠久久久久综合先锋影音下载| 麻豆国产va免费精品高清在线| 九九九久久久久久| 亚洲桃花岛网站| 成人h猎奇视频网站| 欧美激情综合亚洲一二区| 亚洲视频777| 国产不卡视频在线| 亚洲第一av网站| 性色av一区二区咪爱| 久久久av亚洲男天堂| 欧美丰满少妇xxxxx做受| 国产福利视频一区| 亚洲高清av在线| 久久免费精品视频| 91免费人成网站在线观看18| 日韩欧美亚洲成人| 国产精品自产拍高潮在线观看| 亚洲国产精品va在看黑人| 精品久久久久久久大神国产| 青青草原成人在线视频| 热门国产精品亚洲第一区在线| 国产精品狼人色视频一区| 精品偷拍一区二区三区在线看| 亚洲一区第一页| 国产精品久久久久久久av大片| 日韩欧美在线第一页| 国产精品91久久久久久| 亚洲国产精品人久久电影| 精品视频一区在线视频| 亚洲免费视频一区二区| 欧美日韩亚洲一区二| 亚洲欧美国产日韩天堂区| 久久精品在线视频| 亚洲女同性videos| 欧美精品videosex牲欧美| 中文字幕自拍vr一区二区三区| 懂色av影视一区二区三区| 色噜噜国产精品视频一区二区| 日本精品va在线观看| 日韩国产在线播放| 91国产视频在线播放| 国产aⅴ夜夜欢一区二区三区| 日本午夜在线亚洲.国产| 亚洲高清久久久久久| 国产精品91在线| 亚洲福利在线看| 久久久久免费精品国产| 国产不卡精品视男人的天堂| 国产精品扒开腿做| 欧美日韩在线视频一区二区| 俺去了亚洲欧美日韩| 亚洲精品国产欧美| 久热99视频在线观看| 欧美激情乱人伦| 亚洲女人天堂色在线7777| 国产综合香蕉五月婷在线| 大伊人狠狠躁夜夜躁av一区| 成年人精品视频| 日韩美女av在线免费观看| 久久青草精品视频免费观看| 亚洲永久在线观看| 欧美wwwwww| 亚洲欧美日韩爽爽影院| 亚洲剧情一区二区| 亚洲韩国欧洲国产日产av| 国产成人av网址| 国模视频一区二区三区| 国产欧美一区二区白浆黑人| 九九热r在线视频精品| 国产精品欧美日韩一区二区| 91精品国产色综合| 欧美专区日韩视频| 久久精品视频一| 欧美野外猛男的大粗鳮| 欲色天天网综合久久| 色噜噜亚洲精品中文字幕| 日本老师69xxx| 国产精品99久久久久久白浆小说| 午夜精品久久久久久久99热浪潮| 亚洲欧美中文日韩在线| 国产福利精品av综合导导航| 亚洲第一网站免费视频| 亚洲欧洲激情在线| 欧美日韩精品在线观看| 91情侣偷在线精品国产| 久久久久久高潮国产精品视| 日韩国产在线播放| 国产欧美最新羞羞视频在线观看| 欧美在线一区二区三区四| 日韩av在线免费播放| 国产午夜精品全部视频播放| 亚洲精品99999| 国产精品久久久久久久久久| 久热精品视频在线观看| 日韩欧美国产高清91| 国内精品久久久久影院 日本资源| 精品无人区太爽高潮在线播放| 中文字幕亚洲图片| 日韩精品欧美国产精品忘忧草| 久久久久久欧美| 岛国精品视频在线播放| 亚洲高清一二三区| 日韩av免费网站| 日韩精品免费综合视频在线播放| 81精品国产乱码久久久久久| 亚洲综合精品伊人久久| 色午夜这里只有精品| 久久久久久噜噜噜久久久精品| 精品美女久久久久久免费| 欧美日韩国产精品| 精品久久久久久亚洲精品| 色综合久久精品亚洲国产| 国产精品成人国产乱一区| 92国产精品久久久久首页| 国产精品色午夜在线观看| 最近中文字幕mv在线一区二区三区四区| 成人羞羞国产免费| 日韩国产激情在线| 精品久久久久久中文字幕大豆网| 操日韩av在线电影| 欧美高清videos高潮hd|