Это меня сильно раздражало - я так близок к реализации собственного пользовательского средства выбора изображений с помощью AssetsLibrary.
Но в то же время этот хак сработал для меня - я отображаю средство выбора, ищупрокрутите представление в иерархии представлений и прокрутите его до конца, более или менее.Его нужно анимировать, поскольку это происходит, когда представление уже загружено, но это все же лучше, чем пользователю, которому приходится прокручивать 5000 фотографий, пока они не дойдут до самых новых.
[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]] && 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];
}
}];