2010-02-17 41 views
2

我在一直的UIImagePickerController附近工作和我有我需要的時候,當源類型設置爲相機(UIImagePickerControllerSourceTypeCamera)中的UIImagePickerController相機快門打開,以獲得精確時刻的一個問題擊中。回調相機快門打開事件

我已經做了一些Google搜索,並且意識到沒有人有這樣奇怪的要求!

我環顧UIImagePickerController和UIImagePickerControllerDelegate的文檔,希望得到一些委託方法/回調指示相機快門打開事件,但沒有找到任何。

有什麼建議嗎?

感謝您的幫助,

拉吉爬完

+0

你能告訴我們更多關於爲什麼你認爲你需要知道這個以及你想完成什麼?你可以想象通過調用UIGetScreenImage和「尋找」快門來解決這個問題... – 2010-02-17 08:48:14

+1

我想通過使用takePicture和private api來獲取屏幕圖像的示例應用程序UIGetScreenImage,後來我發現了UIGetScreenImage會給出快門圖像太!這很明顯,如果你使用私人API。所以我想知道是否可以在快門收起後稍晚觸發UIGetScreenImage,爲此我需要一些回調/委託方法來通知快門打開。 我無法完全理解「UIGetScreenImage」和「尋找快門......」的含義,我如何區分快門圖像與其他相機圖像? – 2010-02-17 12:35:31

回答

0

我sugestion(沒有嘗試自己,但不明白爲什麼它不會工作):

  • 子類的UIImagePickerController類並重寫viewWillAppear和viewDidAppear:當UIImagePickerController即將出現或出現時(如果您使用presentModalController正確觸發其顯示),將觸發這些方法。

 
    @interface MyUIImagePickerController : UIImagePickerController { 
    } 
    @end

@implementation MyUIImagePickerController 
-(void)viewWillAppear:(BOOL)animated { 
    NSLog(@"the picker is about to appear"); 
    [super viewWillAppear:animated]; 
} 

-(void)viewDidAppear:(BOOL)animated { 
    NSLog(@"the picker did appear"); 
    [super viewDidAppear:animated]; 
} 
@end 

+1

@yonel,它不起作用。一旦在相機快門關閉的情況下顯示圖像選擇器控制器的視圖,就會調用viewDidAppear。 – 2010-02-18 05:25:15

+0

嗡嗡聲,我不認爲你期望的準確度是如此「極端」:)也許你能告訴我們爲什麼你需要在打開相機快門的時候獲得這樣的準確性嗎?也許這會給想法「解決」這個問題:/ – yonel 2010-02-18 08:00:35

+1

我做了一些更多的使用不同的關鍵詞(虹膜,而不是快門)googling和偶然發現這一點:http://stackoverflow.com/questions/1570419/detecting-when-相機的光圈,是開放式,iphone/1581317。它解決了我所有的問題。我保持我的手指交叉,希望蘋果不會拒絕它。 – 2010-02-18 11:41:21

2

訂閱:

AVCaptureSessionDidStartRunningNotification 

這是光圈全開動畫開始時。如果在此期間添加cameraOverlayView,它將被虹膜適當覆蓋。它與PL ...私人通知同時發佈。這是一種成文的方法,不會冒着應用程序拒絕的風險。

+1

是的,但是我的問題在AV框架不存在時被問到,我們的部署目標與iOS 3一樣低。 – 2013-02-22 06:28:11