2010-10-16 24 views
8

Về cơ bản ứng dụng im đang hoạt động sẽ ít đau hơn nếu người dùng không phải cuộn xuống dưới cùng của cuộn camera để có được những bức ảnh gần đây nhất, tôi muốn ảnh gần đây nhất ở trên cùng, điều này có hợp lý không? Bạn không chắc chắn tại sao táo lại thiết kế nó theo cách này, hoặc nếu tôi không nhận ra điều gì đó.UIImagepickercontroller: có thể thay đổi thứ tự sắp xếp của hình ảnh trong thư viện ảnh không?

Cảm ơn

nick

Trả lời

4

Không có cách nào để tùy chỉnh UIImagePickerController theo cách này, nhưng như iOS 4.0, về cơ bản bạn có thể xây dựng bảng chọn hình ảnh của riêng bạn trong bất kỳ cách nào bạn thích bằng cách sử dụng AssetsLibrary framework.

+0

đó là Whack, chỉ nói. cảm ơn người đàn ông. – nickthedude

9

Nếu bạn không nhớ thêm một bước phụ lựa chọn các cuộn máy ảnh từ một danh sách album bạn có thể thử thay đổi sourceType của bạn từ SavedPhotoAlbums để PhotoLibrary:

imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 

Sau khi chọn album mong muốn, các bức ảnh tiếp theo chế độ xem lựa chọn sẽ hiển thị các hình ảnh gần đây nhất ở dưới cùng.

+0

cảm ơn bạn vì điều này! thực tế là nó bắt đầu từ mới nhất dường như không được tài liệu bất cứ nơi nào, vì vậy bạn đã lưu cho tôi một bó của thời gian :) – Dima

+0

cảm ơn, tôi không bao giờ chú ý đến điều này. Điều này có hiệu quả không? Tôi nhớ tôi đã không tìm thấy điều này là 1/2 yeas trước đây. Thời gian đó, giải pháp là sử dụng AssetLibrary. May thay, tôi lại googled lần này, và tìm thấy mẹo của bạn. Đánh giá cao/ –

+0

Đây là cách chính xác để xử lý vấn đề. Công việc tuyệt vời khi đọc tài liệu haha ​​ – i2097i

8

Điều này làm tôi khó chịu rất nhiều - tôi gần như triển khai bộ chọn hình ảnh tùy chỉnh của riêng tôi bằng AssetsLibrary.

Nhưng trong thời gian chờ đợi, bản hack này hoạt động cho tôi - tôi đang hiển thị bộ chọn, tìm kiếm dạng xem cuộn trong cấu trúc phân cấp, và di chuyển đến cuối, nhiều hơn hoặc ít hơn. Nó cần phải được hoạt hình vì điều này xảy ra khi chế độ xem đã được tải - nhưng vẫn tốt hơn người dùng phải cuộn qua 5.000 ảnh cho đến khi họ xem được ảnh mới nhất.

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

Ai trên trái đất đã xuống hạng này? Hoạt động hoàn hảo cho tôi. Cảm ơn bạn rất nhiều @ n13! –

+0

tính năng này không hoạt động với tôi – SarpErdag

+0

hoạt động như một viên ngọc! –

0

Bạn có thể nhận được hình ảnh, sử dụng ALAsset trong một arry, và sau đó có thể sắp xếp chúng như bạn muốn và sử dụng theo quan điểm của bảng hoặc collectionview để xây dựng các album riêng của bạn tùy chỉnh

Các vấn đề liên quan