2013-05-23 1 views
0

EDIT: Я использую UIStoryBoard.UIImagePickerController при увольнении толкает просмотр до 20 пикселей в iOS 6.0 только

У меня presented так:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; 

imagePicker.delegate = self; 

imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; //| UIImagePickerControllerSourceTypeSavedPhotosAlbum ; 
imagePicker.mediaTypes = [NSArray arrayWithObjects:(NSString *) kUTTypeImage,nil]; 

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) 
{ 
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) 
    { 
     imagePicker.allowsEditing = YES; 
     [self.navigationController presentViewController:imagePicker animated:YES completion:^{ 

     }]; 
    } 
} 

Теперь, когда dissmissed

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    UIImage *image = info[UIImagePickerControllerEditedImage]; 
    NSLog(@"Image : %@",image); 
    [self dismissViewControllerAnimated:YES completion:^{ 
    }]; 
} 

view Теперь становится так, как показано на fiqure:

enter image description here

РЕДАКТИРОВАТЬ: просмотр сжимается до 20 пикселей при диспропорции.

EDIT: Это только прошивка 6.0 только

+0

У вас есть панель инструментов на этом экране? или Вы устанавливаете рамку просмотра где угодно? потому что тот же код я также запускаю в своем приложении свой рабочий режим. – LittleIDev

+0

Да, я устанавливаю [self.navigationController.view setBounds: CGRectMake (0, 0, 320, 480)]; in viewDidLoad метод –

+0

Является ли эта синяя часть UIView или панель навигации? – Maulik

ответ

1

Причина была я была установка рамы из view controller, которая находится в protrait mode, как его previous view был в landscape mode.

self.view.bounds = CGRectMake(0,0,...,...); 

Когда imagepickerdissmiss получил called это moved к original position в mentioned.

Теперь изменилось в structure для orientationбез установки self.view рамы снаружиsolved мой problem.

0

Если что синяя часть зрения пользовательских UIView то вы должны проверить маску автоматического изменения размера для этого вида. Вы найдете проблему.

+0

автомасштабирование маски для синей части, но никакого эффекта спасибо в любом случае !!!!!!! –

0

У меня есть аналогичная проблема, и в моем случае 20 пикселей были высотой строки состояния. Итак, попробуйте установить видимость строки состояния в положение NO перед показом imagePicker и YES, когда закончите (в методах делегата).

что-то вроде этого:

[UIApplication sharedApplication].statusBarHidden = YES; 
[self.navigationController presentViewController:imagePicker animated:YES completion:^{ 
     }]; 


-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    // ... your code here 
    [UIApplication sharedApplication].statusBarHidden = NO; 
    [self dismissViewControllerAnimated:YES completion:^{ 
    }]; 
} 
0

У меня была аналогичная проблема на iOS 8.2. После выбора видео с использованием UIImagePickerController рамка увеличивается на 20 пикселей, верхняя область контроллера выглядит хорошо, но нижняя часть обрезана. Решение таково:

-(void)openPicker {} 
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide]; 
    UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
    //configure image picker here 
    [self presentViewController:picker animated:YES completion:NULL]; 
} 

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(showStatusBar) userInfo:nil repeats:NO]; 
    [picker dismissViewControllerAnimated:YES completion:NULL]; 
} 

-(void)showStatusBar { 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide]; 
    }); 
} 
Смежные вопросы