Z ramą iOS Photos Framework, w jaki sposób mogę wyświetlić wszystkie dostępne zbiory PHAssetCollections? Chciałbym znaleźć kolekcję "Photo Roll", aby móc pobrać wszystkie zdjęcia z tej kolekcji. Jak to zrobić w systemie iOS 8+ za pomocą nowych PhotosFramework?Z ramą iOS Photos Framework, w jaki sposób wyświetlić wszystkie dostępne zbiory PHAssetCollections?
Q
Z ramą iOS Photos Framework, w jaki sposób wyświetlić wszystkie dostępne zbiory PHAssetCollections?
5
A
Odpowiedz
5
Jeśli spojrzeć na PhotoTypes, można zobaczyć, że rolki aparatu nie jest zawarta w PH, można się do niego dostać przez
PHFetchResult *result = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum
subtype:PHAssetCollectionSubtypeSmartAlbumUserLibrary
options:nil];
PHAssetCollection *assetCollection = result.firstObject;
NSLog(@"%@", assetCollection.localizedTitle); // Camera Roll
W ogóle to jak dostać wszystko
PHFetchOptions *options = [[PHFetchOptions alloc] init];
options.wantsIncrementalChangeDetails = YES;
options.predicate = [NSPredicate predicateWithFormat:@"mediaType == %d",PHAssetMediaTypeImage];
PHFetchResult *albums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeAlbumRegular options:nil];
for (PHAssetCollection *sub in albums)
{
PHFetchResult *fetchResult = [PHAsset fetchAssetsInAssetCollection:sub options:options];
}
#pragma mark - PHAssetCollection types
typedef NS_ENUM(NSInteger, PHAssetCollectionType) {
PHAssetCollectionTypeAlbum = 1,
PHAssetCollectionTypeSmartAlbum = 2,
PHAssetCollectionTypeMoment = 3,
} NS_ENUM_AVAILABLE_IOS(8_0);
typedef NS_ENUM(NSInteger, PHAssetCollectionSubtype) {
// PHAssetCollectionTypeAlbum regular subtypes
PHAssetCollectionSubtypeAlbumRegular = 2,
PHAssetCollectionSubtypeAlbumSyncedEvent = 3,
PHAssetCollectionSubtypeAlbumSyncedFaces = 4,
PHAssetCollectionSubtypeAlbumSyncedAlbum = 5,
PHAssetCollectionSubtypeAlbumImported = 6,
// PHAssetCollectionTypeAlbum shared subtypes
PHAssetCollectionSubtypeAlbumMyPhotoStream = 100,
PHAssetCollectionSubtypeAlbumCloudShared = 101,
// PHAssetCollectionTypeSmartAlbum subtypes
PHAssetCollectionSubtypeSmartAlbumGeneric = 200,
PHAssetCollectionSubtypeSmartAlbumPanoramas = 201,
PHAssetCollectionSubtypeSmartAlbumVideos = 202,
PHAssetCollectionSubtypeSmartAlbumFavorites = 203,
PHAssetCollectionSubtypeSmartAlbumTimelapses = 204,
PHAssetCollectionSubtypeSmartAlbumAllHidden = 205,
PHAssetCollectionSubtypeSmartAlbumRecentlyAdded = 206,
PHAssetCollectionSubtypeSmartAlbumBursts = 207,
PHAssetCollectionSubtypeSmartAlbumSlomoVideos = 208,
PHAssetCollectionSubtypeSmartAlbumUserLibrary = 209,
// Used for fetching, if you don't care about the exact subtype
PHAssetCollectionSubtypeAny = NSIntegerMax
} NS_ENUM_AVAILABLE_IOS(8_0);
3
Zastosowanie poniżej danego fragmentu kodu, aby uzyskać wszystkie inteligentne albumy i wszystkie inteligentne zdjęcia
// Get all Smart Albums
PHFetchResult *smartAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeAlbumRegular options:nil];
[smartAlbums enumerateObjectsUsingBlock:^(PHAssetCollection *collection, NSUInteger idx, BOOL *stop) {
NSLog(@"album title %@", collection.localizedTitle);
}];
// Get all photos
PHFetchResult *allPhotosResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:nil];
// Get assets from the PHFetchResult object
[allPhotosResult enumerateObjectsUsingBlock:^(PHAsset *asset, NSUInteger idx, BOOL *stop) {
NSLog(@"asset %@", asset);
CGSize size=CGSizeMake(90, 90);
PHImageManager *imageManager;
[imageManager requestImageForAsset:asset targetSize:size contentMode:PHImageContentModeAspectFit options:nil resultHandler:^(UIImage *result, NSDictionary *info) {
yourImageView.image=result;
}];
}];
dla odniesienia: https://developer.apple.com/library/prerelease/ios/samplecode/UsingPhotosFramework/Introduction/Intro.html
Powiązane problemy
- 1. Objective-C Jak wyświetlić wszystkie dostępne kodowania
- 2. Jak wyświetlić publiczne zbiory danych?
- 3. Łącze z ramą parasolową
- 4. Entity Framework 7 asynchroniczne zbiory
- 5. W jaki sposób aplikacja IOS Photos może wyświetlać setki zdjęć na jednym ekranie?
- 6. Jak wyświetlić wszystkie wersje klejnotu dostępne w zdalnej witrynie?
- 7. Jak wyświetlić wszystkie dostępne widoki konkretnej tabeli w SQLite?
- 8. Lista Android wszystkie dostępne zdjęcia
- 9. logback z ramą odtwarzania
- 10. NSLocale - uzyskaj wszystkie dostępne języki
- 11. W Mongo, w jaki sposób wyświetlić indeksy kolekcji?
- 12. Clustering Photos in R?
- 13. Grunt (węzeł) - Jak wyświetlić dostępne zadania?
- 14. Jak uzyskać wszystkie zmienne dostępne w widoku w PHP?
- 15. Problemy z karmą Flickr. jak wyświetlić wszystkie obrazy z fotostreamu
- 16. Natychmiastowy alert logowania z ramą Twittera w iOS5?
- 17. W jaki sposób aplikacja iOS 7 może stać się przezroczysta, aby wyświetlić obraz ekranu głównego użytkownika?
- 18. W jaki sposób połączyć zespoły F # i C# z ILMerge tak, aby wszystkie typy były dostępne po odwołaniu?
- 19. IOS Framework z powiadomieniami push
- 20. W ImageMagick, jak możesz zobaczyć wszystkie dostępne czcionki?
- 21. Jak wyświetlić wszystkie właściwości klas?
- 22. jak wyświetlić pdf na ios
- 23. Jak usunąć wszystkie elementy keychain dostępne dla aplikacji?
- 24. Jak wyświetlić/wyświetlić wszystkie trasy w @Routes w mojej aplikacji Angular2
- 25. W jaki sposób mogę wstępnie skompilować kod Entity Framework-First?
- 26. W jaki sposób zrobić strąki zainstalowane z CocoaPods dostępne dla WSZYSTKICH projektów w mojej przestrzeni roboczej?
- 27. jaki sposób wyliczyć wszystkie pola w pliku PDF w iTextSharp
- 28. W geenie, w jaki sposób mogę zabić wszystkie uruchomione greenlety?
- 29. Jak korzystać z Realm (zainstalowany w Carthage) z ramą w aplikacji Swift?
- 30. Jak zbiory map w spycharek
Wygląda na to, że 'PHImageManager' nie został przydzielony, ale właśnie został zadeklarowany. Czy nie powinno to być '' [PHImageManager defaultManager] '? – efimovdk