2009-12-04 63 views
1

我是用UIGetScreenImage在我的应用程序,但是,大家都知道苹果是使用私有API的应用程序拒绝。我已经研究了替代方法来完成这个拍摄,但你会得到不同大小的图像以及烦人的快照声音。微软标签。 Quickmark和Redalaser都使用UIGetScreenImage(这很明显),但我想合法地做到这一点。有没有人有任何建议。非常感激。UIGetScreenImage - 私人API

+1

它可能不是最佳的用户体验,这取决于你的应用程序,但有可能的是,你可以要求用户采取屏幕快照,然后从相机胶卷怎么做呢? – bpapa 2009-12-04 21:14:48

回答

0

最佳(最慢)的东西做的是文件在苹果功能要求。

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; 
} 
3

UIGetScreenImage是苹果公司推荐的捕捉屏幕的方式。这是一种私有方法,但是他们在开发人员论坛中声明,使用它的方法是可以接受的,直到他们添加一个与public-API相同的方法。

更新:UIGetScreenImage不再允许的,如的iOS 4的;我相信批准的拍照方式现在正在使用AVFoundation框架。