2010-10-16 13 views
8

मूल रूप से जिस ऐप पर काम कर रहा हूं वह दर्द से बहुत कम होगा यदि उपयोगकर्ताओं को अपने सबसे हालिया फोटो प्राप्त करने के लिए अपने कैमरे रोल के बहुत नीचे स्क्रॉल करने की आवश्यकता नहीं है, तो मैं सबसे हालिया शीर्ष पर चाहता हूं, क्या यह वैसे भी समझ में आता है? निश्चित नहीं है कि सेब ने इसे इस तरह से डिजाइन क्यों किया है, या अगर मैं कुछ महसूस नहीं कर रहा हूं।UIImagepickercontroller: क्या कैमरा रोल में छवियों के सॉर्ट ऑर्डर को बदलना संभव है?

धन्यवाद

निक

उत्तर

4

इस तरह से UIImagePickerController अनुकूलित करने के लिए कोई तरीका नहीं है, लेकिन iOS 4.0 के रूप में, आप मूल रूप से अपने खुद के चित्र पिकर किसी भी तरह से AssetsLibrary framework का उपयोग कर की तरह बना सकते हैं।

+0

अजीब बात यह है कि, बस कह बनाने के लिए। धन्यवाद दोस्त। – nickthedude

9

आप एक एल्बम सूची आप PhotoLibrary को SavedPhotoAlbums से अपने sourceType बदलने का प्रयास कर सकते हैं से कैमरा रोल के चयन का एक अतिरिक्त कदम के कोई आपत्ति नहीं है:

imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 

वांछित एल्बम, अगले तस्वीर चयन करने के बाद चयन दृश्य नीचे की सबसे हाल की छवियां दिखाएगा।

+0

इसके लिए धन्यवाद! तथ्य यह है कि यह नवीनतम से शुरू होता है, कहीं भी दस्तावेज नहीं प्रतीत होता है, इसलिए आपने मुझे समय का एक गुच्छा बचाया :) – Dima

+0

धन्यवाद, मैंने कभी इस पर ध्यान नहीं दिया। क्या यह पहले काम कर रहा था? मुझे याद है कि मुझे इसे 1/2 साल पहले नहीं मिला था। उस समय, समाधान AssetLibrary का उपयोग करना है। सौभाग्य से, मैं इस बार फिर से गुस्से में, और अपनी टिप मिली। सराहना/ –

+0

इस मुद्दे को संभालने का यह सही तरीका है। दस्तावेज़ों को पढ़ना बहुत अच्छा काम हैहा – i2097i

8

इससे मुझे बहुत परेशान किया गया - मैं एसेट्स लाइब्रेरी का उपयोग करके अपने स्वयं के कस्टम छवि पिकर को लागू करने के करीब हूं।

लेकिन इस दौरान, इस हैक ने मेरे लिए काम किया - मैं पिकर प्रदर्शित कर रहा हूं, दृश्य पदानुक्रम में स्क्रॉल व्यू की खोज कर रहा हूं, और इसे अंत तक स्क्रॉल कर रहा हूं, कम या ज्यादा। इसे एनिमेटेड होने की आवश्यकता होती है क्योंकि यह दृश्य तब होता है जब दृश्य पहले से लोड हो जाता है - लेकिन जब तक कि वे नवीनतम लोगों तक नहीं पहुंच जाते हैं, तब तक उपयोगकर्ता 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]; 
     } 
}]; 
+1

पृथ्वी पर किसने इसे कम किया? मेरे लिए पूरी तरह से काम करता है। बहुत बहुत धन्यवाद @ n13! –

+0

यह मेरे लिए काम नहीं कर रहा है – SarpErdag

+0

एक मणि की तरह काम करता है! –

0

आप एक arry में ALAsset का उपयोग कर छवियों प्राप्त कर सकते हैं, और फिर उन्हें सॉर्ट कर सकते हैं के रूप में आप चाहते हैं और तालिका दृश्य या collectionview में उपयोग अपने स्वयं के कस्टम एल्बम

संबंधित मुद्दे