Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>This annoyed me a whole lot - I am this close to implementing my own custom image picker using AssetsLibrary.</p> <p>But in the meantime, this hack worked for me - I am displaying the picker, searching for the scroll view in the view hierarchy, and scrolling it to the end, more or less. It needs to be animated as this happens when the view is already loaded - but it's still better than the user having to scroll through 5,000 photos until they get to the newest ones.</p> <pre><code> [self presentViewController:self.imagePickerController animated:YES completion:^() { // scroll to the end - hack UIView *imagePickerView = imagePickerController.view; UIView *view = [imagePickerView hitTest:CGPointMake(5,5) withEvent:nil]; while (![view isKindOfClass:[UIScrollView class]] &amp;&amp; view != nil) { // note: in iOS 5, the hit test view is already the scroll view. I don't want to rely on that though, who knows // what Apple might do with the ImagePickerController view structure. Searching backwards from the hit view // should always work though. //NSLog(@"passing %@", view); view = [view superview]; } if ([view isKindOfClass:[UIScrollView class]]) { //NSLog(@"got a scroller!"); UIScrollView *scrollView = (UIScrollView *) view; // check what it is scrolled to - this is the location of the initial display - very important as the image picker // actually slides under the navigation bar, but if there's only a few images we don't want this to happen. // The initial location is determined by status bar height and nav bar height - just get it from the picker CGPoint contentOffset = scrollView.contentOffset; CGFloat y = MAX(contentOffset.y, [scrollView contentSize].height-scrollView.frame.size.height); CGPoint bottomOffset = CGPointMake(0, y); [scrollView setContentOffset:bottomOffset animated:YES]; } }]; </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload