PHImageManager+CTAssetsPickerController.m 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. //
  2. // PHImageManager+CTSupport.m
  3. // CTAssetsPickerDemo
  4. //
  5. // Created by Korben Allen Rusek on 4/7/16.
  6. // Copyright © 2016 Clement T. All rights reserved.
  7. //
  8. #import "PHImageManager+CTAssetsPickerController.h"
  9. @implementation PHImageManager (CTAssetsPickerController)
  10. + (BOOL)ctassetsPickerNeedsiPadSupportSize {
  11. return [(NSString*)[UIDevice currentDevice].model hasPrefix:@"iPad"] && UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad == false;
  12. }
  13. + (CGSize)ctassetsPickerSizeForSize:(CGSize)size withMinimumDimension:(CGFloat)dimension {
  14. if (size.width >= dimension && size.height >= dimension) return size;
  15. if (size.width <= 0 || size.height <= 0) return size;
  16. CGFloat width, height;
  17. if (size.width < size.height) {
  18. width = 500;
  19. height = size.height/size.width*width;
  20. } else {
  21. height = 500;
  22. width = size.width/size.height*height;
  23. }
  24. return CGSizeMake(width, height);
  25. }
  26. - (PHImageRequestID)ctassetsPickerRequestImageForAsset:(PHAsset *)asset targetSize:(CGSize)targetSize contentMode:(PHImageContentMode)contentMode options:( PHImageRequestOptions *)options resultHandler:(void (^)(UIImage * result, NSDictionary * info))resultHandler {
  27. CGSize size = targetSize;
  28. if ([[self class] ctassetsPickerNeedsiPadSupportSize]) {
  29. size = [[self class] ctassetsPickerSizeForSize:targetSize withMinimumDimension:500];
  30. }
  31. return [self requestImageForAsset:asset targetSize:size contentMode:contentMode options:options resultHandler:resultHandler];
  32. }
  33. @end