国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS 對view進行截圖的示例代碼

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

本文主要介紹了iOS 對view進行截圖的示例代碼,分享給大家,具體如下:

需要對WKWebView進行截圖,之前用的是下面的方法,高版本的系統是沒有問題的,低版本的卻截到一張白圖

- (UIImage *)convertViewToImage:(UIView *)view{  // 第二個參數表示是否非透明。如果需要顯示半透明效果,需傳NO,否則YES。第三個參數就是屏幕密度了  UIGraphicsBeginImageContextWithOptions(CGSizeMake(view.bounds.size.width, view.bounds.size.height * 0.8),YES,[UIScreen mainScreen].scale);  [view.layer renderInContext:UIGraphicsGetCurrentContext()];  UIImage *image = UIGraphicsGetImageFromCurrentImageContext();  UIGraphicsEndImageContext();  return image;}

查看了之后發現是層級有問題,沒有截到最上面的視圖,于是改為下面的方法就行了

- (UIImage*)captureView:(UIView *)theView frame:(CGRect)frame{  UIGraphicsBeginImageContextWithOptions(CGSizeMake(theView.bounds.size.width, theView.bounds.size.height*0.8), YES, [UIScreen mainScreen].scale);  CGContextRef context = UIGraphicsGetCurrentContext();  UIImage *img;  if([[[UIDevice currentDevice] systemVersion] floatValue]>=7.0){    for(UIView *subview in theView.subviews){      [subview drawViewHierarchyInRect:subview.bounds afterScreenUpdates:YES];    }    img = UIGraphicsGetImageFromCurrentImageContext();  }else{    CGContextSaveGState(context);    [theView.layer renderInContext:context];    img = UIGraphicsGetImageFromCurrentImageContext();  }  UIGraphicsEndImageContext();  return img;}

要注意,frame是不能為空的,而且截的太快的話也會有問題,需要設置afterScreenUpdates為NO,因為設置為YES后,這些方法會等在view update結束在執行,如果在update結束前view被release了,會出現找不到view的問題。另外記得使用UIGraphicsBeginImageContextWithOptions,這樣截取出來的是高清圖。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昭通市| 祁阳县| 子洲县| 榆中县| 井冈山市| 长宁县| 来安县| 固始县| 韶山市| 醴陵市| 黎城县| 金门县| 社旗县| 伊春市| 石林| 二连浩特市| 临高县| 塔河县| 浪卡子县| 万源市| 碌曲县| 莎车县| 五大连池市| 黑龙江省| 通化市| 静安区| 深泽县| 河西区| 交城县| 瓦房店市| 成武县| 米泉市| 阿克| 保定市| 林周县| 遂昌县| 松溪县| 鄂托克前旗| 浑源县| 沽源县| 海原县|