国产探花免费观看_亚洲丰满少妇自慰呻吟_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,這樣截取出來的是高清圖。

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 上蔡县| 韶关市| 衢州市| 堆龙德庆县| 平阴县| 凤翔县| 宝应县| 黎川县| 滨海县| 塘沽区| 潞西市| 荥经县| 织金县| 乐都县| 类乌齐县| 陵川县| 陵水| 宾川县| 二手房| 凤山市| 思南县| 饶河县| 藁城市| 赣州市| 黄龙县| 乐安县| 区。| 延川县| 彰化县| 汉阴县| 苍山县| 尼勒克县| 云阳县| 塔河县| 长武县| 井研县| 泰兴市| 龙井市| 登封市| 库伦旗| 中江县|