Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS 7 UIImagePickerController navigationbar overlap

I ran into a problem accessing photo library in iOS7 (iOS6 is OK). It seems navigation bar overlaps the photo album view, I tried to set picker.edgesForExtendedLayout = UIRectEdgeNone; but it doesn't work.

UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
    picker.edgesForExtendedLayout = UIRectEdgeNone;
}

[self presentViewController:picker animated:YES completion:nil];

Look at my screenshot

enter image description here

like image 480
Jun Avatar asked Feb 15 '23 07:02

Jun


2 Answers

This works for me:

UIImagePickerController set translucent = NO to navigation Bar

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

imagePicker.navigationController.navigationBar.translucent = NO;

After this, implement this code in your UIImagePickerController delegate:

- (void)navigationController:(UINavigationController *)navigationController
      willShowViewController:(UIViewController *)viewController
                    animated:(BOOL)animated
{
    if ([navigationController isKindOfClass:[UIImagePickerController class]])
    {        
        viewController.navigationController.navigationBar.translucent = NO;
        viewController.edgesForExtendedLayout = UIRectEdgeNone;
    }
}
like image 106
user2192708 Avatar answered Feb 16 '23 20:02

user2192708


Swift version of the above answer:

func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) {
        if navigationController.isKindOfClass(UIImagePickerController.self) {
            viewController.navigationController!.navigationBar.translucent = false
            viewController.edgesForExtendedLayout = .None
        }
    }
like image 21
Chris C Avatar answered Feb 16 '23 21:02

Chris C