简介

 

下面这个小程序将建立一个小的网页浏览器,它启动时加载www.google.com。这个程序在底部的工具条上有一个按钮可用来截取网页图并存储到你的照片库中。

 

Screenshots

 

源代码

 

这里下载。

 

步骤

 

第一步

在Xcode中创建一个View Based应用程序。随便去一个名。

 

第二步

在视图控制器的头文件中定义:

1
2
3
4
5
6
7
8
9
10
#import  @interface ScreenCaptureViewController : UIViewController
{
    IBOutlet UIWebView *webview;
}

@property (nonatomic, retain) IBOutlet UIWebView *webview;

-(IBAction)captureScreen:(id)sender;

@end

 

第三步

打开视图控制器XIB文件。

  • 拖入UIToolbar到屏幕底部。
  • 拖入UIToolbarButtom并命名。
  • 在按钮两边拖入适当空间使按钮居中。
  • 拖入UIWebView占据工具栏上方屏幕。
  • 连接UIWebView到webview的IBOutlet.
  • 连接UIToolbarButton到IBAction catureScreen:(id)sender.

 

第四步

取消viewDidLoad方法的注解并使用下面代码:

1
2
3
4
5
6
- (void)viewDidLoad
{
    [super viewDidLoad];
    [webview loadRequest:[NSURLRequest requestWithURL:
            [NSURL URLWithString:@"http://www.google.com"]]];  
}

 

第五步

剩下的工作就是创建IBAction captureScreen。下面的代码加到视图控制器的主文件中(.m)中:

1
2
3
4
5
6
7
8
-(IBAction)captureScreen:(id)sender
{
    UIGraphicsBeginImageContext(webview.frame.size);
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);
}

 

结论

 

就这么简单。你可以使用这些代码获取任何UIView子类的截图。你所需要做的只是替换第三行的webview.frame.size为foobar.frame.size,foobar.frame.size可以是任何UIView的子类。