【问题标题】:iOS app with camera popup带有相机弹出窗口的 iOS 应用
【发布时间】:2014-05-20 12:55:00
【问题描述】:

我正在使用 xcode 5 开发 iOS 7 应用程序。我正在使用相机功能。当用户在我的应用程序中按下相机按钮时,我想给他一个选择:拍摄一张新照片或从“照片流”中选择一张照片。我想显示一个弹出窗口,其中包含“WhatsApp”或 Apple Message 应用程序之类的选项。

我想;我创建了一个包含一个部分和三个单元格的表格视图控制器:拍照,从“照片流”中选择并取消。我将此部分设置在表格视图的底部,并使背景透明。但它不起作用;)

我也在谷歌上搜索过,但没有找到任何可以帮助我的东西。

谁能告诉我怎么做?

【问题讨论】:

标签: ios iphone objective-c popup whatsapp


【解决方案1】:

试试这个。你必须使用UIActionSheetDelegateUIImagePickerControllerDelegate

- (IBAction)changePhotoButtonPressed:(id)sender {
    UIActionSheet *actionSheet=[[UIActionSheet alloc] initWithTitle:@"MY APP"
                                                           delegate:self
                                                  cancelButtonTitle: nil
                                             destructiveButtonTitle: nil
                                                  otherButtonTitles:@"Take From Camera",@"Select From Library", @"Cancel", nil];
    actionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;
    actionSheet.destructiveButtonIndex=2;
    [actionSheet showInView:[UIApplication sharedApplication].keyWindow];
}

UIActionSheet 委托

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {

    if (buttonIndex==0) {
        [self takePictureFromCamera];
    }
    else if (buttonIndex==1) {
        [self pickImageFromLibrary];

    }
}

其他方法:

-(void) pickImageFromLibrary
{
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {

        UIImagePickerController* imgPicker=[[UIImagePickerController alloc] init];
        self.imagePicker = imgPicker;
        //UI Customization
        if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
            [[self.imagePicker navigationBar] setTintColor:[UIColor whiteColor]];
        }

        self.imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        self.imagePicker.delegate = self;

        [self presentViewController:self.imagePicker animated:YES completion:nil];

    } else {
        NSLog(@"Attempted to pick an image with illegal source type '%d'", UIImagePickerControllerSourceTypePhotoLibrary);
    }

}

-(void) takePictureFromCamera
{

    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

        UIImagePickerController* imgPicker=[[UIImagePickerController alloc] init];
        self.imagePicker = imgPicker;
        self.imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
        self.imagePicker.delegate = self;
        if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
            [[self.imagePicker navigationBar] setTintColor:[UIColor whiteColor]];
        }

        [self presentViewController:self.imagePicker animated:YES completion:nil];

    } else {
        NSLog(@"Attempted to pick an image with illegal source type '%d'", UIImagePickerControllerSourceTypePhotoLibrary);

        UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"MY APP" message:@"CAMERA_NOT_AVAILABLE" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
        [alert show];
    }
}

【讨论】:

    【解决方案2】:

    您应该使用UIImagePickerController 并将其类型设置为UIImagePickerControllerSourceTypeCameraUIImagePickerControllerSourceTypePhotoLibrary

    对于带有选项的弹出窗口,请使用UIActionSheet

    您可以查看 Apple 的 UIImagePickerController 示例代码: https://developer.apple.com/library/ios/samplecode/PhotoPicker/Introduction/Intro.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-19
      • 2011-09-30
      • 2013-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多