2016-08-18 26 views
0

UIScrollViewを内部に含むUIViewがあります。実際にはUIImageScrollView、UIImageをズームするのに役立つクラスが含まれており、ズームしたUIImageでUIViewのスクリーンショットを取得したいと思います。この機能:UIScrollViewを使用したUIViewのスクリーンショット

func captureCrop() -> UIImage { 
    UIGraphicsBeginImageContextWithOptions(self.viewCapturedFoto.frame.size, true, 0.0) 
    self.viewCapturedFoto.layer.renderInContext(UIGraphicsGetCurrentContext()!) 
    let image = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 
    return image; 
} 

が、スクリーンショットが行われたときに新しいUIImageは、ズーム画像なしで示したさに、私はUIImageはまだ私はそれをズームしても、ズームされていません意味します。 私はそれを正しく説明したかどうかわかりません

+0

のこのセクションを訪問し、よりよく理解できるように、ここでそれを挿入詳細は

let screenShot = self.viewCapturedFoto.snapshotViewAfterScreenUpdates(true) 

カントーのUIViewを返します。 – pedrouan

答えて

0

私はあなたの問題があなたのUIGraphicsBeginImageContextWithOptions関数に渡すサイズ引数であると信じています。今は、フレーム全体のサイズを渡しています。これは、スクロールビューでは、画面の部分も含めて表示されます。サイズ引数をデバイス画面の境界に変更するか、最悪の場合UIImageScrollViewを別のビューに配置し、このコンテナビューの境界を使用してイメージサイズを設定してみてください。ご参考のため

ドキュメント:

宣言

FUNCのUIGraphicsBeginImageContextWithOptions(_サイズ:CGSize、_不透明:ブール値、_スケール:CGFloat)

パラメータ

サイズ: 新しいビットマップコンテキストのサイズ(ポイント単位)。これは、UIGraphicsGetImageFromCurrentImageContext関数によって返されるイメージのサイズを表します。ビットマップのサイズをピクセル単位で取得するには、幅と高さの値にscaleパラメータの値を掛けなければなりません。

0

これを試してください。それはたぶん、あなたはあなたの画面のスクリーンショットを置くことができApple Docs

関連する問題