diff --git a/QBImagePicker/QBAssetsViewController.m b/QBImagePicker/QBAssetsViewController.m index 98177684..0ebcd45d 100644 --- a/QBImagePicker/QBAssetsViewController.m +++ b/QBImagePicker/QBAssetsViewController.m @@ -234,6 +234,10 @@ - (void)updateFetchRequest if (self.assetCollection) { PHFetchOptions *options = [PHFetchOptions new]; + if (self.imagePickerController.sortOrder == ByLatestAsset) { + options.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:NO]]; + } + switch (self.imagePickerController.mediaType) { case QBImagePickerMediaTypeImage: options.predicate = [NSPredicate predicateWithFormat:@"mediaType == %ld", PHAssetMediaTypeImage]; diff --git a/QBImagePicker/QBImagePickerController.h b/QBImagePicker/QBImagePickerController.h index e7547e59..8cc33acd 100644 --- a/QBImagePicker/QBImagePickerController.h +++ b/QBImagePicker/QBImagePickerController.h @@ -29,6 +29,10 @@ typedef NS_ENUM(NSUInteger, QBImagePickerMediaType) { QBImagePickerMediaTypeVideo }; +typedef enum { + ByLatestAsset, ByOldestAsset +} Sort; + @interface QBImagePickerController : UIViewController @property (nonatomic, weak) id delegate; @@ -48,4 +52,6 @@ typedef NS_ENUM(NSUInteger, QBImagePickerMediaType) { @property (nonatomic, assign) NSUInteger numberOfColumnsInPortrait; @property (nonatomic, assign) NSUInteger numberOfColumnsInLandscape; +@property (nonatomic, assign) Sort sortOrder; + @end diff --git a/QBImagePicker/QBImagePickerController.m b/QBImagePicker/QBImagePickerController.m index 99577c54..847b7441 100644 --- a/QBImagePicker/QBImagePickerController.m +++ b/QBImagePicker/QBImagePickerController.m @@ -38,6 +38,7 @@ - (instancetype)init self.minimumNumberOfSelection = 1; self.numberOfColumnsInPortrait = 4; self.numberOfColumnsInLandscape = 7; + self.sortOrder = ByOldestAsset; _selectedAssets = [NSMutableOrderedSet orderedSet]; diff --git a/QBImagePickerDemo/Info.plist b/QBImagePickerDemo/Info.plist index 0180b3ed..4d261679 100644 --- a/QBImagePickerDemo/Info.plist +++ b/QBImagePickerDemo/Info.plist @@ -43,5 +43,7 @@ UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight + NSPhotoLibraryUsageDescription + Application requires Photos access to obtain your photos and videos diff --git a/QBImagePickerDemo/ViewController.m b/QBImagePickerDemo/ViewController.m index 0414396e..d7c361c8 100644 --- a/QBImagePickerDemo/ViewController.m +++ b/QBImagePickerDemo/ViewController.m @@ -30,6 +30,7 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath imagePickerController.mediaType = QBImagePickerMediaTypeAny; imagePickerController.allowsMultipleSelection = (indexPath.section == 1); imagePickerController.showsNumberOfSelectedAssets = YES; + imagePickerController.sortOrder = ByLatestAsset; if (indexPath.section == 1) { switch (indexPath.row) {