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

首頁 > 系統 > iOS > 正文

iOS開發經驗--snapshotViewAfterScreenUpdates:方法在iPhone7模擬器上的問題

2019-11-06 10:03:30
字體:
來源:轉載
供稿:網友

snapshotViewAfterScreenUpdates:方法在iphone7模擬器上返回一個空白view 在應用中需要用到截圖操作,之前一直用snapshotViewAfterScreenUpdates快速獲取一個截圖,但是在iphone7模擬器上運行的時候直接截出了一個空白頁,看網上有人說ios10之后snapshotViewAfterScreenUpdates這個方法失效,但是在iphone6plus真機上ios10跑過都沒有問題,所以考慮是iphone7的問題;要換成繪圖的方式來獲取截圖 改成如下代碼在iphone7模擬器上也可以正常的截圖了:

- (UIView *)customSnapshotFromView:(UIView *)inputView { UIImage *image = [self imageFromView:inputView]; UIImageView *imgView = [[UIImageView alloc]initWithImage:image]; UIView *snapshot1 = imgView;// UIView *snapshot1 = [inputView snapshotViewAfterScreenUpdates:YES]; snapshot1.layer.masksToBounds = NO; snapshot1.layer.cornerRadius = 0.0; snapshot1.layer.shadowOffset = CGSizeMake(5.0, 5.0); snapshot1.layer.shadowRadius = 1.0; snapshot1.layer.shadowOpacity = 0.4; return snapshot1;}- (UIImage *)imageFromView:(UIView *)snapView {// UIGraphicsBeginImageContext(snapView.frame.size); UIGraphicsBeginImageContextWithOptions(snapView.frame.size, NO, [UIScreen mainScreen].scale); CGContextRef context = UIGraphicsGetCurrentContext(); [snapView.layer renderInContext:context]; UIImage *targetImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return targetImage;}

用這個方法UIGraphicsBeginImageContext(snapView.frame.size); 不支持Retina屏幕(截出來的圖片有些失真),所以用UIGraphicsBeginImageContextWithOptions(snapView.frame.size, NO, [UIScreen mainScreen].scale);

UIGraphicsBeginImageContext 和 UIGraphicsBeginImageContextWithOptions的比較

UIGraphicsBeginImageContext 創建一個基于位圖的上下文(context),并將其設置為當前上下文(context)。方法聲明如下:

void UIGraphicsBeginImageContext(CGSize size);

參數size為新創建的位圖上下文的大小。它同時是由UIGraphicsGetImageFromCurrentImageContext函數返回的圖形大小。

該函數的功能同UIGraphicsBeginImageContextWithOptions的功能相同,相當與UIGraphicsBeginImageContextWithOptions的opaque參數為NO,scale因子為1.0。

UIGraphicsBeginImageContextWithOptions 函數原型為:

void UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale);

size——同UIGraphicsBeginImageContext

opaque—透明開關,如果圖形完全不用透明,設置為YES以優化位圖的存儲。

scale—–縮放因子 iPhone 4是2.0,其他是1.0。雖然這里可以用[UIScreen mainScreen].scale來獲取,但實際上設為0后,系統就會自動設置正確的比例了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汝城县| 嵊泗县| 塔河县| 虎林市| 江城| 汤阴县| 寿阳县| 昔阳县| 东乌珠穆沁旗| 苍溪县| 海城市| 长岭县| 凤山市| 阳城县| 汝州市| 永新县| 商城县| 平乡县| 平武县| 酒泉市| 乌鲁木齐市| 佛冈县| 福鼎市| 广汉市| 克什克腾旗| 子长县| 奉贤区| 新乐市| 胶南市| 小金县| 黔南| 韶关市| 陆丰市| 芷江| 凌海市| 东乌珠穆沁旗| 灌云县| 洛南县| 万山特区| 南宁市| 芒康县|