1

然而,我在我的应用程序中使用了 UIGetScreenImage,众所周知,Apple 拒绝使用私有 API 的应用程序。我已经研究了使用 takepicture 执行此操作的替代方法,但是您会得到不同大小的图像以及烦人的快照声音。微软标签。Quickmark 和 Redalaser 都使用 UIGetScreenImage(很明显),但我想合法地这样做。有没有人有任何建议。非常感激。

4

3 回答 3

3

UIGetScreenImage是目前苹果推荐的截屏方式。这是一种私有方法,但他们已经在开发者论坛中声明,在添加等效的公共 API 之前,使用它是可以接受的。

更新:UIGetScreenImage不再允许,从 iOS 4 开始;我相信现在认可的拍照方式是使用 AVFoundation 框架。

于 2010-07-13T07:22:42.450 回答
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; 
}
于 2009-12-04T21:28:10.293 回答
0

最好(也是最慢)的做法是向 Apple 提交功能请求。

于 2009-12-04T21:08:33.697 回答