2012-03-14 27 views
10

如何獲取iOS中所有相冊的列表?我知道圖像選擇器必須在某處列出它們的列表,因爲它將它們全部顯示給用戶。一旦我擁有相冊,我將如何去顯示某個專輯中所有圖像的縮略圖?我似乎無法在文檔中找到任何內容,但我確信有一種方法可以實現。獲取每張專輯的所有相冊和縮略圖列表

+0

在我的項目中,我得到了一些相冊,它是顯示日期而不是名稱。我調試我的代碼,我發現我的相冊列表包含事件專輯,並且包含沒有相冊和它的名字像日期。任何想法跳過這個事件形成我的資產數組?如果你有,請給我解決方案。在此先感謝 – ilesh 2015-02-18 07:01:52

回答

20

如果這是你所要求的,你不能從UIImagePickerController得到那種信息。

看看AssetsLibrary框架。甚至有sample code實現自定義圖像選擇器。

+0

在我的項目中,我得到了一些相冊,它是顯示日期而不是名稱。我調試我的代碼,我發現我的相冊列表包含事件專輯,並且包含沒有相冊和它的名字像日期。任何想法跳過這個事件形成我的資產數組?如果你有,請給我解決方案。在此先感謝 – ilesh 2015-02-18 07:00:34

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

而不是枚舉最新的照片,你可以使用像'[group posterImage]'這樣的'posterImage'方法,它給你一個瀏覽圖庫時看到的圖像的引用,通常是第一張圖片 – 2014-04-05 18:36:26

+0

@ibsweek在我的項目中,我得到了一些相冊,它是顯示日期而不是名稱。我調試我的代碼,我發現我的相冊列表包含事件專輯,並且包含沒有相冊和它的名字像日期。任何想法跳過這個事件形成我的資產數組?如果你有,請給我解決方案。提前致謝 – ilesh 2015-02-18 07:01:01

0

資產庫框架從iOS 9.0開始已棄用。相反,使用照片框架,它在iOS 8.0和更高版本中提供更多功能和更好的性能來處理用戶的照片庫。

檢查Photos框架,並根據您的需要檢查:PHAsset,PHAssetCollection和PHCollectionList。

相關問題