2012-01-12 7 views
-1

Xcode4.2、SDKでは正常に動作5.0は、スクリーンショットを取ることはiOS5をではなく、iOS4を

QuartzCore.frameworkが追加されました。

#import <QuartzCore/QuartzCore.h> 
@property (retain, nonatomic) IBOutlet UIImageView *imageView; 

-(UIImage*)getShot 
{ 
    CGSize imageSize = CGSizeMake(320, 460); 
    UIGraphicsBeginImageContext(imageSize); 
    [imageView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return viewImage; 
} 

iOS5では正常に動作しますが、iOS4では正常に動作しません。私はそれが助けない

UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0.0) 

または

UIGraphicsBeginImageContext(imageSize) 

を使用するかどうか

+0

私は、Xcode4.2の問題点を理解しています.iOS4のみをサポートするXcode4.1を使用すると、iOS4では正常に動作します。 – Patrick

答えて

0
- (UIImage*) takeScreenshot 
{ 
     if (iosVersionIsAtLeast(4.0)) 
       UIGraphicsBeginImageContextWithOptions(self.frame.size, NO, 0.0); 
     else 
       UIGraphicsBeginImageContext(self.frame.size); 
     [self.layer renderInContext:UIGraphicsGetCurrentContext()]; 

     // save to UIImage 
     UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext(); 
     UIGraphicsEndImageContext(); 
     return screenshot; 
} 
+0

iosVersionIsAtLeast()メソッドを使用する場合は、何をインポートする必要がありますか? – Patrick

+0

UIGraphicsBeginImageContextWithOptions()またはUIGraphicsBeginImageContext()のどちらを使用しても、それは役に立ちません。 – Patrick

関連する問題