3

카메라 또는 사진 라이브러리에서 이미지를 선택할 수있는 UIActionSheet이 있습니다. 이를 위해 imagePickerViewController을 사용했습니다. 카메라에서는 절대적으로 잘 작동합니다. 그러나 사진 라이브러리가 아닙니다. 감동 사진 라이브러리 옵션에IPad의 UIActionSheet에서 uiimagepickercontrollersourcetypephotolibrary 용 UIImagePickerViewController를 표시하십시오.

-(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]; 
      } 
     } 


    } 

} 

는 작은 popupViewController은보기의 상단에 생성하지만, 아주 작은입니다. popupViewController이 너무 작 으면 어떨까요? uiimagepickercontrollersourcetypephotolibraryUIImagePickerViewController을 표시하는 다른 방법이 있습니까?

+0

presentPopoverFromRect 크기를 원하는대로 변경하십시오. – Hiren

답변

3

하는

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]; 
-1

이 시도 :

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

은 iPhone에서 작동하고 iPad에서는 작동하지 않습니다. 또한 죄송합니다, downvote 내가 뭘하고 싶지 않았어. – TwiterZX

1

나는 당신이 전달하는 RECT 작은해야한다는 생각이 예제를 시도 전체보기하지 크기 :

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

CGRectMake 4 매개 변수를 허용합니다. 그러나 그것은 도움이되었습니다. – Nitish

+0

하하, 늦은 밤 오류, 그것을 지적 해 주셔서 고마워요 ... 나는 그것을 도와줬고 다행이었습니다. :) – tams

1

UIImagePickerViewController에 대한 PopoverContentSize을 popover에 표시하지 않으려 고 시도하십시오. 자동적으로 켄 케어! 또한 presentPopoverFromRect:CGRect은 화면의 중심을 가리키는 팝업으로 변환되는 view의 프레임을 전달할 때 잘못된 것으로 보입니다. UIActionSheet을 제시 한 버튼의 프레임으로 설정할 수 있습니다!