我創建了一個UIImagePicker/camera視圖,帶有用於拍攝快照的工具欄和自定義按鈕。由於自定義按鈕,我無法真正改變爲使用默認方式,而且我正在繪製視圖頂部。當你點擊按鈕時,我想用UIGetScreenImage()截取屏幕截圖;然而,該工具欄顯示出來的圖像,即使我先隱藏:強制UIView立即重畫,而不是在下次運行循環中
//hide the toolbar
self.toolbar.hidden = YES;
// capture the screen pixels
CGImageRef screenCap = UIGetScreenImage();
我敢肯定,這是因爲即使工具欄被隱藏,它就會被重新繪製,一旦函數返回,我們進入下一個運行循環 - 在調用UIGetScreenImage之後。
我試圖使作如下補充,但它並沒有幫助:
//hide the toolbar
self.toolbar.hidden = YES;
[self.toolbar drawRect:CGRectMake(0, 0, 320, 52)];
// capture the screen pixels
CGImageRef screenCap = UIGetScreenImage();
我也用setNeedsDisplay嘗試過,但不起作用要麼是因爲當前函數返回後再次平局發生。
有什麼建議嗎?謝謝!
這一項並沒有這樣做,但一個小小的補充讓它工作。我用[self performSelector:@selector(captureScreen)withObject:nil afterDelay:0]調用截屏選擇器;並完成了工作。感謝領先! – 2010-05-14 15:06:51
[self performSelector:@selector(captureScreen)withObject:nil afterDelay:0];實際上使「captureScreen」在下一次運行循環中運行。 – 2011-09-15 12:44:11