我在应用程序中有大约 15 到 20 个视图。一种是用于相机功能。我可以查看设置UIImagePickerController
为显示相机的视图。我的问题是,当我在应用程序启动后直接打开相机时,一切正常。我的意思是取消,默认相机功能的捕获功能。但是假设,如果我浏览除了相机以外的所有东西,比如地图、webView 等,如果我打开相机,取消按钮不起作用(捕捉按钮在所有情况下都有效)。捕捉后,重拍、使用等控件正在显示成功,但这些按钮也无法访问。
注意:启动后直接打开相机不会出现上述问题。
这些是我尝试解决此问题的方法。
将前一个实例设为 nil 并在
UIImagePickerController
每次camera
调用时分配新的功能。每次打开相机之前都隐藏 tabBar,因为我怀疑 tabBar 的区域可能无法访问。
将视图的框架精确设置为手机屏幕大小,以确保可以访问整个视图。
请注意:
愿这会有所帮助。
这只发生在 iPhone3GS 中。在所有其他型号中,它工作得很好。
我发现,只有 tabBar 的一部分(存在于所有其他视图中并且仅在相机打开时才隐藏)不可访问。我通过按下所有按钮发现了这一点,我可以访问存在于 tabBar 之外的按钮部分。可能是下面的屏幕截图会提供更多信息。
请分享你的想法。
提前致谢。
编辑:
下面是我用来显示相机的代码。
-(IBAction)btnCamera_Clicked:(id)sender{
_imgPicker = nil;
_imgPicker = [[UIImagePickerController alloc] init];
_imgPicker.delegate = self;
_imgPicker.allowsEditing = NO;
_imgPicker.wantsFullScreenLayout = YES;
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
_imgPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
_imgPicker.showsCameraControls = NO;
_imgPicker.cameraOverlayView = vwCameraOverlay;
[self.tabBarController presentModalViewController:_imgPicker animated:YES];
}
}