2009-12-04 40 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框架。