2012-03-01 35 views
4

有没有办法在UIImagePickerController中隐藏翻转摄像头按钮?UIImagePickerController如何隐藏翻转相机按钮?

感谢您阅读 !^ _ ^!

+1

是,'[拾取setShowsCameraControls:FALSE]'但你必须添加自定义控制。 – 0xDE4E15B 2012-03-01 23:23:26

+0

感谢您的回复,已经尝试过这种方式,但如果我只隐藏了翻盖按钮将会非常好。不过,我认为可能需要添加我的自定义控件。谢谢 – xiaowoo 2012-03-01 23:55:06

回答

3

您应该能够在覆盖视图内创建一个空按钮,并将其浮动在翻转相机按钮的顶部。我砍了下面的代码来测试,它似乎工作。试一试。

UIView *cameraOverlayView = [[UIView alloc] initWithFrame:CGRectMake(screenSize.width - 100.0f, 5.0f, 100.0f, 35.0f)]; 
[cameraOverlayView setBackgroundColor:[UIColor blackColor]]; 
UIButton *emptyBlackButton = [[UIButton alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 100.0f, 35.0f)]; 
[emptyBlackButton setBackgroundColor:[UIColor blackColor]]; 
[emptyBlackButton setEnabled:YES]; 
[cameraOverlayView addSubview:emptyBlackButton]; 

cameraUI.allowsEditing = YES; 
cameraUI.showsCameraControls = YES; 
cameraUI.delegate = self; 

cameraUI.cameraOverlayView = cameraOverlayView; 
+0

这很好...直到我意识到视图在视频模式下完全可见。但是,仍然感激。 – damianesteban 2015-07-05 02:15:34

+0

工作在iPad上的风景,但需要更多的工作,如果你想处理屏幕旋转。 – tagy22 2015-08-12 09:13:07

6

我最终使用的UIImagePickerController的一个自定义子类来解决这个问题(和其他)问题:

#import "SMImagePickerController.h" 

@implementation SMImagePickerController 

void hideFlipButtonInSubviews(UIView *view) { 
    if ([[[view class] description] isEqualToString:@"CAMFlipButton"]) { 
     [view setHidden:YES]; 
    } else { 
     for (UIView *subview in [view subviews]) { 
      hideFlipButtonInSubviews(subview); 
     }  
    }  
}  

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 

    hideFlipButtonInSubviews(self.view); 
}  

@end 
+0

该视图在较新的iOS版本中被命名为CMKFlipButton – Jeremie 2016-11-17 14:15:57