2012-02-29 4 views
0

Проблема выглядит так, что она как-то сосредотачивается вокруг события popover. Ex. Я нажимаю «Камера». Он запускает камеру по модулю вплоть до абсолютной вершины экрана. Если я нажимаю «Отменить» и «Повторить». Все выглядит идеально. Теперь, если я выберу для просмотра всплывающей камеры Roll .. в следующий раз, когда камера запустит ее примерно на 20 пикселей с верхней части экрана, а кнопка nav bar будет отображаться только наполовину. (иметь в виду, что стандартный экран имеет стандартную верхнюю панель, но модальная камера занимает полный абсолютный экран 1024x768).UIImagePicker Camera view не полноэкранный Ipad2

мой код:

- (IBAction) getPhoto: (id)sender 
{ 
    if ([self.popoverController isPopoverVisible]) { 
     [self.popoverController dismissPopoverAnimated:YES]; 
    } 

    else if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) 
    { 

     imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; 
     imagePicker.allowsEditing = YES; 
     [self presentModalViewController:imagePicker animated:YES];  
    } 
} 

- (IBAction) useCameraRoll: (id)sender 
{ 
    if ([self.popoverController isPopoverVisible]) { 
     [self.popoverController dismissPopoverAnimated:YES]; 

    } 
    else if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum]) 
    { 
     imagePicker.sourceType =UIImagePickerControllerSourceTypePhotoLibrary; 
     self.popoverController = [[UIPopoverController alloc] initWithContentViewController:imagePicker]; 
     popoverController.delegate = self; 
     [self.popoverController presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 
    } 

} 

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { 
    [picker dismissModalViewControllerAnimated:YES]; 
} 

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo 
{ 
    [self.popoverController dismissPopoverAnimated:true]; 
    UIImage *savedimage = [editingInfo objectForKey:UIImagePickerControllerOriginalImage]; 
    imageView.image = savedimage; 
    UIImageWriteToSavedPhotosAlbum (savedimage, self, nil, nil); 
} 

ответ

0

Я считаю, что, когда вы представляете UIImagePickerController в пироге, то поповер держится на представление и вызывающий некоторые проблемы. Попытка высвободить представление из popover путем уничтожения popover (и, следовательно, его subviews) или установки popover content в nil. Пример.

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage (UIImage *)image editingInfo:(NSDictionary *)editingInfo 
{ 
    [self.popoverController setContentViewController:nil]; 
    [self.popoverController dismissPopoverAnimated:true]; 
    UIImage *savedimage = [editingInfo objectForKey:UIImagePickerControllerOriginalImage]; 
    imageView.image = savedimage; 
    UIImageWriteToSavedPhotosAlbum (savedimage, self, nil, nil); 
} 
+0

nope .. Я предполагаю, что это должно быть что-то в useCameraRoll popover. Если я избегу этого, все будет в порядке. Если этот popover используется, хотя .. он заставил камеру никогда не модально перейти в абсолютную вершину экрана. – DJPlayer

+0

Я думаю, что при создании образа imagepicker он смещает его, чтобы он поместился в popover с соответствующей границей. Возможно, попробуйте воссоздать imagepicker или сбросить его фрейм – tofortier

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