3

У меня есть UIActionSheet, у которого есть варианты выбора изображения из камеры или библиотеки фотографий. Для этого я взял imagePickerViewController. Для камеры он работает абсолютно нормально. Но не для библиотеки фотографий.Показать UIImagePickerViewController для uiimagepickercontrollersourcetypephotolibrary из UIActionSheet в IPad

-(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 слишком мал? Есть ли другой способ для отображения UIImagePickerViewController для uiimagepickercontrollersourcetypephotolibrary?

+0

изменить настоящееПоддержкаFromRect размер по вашему желанию – 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

Я думаю, что Прямоугольник вы передаете должно быть меньше, а не размер всего обзора:

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

Попробуйте ввести PopoverContentSize для UIImagePickerViewController, представленных в popover - я думаю, это ta ken заботиться автоматически! Кроме того, CGRect в presentPopoverFromRect: представляется неправильным, поскольку вы передаете кадр view, который переводится в поппер, указывающий примерно на центр экрана. Возможно, вы захотите установить это на кадр кнопки, который представил UIActionSheet!

Смежные вопросы