プロジェクト開発、我々は、次のシナリオが発生する場合がありますので、上の記事、スクリーンショットを行って(転動部品を含む、全画面キャプチャが必要)、シェアシーナマイクロブロギング、電子メールなどを。いくつかの時間前、私はアプリケーション開発機能で実現し、コードが自分の上位ビットを見つけるためにインターネットからです。以下の方法は、主スクリーンショットが実装されます。
1 // (圧延部を含む)ページのスクリーンショットを達成 2(のUIView *:(NSDataの*)getImageFromView - )閲覧 3。 { 4 のNSData * ; pngImg 5。 CGFloat MAX、スケール= 1.0 ; 6。 CGSize viewSize = [表示範囲] .size ; 7 8。 // 可視部分と非可視部分(転動部)を備え、フルスクリーンサイズを取得 9。 CGSizeサイズ= [ビューsizeThatFits:CGSizeZero]; 10 。11 ?最大値=(viewSize.width> viewSize.height)viewSize.width。 viewSize.height; 12は、 IF(maxは> 960 ) 13は { 14 規模= 960 / 最大。 15 } 16 17 UIGraphicsBeginImageContextWithOptions(サイズ、YES、スケール)。 18 19 // 设置図成全部展开效果 20 [ビューsetFrame:CGRectMake(0、0 、size.width、size.height)]。 21 22 CGContextRefコンテキスト= UIGraphicsGetCurrentContext()。 23 [renderInContext view.layer:コンテキスト]。 24 pngImg = UIImagePNGRepresentation(UIGraphicsGetImageFromCurrentImageContext())。 25 26 UIGraphicsEndImageContext()。 27 リターンPngimg; 28 }
使用時で、私たちは、次のコードを使用することができます。
。1つの // WebViewののUIWebViewコントロールは、ページには、これはWebViewのフルスクリーンテーマ、他のコントロールを実現している、であるあなたのできるテストで 2 NSDataの画像データ* = [自己getImageFromView:WebViewの]; 3。 [画像データWRITETOFILE:[[NSHomeDirectory()stringByAppendingPathComponent:@ " ドキュメント" ] stringByAppendingPathComponent:"@ new.png " ]アトミック:YES];
[説明]:、QuartzCore.frameworkフレームを導入する必要性をキャプチャ機能を実現する、するには、次のヘッダーを追加します。
書式#include <QuartzCore / QuartzCore.h>
ます。https://www.cnblogs.com/eagle927183/p/3476209.htmlで再現