1

我试图使用按钮而不是主页按钮/开关事件从我的应用程序中保存屏幕。我使用self.

“在“...我的视图控制器”类型的对象上找不到属性窗口

- (IBAction)saveto:(id)sender {
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
    UIGraphicsBeginImageContextWithOptions(self.window.bounds.size, NO, [UIScreen mainScreen].scale);
else
    UIGraphicsBeginImageContext(self.window.bounds.size);
[self.window.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData * data = UIImagePNGRepresentation(image);
[data writeToFile:@"my.png" atomically:YES];

(图像视图在 .h 中声明为出口)

我知道我在这里遗漏了一些基本的东西,但无法弄清楚,任何帮助都得到了极大的帮助

4

1 回答 1

2

self.view.window我很确定。:)

- (IBAction)saveto:(id)sender {
    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
        UIGraphicsBeginImageContextWithOptions(self.view.window.bounds.size, NO, [UIScreen mainScreen].scale);
    else
        UIGraphicsBeginImageContext(self.window.bounds.size);
    [self.view.window.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    NSData * data = UIImagePNGRepresentation(image);
    [data writeToFile:@"my.png" atomically:YES];
}

Window 是 UIView 上的一个属性。

http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html

window 接收者的窗口对象,如果没有,则为 nil。(只读)

@property(nonatomic, readonly) UIWindow *window Discussion 如果视图尚未添加到窗口,则此属性为零。

可用性 适用于 iOS 2.0 及更高版本。在 UIView.h 中声明

UIViewController 没有窗口属性。但是它有一个 view 属性,它确实有一个 window 属性:)

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIViewController_Class/Reference/Reference.html

于 2012-06-11T13:15:25.133 回答