显示IPad中UIActionSheet中uiimagepickercontrollersourcetypephotol



我有一个UIActionSheet,它可以从相机或照片库中选择图像。为此,我选择了imagePickerViewController。对于相机来说,它工作得非常好。但不适用于照片库。

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    if (buttonIndex == 0) 
    {
        imgController = [[UIImagePickerController alloc] init];
        imgController.allowsEditing = YES;
        imgController.sourceType =  UIImagePickerControllerSourceTypeCamera;   
        imgController.delegate=self;
        [self presentModalViewController:imgController animated:YES];
    } 
    else if (buttonIndex == 1) 
    {
        if ([self.popoverController isPopoverVisible]) {
            [self.popoverController dismissPopoverAnimated:YES];
            [popoverController release];
        } else {
            if ([UIImagePickerController isSourceTypeAvailable:
                 UIImagePickerControllerSourceTypeSavedPhotosAlbum])
            {
                UIImagePickerController *imagePicker =
                [[UIImagePickerController alloc] init];
                imagePicker.delegate = self;
                imagePicker.sourceType =
                UIImagePickerControllerSourceTypePhotoLibrary;
                imagePicker.allowsEditing = NO;
                self.popoverController = [[UIPopoverController alloc]
                                          initWithContentViewController:imagePicker];
                self.popoverController.delegate = self;
                [self.popoverController setPopoverContentSize:CGSizeMake(500, 500)];
                [self.popoverController presentPopoverFromRect:self.view.frame 
                                                          inView:self.view
                                        permittedArrowDirections:UIPopoverArrowDirectionAny 
                                                        animated:YES];

                [imagePicker release];
            }
        }

    } 
}  

在触摸照片库选项时,会在视图顶部创建一个小的弹出视图控制器,但它非常小。为什么弹出视图控制器太小?对于uiimagepickercontrollersourcetypephotolibrary,是否有其他显示UIImagePickerViewController的方法?

试试这个例子

   CGRect popoverRect = [self.view convertRect:[self.view frame] 
                                       fromView:[self.view superview]];
    popoverRect.size.width = MIN(popoverRect.size.width, 80) ; 
    popoverRect.origin.x  = popoverRect.origin.x+150; 
    [self.popoverController 
     presentPopoverFromRect:popoverRect 
     inView:self.view 
     permittedArrowDirections:UIPopoverArrowDirectionLeft
     animated:YES];

尝试不为popover中显示的UIImagePickerViewController设置PopoverContentSize-我认为它会自动处理!此外,presentPopoverFromRect:中的CGRect似乎不正确,因为您正在传递view的帧,该帧转换为大致指向屏幕中心的popover。您可能需要将其设置为显示UIActionSheet

我认为传入的rect应该更小,而不是整个视图的大小:

CGRect popFrom = CGRectMake (CGPointMake(50,50),10,10);
[self.popoverController presentPopoverFromRect:popFrom 
                                                          inView:self.view
                                        permittedArrowDirections:UIPopoverArrowDirectionAny 
                                                        animated:YES];

试试这个:

 imagePickerController = [[UIImagePickerController alloc] init];
 imagePickerController.delegate = self;
 imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
 [self presentModalViewController:imagePickerController animated:YES];   

相关内容

  • 没有找到相关文章

最新更新