2012-03-14 15 views
10

Come ottengo un elenco di tutti gli album fotografici in iOS? So che il selettore di immagini deve avere un elenco di loro da qualche parte poiché li visualizza tutti all'utente. Quando avrò gli album fotografici, come farò per visualizzare le miniature di tutte le immagini in un particolare album? Non riesco a trovare nulla nei documenti, ma sono sicuro che ci dev'essere un modo per farlo.Ottieni l'elenco di tutti gli album fotografici e le miniature per ciascun album

+0

Nel mio progetto ottengo alcuni album è la data di visualizzazione anziché il nome. eseguo il debug del mio codice e ho trovato la mia lista di album contenente gli album degli eventi e che non contiene album e il suo nome come data. qualsiasi idea di saltare questo evento form il mio array di asset? per favore dammi una soluzione se lo hai Grazie in anticipo – ilesh

risposta

20

Non è possibile ottenere questo tipo di informazioni da UIImagePickerController se questo è ciò che si sta chiedendo.

Dai uno sguardo al quadro AssetsLibrary. C'è anche sample code che implementa un selettore di immagini personalizzato.

+0

Nel mio progetto ottengo alcuni album è la data di visualizzazione anziché il nome. eseguo il debug del mio codice e ho trovato la mia lista di album contenente gli album degli eventi e che non contiene album e il suo nome come data. qualsiasi idea di saltare questo evento form il mio array di asset? per favore dammi una soluzione se lo hai Grazie in anticipo – ilesh

19

Enumerare e ottenere l'ultima immagine e la relativa miniatura.

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

Invece di enumerare per l'ultima foto potresti usare il metodo 'posterImage' come questo' [group posterImage] ', che ti dà un riferimento dell'immagine che vedi mentre navighi nella galleria, di solito la prima foto –

+0

@ibsweek Nel mio progetto ottengo alcuni album è la data di visualizzazione al posto del nome. eseguo il debug del mio codice e ho trovato la mia lista di album contenente gli album degli eventi e che non contiene album e il suo nome come data. qualsiasi idea di saltare questo evento form il mio array di asset? per favore dammi una soluzione se lo hai Grazie in anticipo – ilesh

0

La struttura della libreria delle risorse è obsoleta a partire da iOS 9.0. Utilizzare invece il framework Photos, che in iOS 8.0 e versioni successive offre più funzionalità e prestazioni migliori per lavorare con la libreria di foto di un utente.

Controllare il framework Photos e ispezionare: PHAsset, PHAssetCollection e PHCollectionList, a seconda delle esigenze.

Problemi correlati