0

サブビューが追加されたビューがあります。多くのサブビューを含むそのビューを単一の画像またはビューに変えたいと思います。

そんなことがあるものか?
ありがとう

4

4 に答える 4

4

[UIView snapshotViewAfterScreenUpdates:]iOS7 では、新しい方法を使用できます。

古い OS をサポートするために、Core Graphics を使用して任意のビューを UIImage にレンダリングできます。スナップショットの UIView でこのカテゴリを使用します。

UView+Snapshot.h:

#import <UIKit/UIKit.h>

@interface UIView (Snapshot)
- (UIImage *)snapshotImage;
@end

UView+Snapshot.m:

#import "UIView+Snapshot.h"
#import <QuartzCore/QuartzCore.h>

@implementation UIView (Snapshot)

- (UIImage *)snapshotImage
{
    UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, 0.0);
    [self.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return resultingImage;
}

@end

QuartzCore フレームワークが必要なので、必ずプロジェクトに追加してください。

それを使用するには、ヘッダーをインポートして次のようにします。

UIImage *snapshot = [interestingView snapshotImage];
于 2012-06-22T06:40:37.637 に答える
1

Core Graphics のレンダリング関数を使用してビューをコンテキストにレンダリングし、そのコンテキストの内容で画像を初期化することは実際に可能です。良いテクニックについては、この質問への回答を参照してください。

于 2012-06-21T20:54:55.673 に答える