【问题标题】:IPhone UIView and UIImagePickerControlleriPhone UIView 和 UIImagePickerController
【发布时间】:2011-04-14 18:19:37
【问题描述】:

我是 Iphone 开发的新手,遇到了一种情况,我需要一个名为 PhotoSelectorViewController 的 ViewController,它会要求从手机库中挑选图像。我知道 UIImagePickerController 在那里,但我不知道如何正确使用它。

我尝试了以下操作:

第一种方法:

  1. 我使用 xib 文件创建了一个名为 PhotoSelectorViewController 的 ViewController。
  2. 我从 xib 文件中删除了 View 并将 UIImagePickerController 添加到列表中。
  3. 我不知道接下来要做什么来启动选择器,因为此时将创建此类的实例并调用此 ViewController 中的某个 init 函数。

第二种方法:

  1. 我创建了新项目并添加了一个名为 PhotoSelectorViewController 的视图控制器,其中只有一个窗口和一个 UIView。
  2. 在 UIView viewDidLoad 函数中,我正在创建 UIImagePickerController 实例并将其添加到视图中。
  3. 我不知道当创建此视图控制器的实例时该选择器将如何启动?

如果可以的话,请帮忙。

【问题讨论】:

    标签: iphone xcode


    【解决方案1】:

    最简单的方法是从调用视图控制器以模态方式呈现它。

    例如,如果您在 MyController 上有一个名为 showPhotos 的按钮:

    -(IBAction)showPhotos:(id)sender {
        UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
        imagePicker.delegate = self;
        imagePicker.allowsEditing = YES;
        imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        [self presentModalViewController:imagePicker animated:YES];
    }
    

    然后,你需要实现

    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

    在同一个控制器中(在我的示例中)被设置为委托。

    allowsEditing 允许用户在使用前平移、缩放和裁剪图像。如果您不想允许,只需设置为 NO。

    在您的委托方法中,字典包含生成的UIImage。您可以通过

    获得

    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

    UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage]; 如果您允许编辑。

    【讨论】:

    【解决方案2】:

    您的第二种方法更接近,但不要将其添加到视图中,您需要将UIImagePickerController 呈现为模态视图控制器,或者将其推送到导航堆栈。

    把它想象成PhotoSelectorViewControllerUIImagePickerController 的启动器。

    文档给出了一个很好的序列(见顶部附近的 1-5):http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImagePickerController_Class/UIImagePickerController/UIImagePickerController.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多