2011-06-05 43 views
2

爲了使我的自定義工具欄在我UIImagePickerControllerSourceTypeCamera,我不得不關掉攝像機控制這樣的:隱藏UIImagePickerControllerSourceTypceCamera工具欄,但特定按鈕?

pickerOne.showsCameraControls = YES; 

我想說明的變焦,閃光燈,切換攝像頭,並專注於UIImagePickerController,但我想創建我的自定義視圖。添加我的自定義視圖時,只有在關閉cameraControls時纔會顯示。

有什麼方法可以不隱藏相機控制並使我的自定義視圖?或者我將不得不手動添加這些按鈕?

回答

0

您可以通過檢查hittest方法中的接收視圖來忽略覆蓋視圖上的觸摸。只需將此代碼添加到疊加視圖中,該視圖上的所有內容都將被忽略,但不會覆蓋其子視圖上的內容。

-(id)hitTest:(CGPoint)point withEvent:(UIEvent *)event 
{ 
    id hitView = [super hitTest:point withEvent:event]; 
    if (hitView == self) return nil; 
    else return hitView; 
} 

如果今天在stackoverflow上閱讀,但我不記得在哪裏,sry。

2

我相信除了在自定義視圖中實現本地功能(疊加),沒有其他方式(至少以直接方式)。
其他方法(我沒有嘗試過)是將自定義視圖(不使用cameraOverlay屬性)添加到UIImagePickerController rootview。這不是建議/允許的,但似乎會起作用。自動閃光/縮放/前置攝像頭...不使用自定義視圖的原因是,視圖層次不同。

如果你看看流行的相機應用程序,他們大多數實現這些控制。另外,我也做了同樣的事情。
事實上,它應該很難實現。 '點擊對焦'實施起來很棘手,實際的焦點是默認完成的。我們所需要做的就是圍繞觸摸畫出正方形。