2012-03-14 9 views
10

मैं आईओएस में सभी फोटो एलबमों की सूची कैसे प्राप्त करूं? मुझे पता है कि छवि पिकर के पास कहीं उनकी सूची है क्योंकि यह उन्हें उपयोगकर्ता को दिखाती है। एक बार मेरे पास फोटो एलबम होने के बाद, मैं किसी विशेष एल्बम में सभी छवियों के थंबनेल प्रदर्शित करने के बारे में कैसे जाऊं? मुझे दस्तावेज़ों में कुछ भी नहीं मिल रहा है, लेकिन मुझे यकीन है कि ऐसा करने का एक तरीका बनना होगा।प्रत्येक एल्बम के लिए सभी फोटो एलबम और थंबनेल की सूची प्राप्त करें

+0

मेरी प्रोजेक्ट में मुझे कुछ एल्बम मिलते हैं, यह नाम के बजाय डिस्प्ले डेट है। मैं अपना कोड डीबग करता हूं और मैंने पाया कि मेरी एल्बम सूची में ईवेंट एल्बम हैं और इसमें एल्बमों और उसके नाम की तारीख शामिल नहीं है। इस घटना को छोड़ने का कोई विचार मेरी संपत्ति सरणी बनाते हैं? यदि आपके पास है तो कृपया मुझे समाधान दें। अग्रिम – ilesh

उत्तर

20

यदि आप यही पूछ रहे हैं तो आप UIImagePickerController से उस तरह की जानकारी प्राप्त नहीं कर सकते हैं।

AssetsLibrary ढांचे पर एक नज़र डालें। यहां तक ​​कि sample code भी है जो एक कस्टम छवि पिकर लागू करता है।

+0

में धन्यवाद मेरी परियोजना में मुझे कुछ एल्बम मिलते हैं, यह नाम के बजाय प्रदर्शन दिनांक है। मैं अपना कोड डीबग करता हूं और मैंने पाया कि मेरी एल्बम सूची में ईवेंट एल्बम हैं और इसमें एल्बमों और उसके नाम की तारीख शामिल नहीं है। इस घटना को छोड़ने का कोई विचार मेरी संपत्ति सरणी बनाते हैं? यदि आपके पास है तो कृपया मुझे समाधान दें। अग्रिम – ilesh

19

गणना करें और नवीनतम छवि और उसका थंबनेल प्राप्त करें।

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 

// Enumerate just the photos and videos group by using ALAssetsGroupSavedPhotos. 
[library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) { 

    // Within the group enumeration block, filter to enumerate just photos. 
    [group setAssetsFilter:[ALAssetsFilter allPhotos]]; 

    // Chooses the photo at the last index 
    [group enumerateAssetsWithOptions:NSEnumerationReverse usingBlock:^(ALAsset *alAsset, NSUInteger index, BOOL *innerStop) { 
     // The end of the enumeration is signaled by asset == nil. 
     if (alAsset) { 
      ALAssetRepresentation *representation = [alAsset defaultRepresentation]; 
      UIImage *latestPhoto = [UIImage imageWithCGImage:[representation fullScreenImage]]; 


      UIImage *latestPhotoThumbnail = [UIImage imageWithCGImage:[alAsset thumbnail]]; 


      // Stop the enumerations 
      *stop = YES; *innerStop = YES; 

      // Do something interesting with the AV asset. 
      //[self sendTweet:latestPhoto]; 
     } 
    }]; 
} failureBlock: ^(NSError *error) { 
    // Typically you should handle an error more gracefully than this. 
    NSLog(@"No groups"); 
}]; 
+0

में नवीनतम तस्वीर के लिए गणना करने के बजाय आप 'पोस्टर इमेज' विधि का उपयोग इस '[समूह पोस्टर इमेज]' का उपयोग कर सकते हैं, जो आपको गैलरी ब्राउज़ करते समय दिखाई देने वाली छवि का एक रेफरी देता है, आमतौर पर पहली तस्वीर –

+0

@ibsweek मेरी प्रोजेक्ट में मुझे कुछ एल्बम मिलते हैं, यह नाम के बजाय डिस्प्ले डेट है। मैं अपना कोड डीबग करता हूं और मैंने पाया कि मेरी एल्बम सूची में ईवेंट एल्बम हैं और इसमें एल्बमों और उसके नाम की तारीख शामिल नहीं है। इस घटना को छोड़ने का कोई विचार मेरी संपत्ति सरणी बनाते हैं? यदि आपके पास है तो कृपया मुझे समाधान दें। अग्रिम में धन्यवाद – ilesh

0

संपत्ति लाइब्रेरी ढांचे को आईओएस 9.0 के रूप में बहिष्कृत किया गया है। इसके बजाय, फ़ोटो फ्रेमवर्क का उपयोग करें, जो आईओएस 8.0 में और बाद में उपयोगकर्ता की फोटो लाइब्रेरी के साथ काम करने के लिए और अधिक सुविधाएं और बेहतर प्रदर्शन प्रदान करता है।

Photos ढांचे की जांच करें, और निरीक्षण करें: PHAsset, PHAssetCollection, और PHCollectionList, आपकी आवश्यकताओं के आधार पर।

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