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