国产探花免费观看_亚洲丰满少妇自慰呻吟_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后,系統就會自動設置正確的比例了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 文水县| 米林县| 武功县| 长顺县| 海伦市| 禹州市| 隆尧县| 龙胜| 安西县| 将乐县| 万州区| 靖州| 大埔县| 上饶县| 高清| 东平县| 开远市| 彰化县| 义马市| 区。| 五原县| 左云县| 海原县| 大姚县| 榆中县| 平南县| 新闻| 汤原县| 栾川县| 寿光市| 修武县| 边坝县| 怀集县| 陕西省| 巴东县| 德化县| 大余县| 富源县| 长宁县| 布尔津县| 色达县|