2012-03-16 10 views
5

मुझे पता है कि उपयोगकर्ता को UIImagePickerController से एक छवि का चयन करने दें, लेकिन मुझे वह नहीं चाहिए। मैं सिर्फ फोन में संग्रहीत छवियों के एनएसएआरएआरई चाहता हूं, लेकिन मैं उपयोगकर्ता को शामिल नहीं करना चाहता (एक का चयन करने के लिए और फिर उस छवि को ...), बल्कि, मैंने अपना स्वयं का कस्टम छवि चयनकर्ता नियंत्रक बनाया है और गैलरी के रूप में स्रोत चाहते हैं।UImagePickerController के बिना iPhone में प्रोग्राम किए गए सहेजे गए चित्रों से छवियों तक कैसे पहुंचे?

+0

जांच इस [कड़ी] (https://github.com/jeena/JPImagePickerController) –

+1

का उपयोग करते हुए आस्तियों आप तस्वीरें मिल http://developer.apple.com /library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/01_UsingAssets.html –

+0

@MuditBajpai: यह मेरे लिए काम नहीं करता है ... मुझे उन छवियों का ऐरे चाहिए जो फ़ोन में संग्रहीत हैं ... मैं नहीं करता दृश्य में दिखाए जाने के लिए किसी भी बाहरी छवियों को निर्दिष्ट करना चाहते हैं, बल्कि, मैं फोन गैलरी की छवियां रखना चाहता हूं .... आशा है कि आप समझें .. –

उत्तर

9

आप AVFoundation और AssetsLibrary ढांचे का उपयोग करके आसानी से ऐसा कर सकते हैं। यहाँ सभी तस्वीरें उपयोग करने के लिए कोड है:

-(void)addPhoto:(ALAssetRepresentation *)asset 
{ 
    //NSLog(@"Adding photo!"); 
    [photos addObject:asset]; 
} 

-(void)loadPhotos 
{ 
    photos = [[NSMutableArray alloc] init];  
    library = [[ALAssetsLibrary alloc] init];  

    // Enumerate just the photos and videos group by using ALAssetsGroupSavedPhotos. 
    if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) 
    { 
     [library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) 
     {   
      // Within the group enumeration block, filter if necessary 
      [group setAssetsFilter:[ALAssetsFilter allPhotos]];   
      [group enumerateAssetsUsingBlock:^(ALAsset *alAsset, NSUInteger index, BOOL *innerStop) 
       {         
        // The end of the enumeration is signaled by asset == nil.    
        if (alAsset) 
        { 
         ALAssetRepresentation *representation = [alAsset defaultRepresentation];      
         [self addPhoto:representation];      
        }  
        else 
        { 
         NSLog(@"Done! Count = %d", photos.count); 
         //Do something awesome 
        } 
       }]; 
     } 
     failureBlock: ^(NSError *error) { 
     // Typically you should handle an error more gracefully than this. 
     NSLog(@"No groups");         
     }]; 
    } 
} 
+0

बढ़िया ... बहुत बहुत धन्यवाद ... मैंने ऐसा ही किया, सिवाय इसके कि मैंने उपयोगकर्ता को यह चुनने की अनुमति दी कि वह सहेजे गए फ़ोटो, एल्बम या किसी अन्य स्रोत (टेबल व्यू में) से छवियां चाहता है .. और उस चयन के अनुसार, मैंने रखा मेरी अनुकूलित गैलरी में छवियां। –

+0

अच्छा, यह भी बेहतर है। इस पोस्ट के भविष्य के दर्शकों के लिए, क्या आप इस उत्तर को सही उत्तर के रूप में स्वीकार कर सकते हैं? –

+0

निश्चित रूप से .... यह सिर्फ अच्छा है .. –

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