UIImagepickercontroller: ¿es posible cambiar el order de las imágenes en el rollo de la camera?

Básicamente, la aplicación en la que estoy trabajando sería mucho less doloroso si los usuarios no tuvieran que desplazarse hasta la parte inferior de su camera para get sus fotos más recientes, quiero la más reciente en la parte superior, ¿no sería esto ¿Tiene sentido de todos modos? No estoy seguro de por qué Apple lo diseñó de esta manera, o si simplemente no me doy count de algo.

Gracias

mella

Si no te molesta agregar un paso adicional para seleccionar el rollo de camera de una list de álbumes, puedes intentar cambiar tu sourceType de SavedPhotoAlbums a PhotoLibrary:

imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 

Después de seleccionar el álbum deseado, la próxima vista de selección de fotos mostrará las imágenes más recientes en la parte inferior.

Esto me molestó mucho, estoy tan cerca de implementar mi propio selector de imágenes personalizado con AssetsLibrary.

Pero mientras tanto, este truco funcionó para mí: estoy mostrando el selector, buscando la vista de desplazamiento en la jerarquía de la vista, y desplazándola hasta el final, más o less. Necesita ser animado, ya que esto sucede cuando la vista ya está cargada, pero aún es mejor que el usuario tenga que desplazarse por 5.000 fotos hasta llegar a las más recientes.

  [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]; } }]; 

No hay manera de personalizar UIImagePickerController de esta manera, pero a partir de iOS 4.0, básicamente puedes build tu propio selector de imágenes de la manera que quieras con el framework AssetsLibrary .

Puede get imágenes, usar ALAsset en un arry, y luego orderarlas como desee y usarlas en la vista de tabla o en la vista de colección para crear su propio álbum personalizado.