【问题标题】:UIImagerPicker "Move and Scale" not workingUIImagerPicker“移动和缩放”不起作用
【发布时间】:2012-01-27 00:03:58
【问题描述】:

我正在使用图像选择器拍照,然后进入编辑屏幕。当程序进入编辑屏幕时,尽管底部显示“移动和缩放”,但它不允许我移动或缩放图像。控件似乎已失效。我将覆盖视图移动到屏幕顶部,以确保它不会干扰控件。这是我设置图像选择器的代码:

- (void)setupImagePicker:(UIImagePickerControllerSourceType)sourceType

{
    self.imagePickerController.sourceType = sourceType;

    if (sourceType == UIImagePickerControllerSourceTypeCamera)
    {
        self.imagePickerController.showsCameraControls = YES;
        if (self.imagePickerController.allowsEditing==FALSE) 
        {
            self.imagePickerController.allowsEditing = TRUE;
        }
    [self.imagePickerController.cameraOverlayView addSubview:self.view];
    }

    if (sourceType == UIImagePickerControllerSourceTypeSavedPhotosAlbum)
    {
    }
}

我需要做什么才能使移动和缩放控件起作用?

【问题讨论】:

    标签: iphone ios5 camera uiimagepickercontroller


    【解决方案1】:

    即使我的叠加视图设计为 320 宽 x 44 高,imagePicker cameraOverlayView 默认为 320 x 480,覆盖图像视图“移动和缩放”拖动和捏合手势。我调整了 cameraOverlayView 的大小,“移动和缩放”开始工作。下面是添加cameraOverlayView的代码(叠加层为self.view):

        CGRect overlayRect = self.view.frame;
        [self.imagePickerController.cameraOverlayView setFrame:overlayRect];
        [self.imagePickerController.cameraOverlayView addSubview:self.view];
    

    【讨论】:

      【解决方案2】:

      您应该像这样创建/呈现 UIImagePicker 视图:

      if (![UIImagePickerController isCameraDeviceAvailable: UIImagePickerControllerSourceTypeCamera])
      {
          //no camera available, notify the user then exit before crashing the app
          return;
      }
      
      //display picker control (no release, assume ARC)
      UIImagePickerController * uiimage_picker = [[UIImagePickerController alloc] init];
      [uiimage_picker setSourceType:UIImagePickerControllerSourceTypeCamera];
      [uiimage_picker setAllowsEditing:YES];
      
      [uiimage_picker setDelegate: self];    
      [self presentModalViewController:uiimage_picker animated:YES];
      

      你不必使用模态控制器,你可以将它作为你的子视图,但这是默认的呈现方式。

      【讨论】:

      • 我认为这是呈现选择器的另一种方式。我遵循了 Apple 的照片选择器示例代码。您是否认为我的演示文稿与编辑控件不起作用有关?
      • 我只是说这是我一直做事的方式,从来没有遇到过任何问题。它简单、干净并且有效。当我看到类似 [self.imagePickerController.cameraOverlayView addSubview:self.view];我很害怕。
      • 我同意 photoPicker 示例代码以这种方式很奇怪。当我随着应用程序移动时,我计划转换为您呈现选择器的方式。目前,我解决了这个问题。见下文。
      【解决方案3】:

      初始化时

      UIImagePickerController  *imagepicker=[[UIImagePickerController alloc]init];
                  imagepicker.delegate=self;
                  imagepicker.allowsEditing = YES;
                  if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
                      imagepicker.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;
                  }
      

      在委托方法中,您可以使用 UIImagePickerControllerEditedImage 键获得编辑后的图像

      - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
      {
      
      
          UIImage *img=[info objectForKey:UIImagePickerControllerEditedImage];
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-15
        • 2020-07-09
        • 2013-02-15
        • 2015-07-08
        • 2016-04-11
        • 1970-01-01
        相关资源
        最近更新 更多