1

私は自分のアプリでUIGetScreenImageを使用していましたが、AppleがプライベートAPIを使用するアプリを拒否していることは誰もが知っているようです。私はtakepictureでこれを行う別の方法を研究しましたが、異なるサイズの画像と迷惑なスナップショットサウンドが得られます。Microsoftタグ。QuickmarkとRedalaserはすべてUIGetScreenImageを使用します(それは明らかです)が、私はこれを合法的に行いたいと思っています。誰か提案がありますか?とても有難い。

4

3 に答える 3

3

これはうまくいくかもしれません...私はそれが別のSOの質問への答えだったと思います。

-(UIImage *)captureView:(UIView *)view {
    CGRect screenRect = [[UIScreen mainScreen] bounds];    
    UIGraphicsBeginImageContext(screenRect.size);
    CGContextRef ctx = UIGraphicsGetCurrentContext(); 
    [[UIColor blackColor] set]; 
    CGContextFillRect(ctx, screenRect);
    [view.layer renderInContext:ctx];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage; 
}
于 2009-12-04T21:28:10.293 に答える
3

UIGetScreenImageは、現在 Apple が推奨する画面のキャプチャ方法です。これは一種のプライベート メソッドですが、開発者フォーラムでは、同等のパブリック API を追加するまでは使用できると述べています。

更新: UIGetScreenImageiOS 4 以降、許可されなくなりました。写真を撮るための承認された方法は、現在 AVFoundation フレームワークを使用していると思います。

于 2010-07-13T07:22:42.450 に答える
0

最善の (そして最も遅い) 方法は、Apple に機能要求を提出することです。

于 2009-12-04T21:08:33.697 に答える