├── .gitignore ├── CTAssetsPickerController.podspec ├── CTAssetsPickerController ├── CTAssetCheckmark.h ├── CTAssetCheckmark.m ├── CTAssetCollectionViewCell.h ├── CTAssetCollectionViewCell.m ├── CTAssetCollectionViewController.h ├── CTAssetCollectionViewController.m ├── CTAssetItemViewController.h ├── CTAssetItemViewController.m ├── CTAssetPlayButton.h ├── CTAssetPlayButton.m ├── CTAssetScrollView.h ├── CTAssetScrollView.m ├── CTAssetSelectionButton.h ├── CTAssetSelectionButton.m ├── CTAssetSelectionLabel.h ├── CTAssetSelectionLabel.m ├── CTAssetThumbnailOverlay.h ├── CTAssetThumbnailOverlay.m ├── CTAssetThumbnailStacks.h ├── CTAssetThumbnailStacks.m ├── CTAssetThumbnailView.h ├── CTAssetThumbnailView.m ├── CTAssetsGridSelectedView.h ├── CTAssetsGridSelectedView.m ├── CTAssetsGridView.h ├── CTAssetsGridView.m ├── CTAssetsGridViewCell.h ├── CTAssetsGridViewCell.m ├── CTAssetsGridViewController.h ├── CTAssetsGridViewController.m ├── CTAssetsGridViewFooter.h ├── CTAssetsGridViewFooter.m ├── CTAssetsGridViewLayout.h ├── CTAssetsGridViewLayout.m ├── CTAssetsNavigationController.h ├── CTAssetsNavigationController.m ├── CTAssetsPageView.h ├── CTAssetsPageView.m ├── CTAssetsPageViewController.h ├── CTAssetsPageViewController.m ├── CTAssetsPickerAccessDeniedView.h ├── CTAssetsPickerAccessDeniedView.m ├── CTAssetsPickerController.h ├── CTAssetsPickerController.m ├── CTAssetsPickerDefines.h ├── CTAssetsPickerNoAssetsView.h ├── CTAssetsPickerNoAssetsView.m ├── CTAssetsViewControllerTransition.h ├── CTAssetsViewControllerTransition.m ├── Categories │ ├── CTAssetsPageViewController+Internal.h │ ├── CTAssetsPickerController+Internal.h │ ├── NSBundle+CTAssetsPickerController.h │ ├── NSBundle+CTAssetsPickerController.m │ ├── NSDateFormatter+CTAssetsPickerController.h │ ├── NSDateFormatter+CTAssetsPickerController.m │ ├── NSIndexSet+CTAssetsPickerController.h │ ├── NSIndexSet+CTAssetsPickerController.m │ ├── NSNumberFormatter+CTAssetsPickerController.h │ ├── NSNumberFormatter+CTAssetsPickerController.m │ ├── PHAsset+CTAssetsPickerController.h │ ├── PHAsset+CTAssetsPickerController.m │ ├── PHAssetCollection+CTAssetsPickerController.h │ ├── PHAssetCollection+CTAssetsPickerController.m │ ├── PHImageManager+CTAssetsPickerController.h │ ├── PHImageManager+CTAssetsPickerController.m │ ├── UICollectionView+CTAssetsPickerController.h │ ├── UICollectionView+CTAssetsPickerController.m │ ├── UIImage+CTAssetsPickerController.h │ └── UIImage+CTAssetsPickerController.m └── Resources │ ├── CTAssetsPicker.xcassets │ ├── AccessDeniedViewLock.imageset │ │ ├── AccessDeniedViewLock.png │ │ ├── AccessDeniedViewLock@2x.png │ │ ├── AccessDeniedViewLock@3x.png │ │ └── Contents.json │ ├── BadgeAllPhotos.imageset │ │ ├── BadgeAllPhotos@2x.png │ │ ├── BadgeAllPhotos@3x.png │ │ └── Contents.json │ ├── BadgeBurst.imageset │ │ ├── BadgeBurst@2x.png │ │ ├── BadgeBurst@3x.png │ │ └── Contents.json │ ├── BadgeFavorites.imageset │ │ ├── BadgeFavorites@2x.png │ │ ├── BadgeFavorites@3x.png │ │ └── Contents.json │ ├── BadgeLastImport.imageset │ │ ├── BadgeLastImport@2x.png │ │ ├── BadgeLastImport@3x.png │ │ └── Contents.json │ ├── BadgePanorama.imageset │ │ ├── BadgePanorama@2x.png │ │ ├── BadgePanorama@3x.png │ │ └── Contents.json │ ├── BadgeRecentlyDeleted.imageset │ │ ├── BadgeRecentlyDeleted@2x.png │ │ ├── BadgeRecentlyDeleted@3x.png │ │ └── Contents.json │ ├── BadgeScreenshots.imageset │ │ ├── BadgeScreenshots@2x.png │ │ ├── BadgeScreenshots@3x.png │ │ └── Contents.json │ ├── BadgeSelfPortraits.imageset │ │ ├── BadgeSelfPortraits@2x.png │ │ ├── BadgeSelfPortraits@3x.png │ │ └── Contents.json │ ├── BadgeSloMoSmall.imageset │ │ ├── BadgeSloMoSmall.png │ │ ├── BadgeSloMoSmall@2x.png │ │ ├── BadgeSloMoSmall@3x.png │ │ └── Contents.json │ ├── BadgeSlomo.imageset │ │ ├── BadgeSlomo@2x.png │ │ ├── BadgeSlomo@3x.png │ │ └── Contents.json │ ├── BadgeTimelapse.imageset │ │ ├── BadgeTimelapse@2x.png │ │ ├── BadgeTimelapse@3x.png │ │ └── Contents.json │ ├── BadgeTimelapseSmall.imageset │ │ ├── BadgeTimelapseSmall.png │ │ ├── BadgeTimelapseSmall@2x.png │ │ ├── BadgeTimelapseSmall@3x.png │ │ └── Contents.json │ ├── BadgeVideo.imageset │ │ ├── BadgeVideo@2x.png │ │ ├── BadgeVideo@3x.png │ │ └── Contents.json │ ├── BadgeVideoSmall.imageset │ │ ├── BadgeVideoSmall.png │ │ ├── BadgeVideoSmall@2x.png │ │ ├── BadgeVideoSmall@3x.png │ │ └── Contents.json │ ├── Checkmark.imageset │ │ ├── Checkmark.png │ │ ├── Checkmark@2x.png │ │ ├── Checkmark@3x.png │ │ └── Contents.json │ ├── CheckmarkShadow.imageset │ │ ├── CheckmarkShadow.png │ │ ├── CheckmarkShadow@2x.png │ │ ├── CheckmarkShadow@3x.png │ │ └── Contents.json │ ├── CheckmarkUnselected.imageset │ │ ├── CheckmarkUnselected.png │ │ ├── CheckmarkUnselected@2x.png │ │ ├── CheckmarkUnselected@3x.png │ │ └── Contents.json │ ├── Contents.json │ ├── DisclosureArrow.imageset │ │ ├── Contents.json │ │ ├── DisclosureArrow.png │ │ ├── DisclosureArrow@2x.png │ │ └── DisclosureArrow@3x.png │ ├── GridDisabledAsset.imageset │ │ ├── Contents.json │ │ ├── GridDisabledAsset.png │ │ ├── GridDisabledAsset@2x.png │ │ └── GridDisabledAsset@3x.png │ ├── GridEmptyAlbum.imageset │ │ ├── Contents.json │ │ ├── GridEmptyAlbum.png │ │ ├── GridEmptyAlbum@2x.png │ │ └── GridEmptyAlbum@3x.png │ ├── GridEmptyAlbumShared.imageset │ │ ├── Contents.json │ │ ├── GridEmptyAlbumShared.png │ │ ├── GridEmptyAlbumShared@2x.png │ │ └── GridEmptyAlbumShared@3x.png │ ├── GridEmptyCameraRoll.imageset │ │ ├── Contents.json │ │ ├── GridEmptyCameraRoll.png │ │ ├── GridEmptyCameraRoll@2x.png │ │ └── GridEmptyCameraRoll@3x.png │ ├── GridGradient.imageset │ │ ├── Contents.json │ │ ├── GridGradient.png │ │ ├── GridGradient@2x.png │ │ └── GridGradient@3x.png │ ├── GridHiddenAlbum.imageset │ │ ├── Contents.json │ │ ├── GridHiddenAlbum@2x.png │ │ └── GridHiddenAlbum@3x.png │ ├── PauseButton.imageset │ │ ├── Contents.json │ │ ├── PauseButton.png │ │ ├── PauseButton@2x.png │ │ └── PauseButton@3x.png │ ├── PlayButton.imageset │ │ ├── Contents.json │ │ ├── PlayButton.png │ │ ├── PlayButton@2x.png │ │ └── PlayButton@3x.png │ ├── VideoPlayButtonMask.imageset │ │ ├── Contents.json │ │ ├── VideoPlayButtonMask.png │ │ ├── VideoPlayButtonMask@2x.png │ │ └── VideoPlayButtonMask@3x.png │ └── VideoPlayGlyphMask.imageset │ │ ├── Contents.json │ │ ├── VideoPlayGlyphMask.png │ │ ├── VideoPlayGlyphMask@2x.png │ │ └── VideoPlayGlyphMask@3x.png │ ├── ar.lproj │ └── CTAssetsPicker.strings │ ├── da.lproj │ └── CTAssetsPicker.strings │ ├── de.lproj │ └── CTAssetsPicker.strings │ ├── en.lproj │ └── CTAssetsPicker.strings │ ├── es-MX.lproj │ └── CTAssetsPicker.strings │ ├── es.lproj │ └── CTAssetsPicker.strings │ ├── fi.lproj │ └── CTAssetsPicker.strings │ ├── fr.lproj │ └── CTAssetsPicker.strings │ ├── he.lproj │ └── CTAssetsPicker.strings │ ├── hi-IN.lproj │ └── CTAssetsPicker.strings │ ├── hu.lproj │ └── CTAssetsPicker.strings │ ├── id.lproj │ └── CTAssetsPicker.strings │ ├── it.lproj │ └── CTAssetsPicker.strings │ ├── ja.lproj │ └── CTAssetsPicker.strings │ ├── ko.lproj │ └── CTAssetsPicker.strings │ ├── nl-NL.lproj │ └── CTAssetsPicker.strings │ ├── nl.lproj │ └── CTAssetsPicker.strings │ ├── pt-PT.lproj │ └── CTAssetsPicker.strings │ ├── pt.lproj │ └── CTAssetsPicker.strings │ ├── ru.lproj │ └── CTAssetsPicker.strings │ ├── sv.lproj │ └── CTAssetsPicker.strings │ ├── tr.lproj │ └── CTAssetsPicker.strings │ ├── zh-Hans.lproj │ └── CTAssetsPicker.strings │ └── zh-Hant.lproj │ └── CTAssetsPicker.strings ├── CTAssetsPickerDemo.xcodeproj ├── project.pbxproj └── project.xcworkspace │ └── contents.xcworkspacedata ├── CTAssetsPickerDemo.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ └── CTAssetsPickerDemo.xccheckout ├── CTAssetsPickerDemo ├── Base.lproj │ └── LaunchScreen.xib ├── CTAppDelegate.h ├── CTAppDelegate.m ├── CTMasterViewController.h ├── CTMasterViewController.m ├── Examples │ ├── CTApperanceViewController.h │ ├── CTApperanceViewController.m │ ├── CTBasicViewController.h │ ├── CTBasicViewController.m │ ├── CTDefaultAlbumViewController.h │ ├── CTDefaultAlbumViewController.m │ ├── CTLastWeekViewController.h │ ├── CTLastWeekViewController.m │ ├── CTLayoutViewController.h │ ├── CTLayoutViewController.m │ ├── CTMaxSelectionViewController.h │ ├── CTMaxSelectionViewController.m │ ├── CTPhotosViewController.h │ ├── CTPhotosViewController.m │ ├── CTProgrammaticViewController.h │ ├── CTProgrammaticViewController.m │ ├── CTSelectedAssetsViewController.h │ ├── CTSelectedAssetsViewController.m │ ├── CTSelectionOrderViewController.h │ ├── CTSelectionOrderViewController.m │ ├── CTSloMoViewController.h │ ├── CTSloMoViewController.m │ ├── CTSortedAssetsViewController.h │ ├── CTSortedAssetsViewController.m │ ├── CTUITweaksViewController.h │ ├── CTUITweaksViewController.m │ ├── CTiCloudAlbumsViewController.h │ └── CTiCloudAlbumsViewController.m ├── Images.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json ├── Info.plist ├── ar.lproj │ └── LaunchScreen.strings ├── da.lproj │ └── LaunchScreen.strings ├── de.lproj │ └── LaunchScreen.strings ├── en.lproj │ └── LaunchScreen.strings ├── es-MX.lproj │ └── LaunchScreen.strings ├── es.lproj │ └── LaunchScreen.strings ├── fi.lproj │ └── LaunchScreen.strings ├── fr.lproj │ └── LaunchScreen.strings ├── he.lproj │ └── LaunchScreen.strings ├── hi-IN.lproj │ └── LaunchScreen.strings ├── id.lproj │ └── LaunchScreen.strings ├── it.lproj │ └── LaunchScreen.strings ├── ja.lproj │ └── LaunchScreen.strings ├── ko.lproj │ └── LaunchScreen.strings ├── main.m ├── nl-NL.lproj │ └── LaunchScreen.strings ├── nl.lproj │ └── LaunchScreen.strings ├── pt-PT.lproj │ └── LaunchScreen.strings ├── pt.lproj │ └── LaunchScreen.strings ├── ru.lproj │ └── LaunchScreen.strings ├── sv.lproj │ └── LaunchScreen.strings ├── tr.lproj │ └── LaunchScreen.strings ├── zh-Hans.lproj │ └── LaunchScreen.strings └── zh-Hant.lproj │ └── LaunchScreen.strings ├── LICENSE ├── Podfile ├── Podfile.lock ├── README.md ├── Screenshot-2.png ├── Screenshot.png └── create_bundle.sh /.gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | 4 | .DS_Store 5 | .AppleDouble 6 | .LSOverride 7 | 8 | # Icon must end with two \r 9 | Icon 10 | 11 | 12 | # Thumbnails 13 | ._* 14 | 15 | # Files that might appear in the root of a volume 16 | .DocumentRevisions-V100 17 | .fseventsd 18 | .Spotlight-V100 19 | .TemporaryItems 20 | .Trashes 21 | .VolumeIcon.icns 22 | 23 | # Directories potentially created on remote AFP share 24 | .AppleDB 25 | .AppleDesktop 26 | Network Trash Folder 27 | Temporary Items 28 | .apdisk 29 | 30 | # Xcode 31 | # 32 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 33 | 34 | ## Build generated 35 | build/ 36 | DerivedData/ 37 | 38 | ## Various settings 39 | *.pbxuser 40 | !default.pbxuser 41 | *.mode1v3 42 | !default.mode1v3 43 | *.mode2v3 44 | !default.mode2v3 45 | *.perspectivev3 46 | !default.perspectivev3 47 | xcuserdata/ 48 | 49 | ## Other 50 | *.moved-aside 51 | *.xcuserstate 52 | 53 | ## Obj-C/Swift specific 54 | *.hmap 55 | *.ipa 56 | 57 | # CocoaPods 58 | # 59 | # We recommend against adding the Pods directory to your .gitignore. However 60 | # you should judge for yourself, the pros and cons are mentioned at: 61 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 62 | 63 | Pods/ 64 | CTAssetsPickerController/CTAssetsPickerController.bundle 65 | 66 | # Carthage 67 | # 68 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 69 | # Carthage/Checkouts 70 | 71 | Carthage/Build 72 | 73 | # fastlane 74 | # 75 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 76 | # screenshots whenever they are needed. 77 | # For more information about the recommended setup visit: 78 | # https://github.com/fastlane/fastlane/blob/master/docs/Gitignore.md 79 | 80 | fastlane/report.xml 81 | fastlane/screenshots 82 | 83 | # AppCode 84 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio 85 | 86 | *.iml 87 | 88 | ## Directory-based project format: 89 | .idea/ -------------------------------------------------------------------------------- /CTAssetsPickerController.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |spec| 2 | spec.name = 'CTAssetsPickerController' 3 | spec.version = '3.3.2-alpha' 4 | spec.summary = 'iOS control that allows picking multiple photos and videos from user\'s photo library.' 5 | 6 | spec.description = <<-DESC 7 | CTAssetsPickerController is an iOS controller that allows picking 8 | multiple photos and videos from user's photo library. 9 | The usage and look-and-feel just similar to UIImagePickerController. 10 | It uses **ARC** and **Photos** frameworks. 11 | DESC 12 | 13 | spec.homepage = 'https://github.com/chiunam/CTAssetsPickerController' 14 | spec.screenshot = 'https://raw.github.com/chiunam/CTAssetsPickerController/master/Screenshot.png' 15 | spec.license = { :type => 'MIT', :file => 'LICENSE' } 16 | spec.author = { 'Clement T' => 'chiunam@gmail.com' } 17 | spec.social_media_url = 'https://twitter.com/chiunam' 18 | spec.platform = :ios, '8.0' 19 | spec.ios.deployment_target = '8.0' 20 | spec.source = { :git => 'https://github.com/chiunam/CTAssetsPickerController.git', :tag => 'v3.3.2-alpha' } 21 | spec.public_header_files = 'CTAssetsPickerController/*.h' 22 | spec.source_files = 'CTAssetsPickerController/**/*.{h,m}' 23 | spec.resource_bundles = { 'CTAssetsPickerController' => ['CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/*/*.png', 'CTAssetsPickerController/Resources/*.lproj'] } 24 | spec.ios.frameworks = 'Photos' 25 | spec.requires_arc = true 26 | spec.dependency 'PureLayout', '~> 3.0.0' 27 | end 28 | -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetCheckmark.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | 30 | /** 31 | * The check mark to show selected asset. 32 | */ 33 | @interface CTAssetCheckmark : UIView 34 | 35 | #pragma mark Customizing Appearance 36 | 37 | /** 38 | * @name Customizing Appearance 39 | */ 40 | 41 | /** 42 | * To set margin of the check mark from specific edges. 43 | * 44 | * @param margin The margin from the edges. 45 | * @param edgeX The layout attribute respresents vertical edge that the check mark pins to. Either `NSLayoutAttributeLeft` or `NSLayoutAttributeRight`. 46 | * @param edgeY The layout attribute respresents horizontal edge that the check mark pins to. Either `NSLayoutAttributeTop` or `NSLayoutAttributeBottom`. 47 | */ 48 | - (void)setMargin:(CGFloat)margin forVerticalEdge:(NSLayoutAttribute)edgeX horizontalEdge:(NSLayoutAttribute)edgeY UI_APPEARANCE_SELECTOR; 49 | 50 | @end -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetCollectionViewCell.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | #import 29 | #import "CTAssetThumbnailStacks.h" 30 | 31 | 32 | 33 | @interface CTAssetCollectionViewCell : UITableViewCell 34 | 35 | @property (nonatomic, strong, readonly, nonnull) CTAssetThumbnailStacks *thumbnailStacks; 36 | 37 | @property (nonatomic, weak, nullable) UIFont *titleFont UI_APPEARANCE_SELECTOR; 38 | @property (nonatomic, strong, nullable) UIColor *titleTextColor UI_APPEARANCE_SELECTOR; 39 | @property (nonatomic, strong, nullable) UIColor *selectedTitleTextColor UI_APPEARANCE_SELECTOR; 40 | 41 | @property (nonatomic, weak, nullable) UIFont *countFont UI_APPEARANCE_SELECTOR; 42 | @property (nonatomic, strong, nullable) UIColor *countTextColor UI_APPEARANCE_SELECTOR; 43 | @property (nonatomic, strong, nullable) UIColor *selectedCountTextColor UI_APPEARANCE_SELECTOR; 44 | 45 | @property (nonatomic, strong, nullable) UIColor *accessoryColor UI_APPEARANCE_SELECTOR; 46 | @property (nonatomic, strong, nullable) UIColor *selectedAccessoryColor UI_APPEARANCE_SELECTOR; 47 | 48 | @property (nonatomic, weak, nullable) UIColor *selectedBackgroundColor UI_APPEARANCE_SELECTOR; 49 | 50 | 51 | - (instancetype)initWithThumbnailSize:(CGSize)size reuseIdentifier:(nullable NSString *)reuseIdentifier; 52 | - (void)bind:(nonnull PHAssetCollection *)collection count:(NSUInteger)count; 53 | 54 | @end -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetCollectionViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface CTAssetCollectionViewController : UITableViewController 30 | 31 | - (void)reloadUserInterface; 32 | 33 | @end -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetItemViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | #import 29 | 30 | NS_ASSUME_NONNULL_BEGIN 31 | 32 | @interface CTAssetItemViewController : UIViewController 33 | 34 | @property (nonatomic, assign) BOOL allowsSelection; 35 | @property (nonatomic, strong, readonly) PHAsset *asset; 36 | @property (nonatomic, strong, readonly, nullable) UIImage *image; 37 | 38 | + (CTAssetItemViewController *)assetItemViewControllerForAsset:(PHAsset *)asset; 39 | 40 | - (void)playAsset:(nullable id)sender; 41 | - (void)pauseAsset:(nullable id)sender; 42 | 43 | @end 44 | 45 | NS_ASSUME_NONNULL_END -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetPlayButton.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface CTAssetPlayButton : UIControl 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetScrollView.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | #import "CTAssetItemViewController.h" 29 | #import "CTAssetPlayButton.h" 30 | #import "CTAssetSelectionButton.h" 31 | 32 | 33 | NS_ASSUME_NONNULL_BEGIN 34 | 35 | extern NSString * const CTAssetScrollViewDidTapNotification; 36 | extern NSString * const CTAssetScrollViewPlayerWillPlayNotification; 37 | extern NSString * const CTAssetScrollViewPlayerWillPauseNotification; 38 | 39 | 40 | @interface CTAssetScrollView : UIScrollView 41 | 42 | @property (nonatomic, assign) BOOL allowsSelection; 43 | 44 | @property (nonatomic, strong, readonly, nullable) UIImage *image; 45 | @property (nonatomic, strong, readonly, nullable) AVPlayer *player; 46 | 47 | @property (nonatomic, strong, readonly) UIImageView *imageView; 48 | @property (nonatomic, strong, readonly) CTAssetPlayButton *playButton; 49 | @property (nonatomic, strong, readonly) CTAssetSelectionButton *selectionButton; 50 | 51 | 52 | - (void)startActivityAnimating; 53 | - (void)stopActivityAnimating; 54 | 55 | - (void)setProgress:(CGFloat)progress; 56 | 57 | - (void)bind:(PHAsset *)asset image:(nullable UIImage *)image requestInfo:(nullable NSDictionary *)info; 58 | - (void)bind:(AVPlayerItem *)playerItem requestInfo:(nullable NSDictionary *)info; 59 | 60 | - (void)updateZoomScalesAndZoom:(BOOL)zoom; 61 | 62 | - (void)playVideo; 63 | - (void)pauseVideo; 64 | 65 | @end 66 | 67 | NS_ASSUME_NONNULL_END -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetSelectionButton.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface CTAssetSelectionButton : UIControl 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetThumbnailOverlay.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | #import 29 | 30 | 31 | @interface CTAssetThumbnailOverlay : UIView 32 | 33 | - (void)bind:(nullable PHAsset *)asset duration:(nullable NSString *)duration; 34 | - (void)bind:(nullable PHAssetCollection *)assetCollection; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetThumbnailStacks.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | #import "CTAssetThumbnailView.h" 29 | 30 | @interface CTAssetThumbnailStacks : UIView 31 | 32 | @property (nonatomic, assign) CGSize thumbnailSize; 33 | @property (nonatomic, copy, readonly) NSArray *thumbnailViews; 34 | @property (nonatomic, assign, readonly) UIEdgeInsets edgeInsets; 35 | 36 | - (nonnull CTAssetThumbnailView *)thumbnailAtIndex:(NSUInteger)index; 37 | - (void)setHighlighted:(BOOL)highlighted; 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetThumbnailView.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | #import 29 | 30 | @interface CTAssetThumbnailView : UIView 31 | 32 | @property (nonatomic, assign) BOOL showsDuration; 33 | @property (nonatomic, strong, nullable) UIImage *backgroundImage; 34 | 35 | - (void)bind:(nullable UIImage *)image asset:(nullable PHAsset *)asset; 36 | - (void)bind:(nullable UIImage *)image assetCollection:(nullable PHAssetCollection *)assetCollection; 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetsGridSelectedView.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2013 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface CTAssetsGridSelectedView : UIView 30 | 31 | @property (nonatomic, assign) BOOL showsSelectionIndex; 32 | @property (nonatomic, assign) NSUInteger selectionIndex; 33 | 34 | @property (nonatomic, weak, nullable) UIColor *selectedBackgroundColor UI_APPEARANCE_SELECTOR; 35 | @property (nonatomic, assign) CGFloat borderWidth UI_APPEARANCE_SELECTOR; 36 | 37 | @property (nonatomic, weak, nullable) UIFont *font UI_APPEARANCE_SELECTOR DEPRECATED_MSG_ATTRIBUTE("Use setTextAttributes: of CTAssetSelectionLabel instead."); 38 | @property (nonatomic, weak, nullable) UIColor *textColor UI_APPEARANCE_SELECTOR DEPRECATED_MSG_ATTRIBUTE("Use setTextAttributes: of CTAssetSelectionLabel instead."); 39 | 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetsGridView.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface CTAssetsGridView : UIView 30 | 31 | @property (nonatomic, weak, nullable) UIColor *gridBackgroundColor UI_APPEARANCE_SELECTOR; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetsGridView.m: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | #import "CTAssetsPickerDefines.h" 29 | #import "CTAssetsGridView.h" 30 | 31 | @interface CTAssetsGridView () 32 | 33 | @property (nonatomic, assign) BOOL didSetupConstraints; 34 | 35 | @end 36 | 37 | 38 | @implementation CTAssetsGridView 39 | 40 | - (instancetype)initWithFrame:(CGRect)frame 41 | { 42 | if (self = [super initWithFrame:frame]) 43 | { 44 | [self setupViews]; 45 | } 46 | 47 | return self; 48 | } 49 | 50 | 51 | #pragma mark - Setup 52 | 53 | - (void)setupViews 54 | { 55 | self.backgroundColor = CTAssetsGridViewBackgroundColor; 56 | } 57 | 58 | 59 | #pragma mark - Apperance 60 | 61 | - (UIColor *)gridBackgroundColor 62 | { 63 | return self.backgroundColor; 64 | } 65 | 66 | - (void)setGridBackgroundColor:(UIColor *)backgroundColor 67 | { 68 | UIColor *color = (backgroundColor) ? (backgroundColor) : CTAssetsGridViewBackgroundColor; 69 | self.backgroundColor = color; 70 | } 71 | 72 | 73 | #pragma mark - Update auto layout constraints 74 | 75 | - (void)updateConstraints 76 | { 77 | if (!self.didSetupConstraints) 78 | { 79 | [self autoPinEdgesToSuperviewEdges]; 80 | self.didSetupConstraints = YES; 81 | } 82 | 83 | [super updateConstraints]; 84 | } 85 | 86 | @end 87 | -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetsGridViewCell.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | #import 29 | #import "CTAssetThumbnailView.h" 30 | 31 | 32 | 33 | @interface CTAssetsGridViewCell : UICollectionViewCell 34 | 35 | @property (nonatomic, assign, getter = isEnabled) BOOL enabled; 36 | @property (nonatomic, assign) BOOL showsSelectionIndex; 37 | @property (nonatomic, assign) NSUInteger selectionIndex; 38 | 39 | @property (nonatomic, weak, nullable) UIColor *disabledColor UI_APPEARANCE_SELECTOR; 40 | @property (nonatomic, weak, nullable) UIColor *highlightedColor UI_APPEARANCE_SELECTOR; 41 | 42 | - (void)bind:(nonnull PHAsset *)asset; 43 | 44 | @end -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetsGridViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | #import 29 | 30 | 31 | @class CTAssetsGridViewController; 32 | 33 | 34 | 35 | @protocol CTAssetsGridViewControllerDelegate 36 | 37 | - (void)assetsGridViewController:(nonnull CTAssetsGridViewController *)picker photoLibraryDidChangeForAssetCollection:(nonnull PHAssetCollection *)assetCollection; 38 | 39 | @end 40 | 41 | 42 | 43 | @interface CTAssetsGridViewController : UICollectionViewController 44 | 45 | @property (nonatomic, weak) id delegate; 46 | @property (nonatomic, strong, nonnull) PHAssetCollection *assetCollection; 47 | 48 | @end 49 | 50 | 51 | -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetsGridViewFooter.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | #import 29 | 30 | 31 | @interface CTAssetsGridViewFooter : UICollectionReusableView 32 | 33 | @property (nonatomic, weak, nullable) UIFont *font UI_APPEARANCE_SELECTOR; 34 | @property (nonatomic, weak, nullable) UIColor *textColor UI_APPEARANCE_SELECTOR; 35 | 36 | - (void)bind:(nonnull PHFetchResult *)result; 37 | 38 | @end -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetsGridViewLayout.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface CTAssetsGridViewLayout : UICollectionViewFlowLayout 30 | 31 | - (instancetype)initWithContentSize:(CGSize)contentSize traitCollection:(UITraitCollection *)traits; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetsNavigationController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 bawn 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface CTAssetsNavigationController : UINavigationController 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetsPageView.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface CTAssetsPageView : UIView 30 | 31 | @property (nonatomic, strong, nullable) UIColor *pageBackgroundColor UI_APPEARANCE_SELECTOR; 32 | @property (nonatomic, strong, nullable) UIColor *fullscreenBackgroundColor UI_APPEARANCE_SELECTOR; 33 | 34 | - (void)enterFullscreen; 35 | - (void)exitFullscreen; 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetsPageViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | #import 29 | 30 | 31 | 32 | NS_ASSUME_NONNULL_BEGIN 33 | 34 | /** 35 | * A view controller that shows selected photos and vidoes from user's photo library that let the user navigate the item page by page. 36 | */ 37 | @interface CTAssetsPageViewController : UIPageViewController 38 | 39 | /** 40 | * The index of the photo or video with the currently showing item. 41 | */ 42 | @property (nonatomic, assign) NSInteger pageIndex; 43 | 44 | 45 | /** 46 | * @name Creating a Assets Page View Controller 47 | */ 48 | 49 | /** 50 | * Initializes a newly created view controller with a fetech result. 51 | * 52 | * @param fetchResult A fetch result of `PHAsset` objects. 53 | * 54 | * @return An instance of `CTAssetPageViewController` initialized to show the asset items in `fetchResult`. 55 | */ 56 | - (instancetype)initWithFetchResult:(PHFetchResult *)fetchResult; 57 | 58 | /** 59 | * Initializes a newly created view controller with an array of assets. 60 | * 61 | * @param assets An array of `PHAsset` objects. 62 | * 63 | * @return An instance of `CTAssetPageViewController` initialized to show the asset items in `assets`. 64 | */ 65 | - (instancetype)initWithAssets:(NSArray *)assets; 66 | 67 | @end 68 | 69 | NS_ASSUME_NONNULL_END -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetsPickerAccessDeniedView.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface CTAssetsPickerAccessDeniedView : UIView 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetsPickerNoAssetsView.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface CTAssetsPickerNoAssetsView : UIView 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /CTAssetsPickerController/CTAssetsViewControllerTransition.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | 30 | 31 | 32 | 33 | @interface CTAssetsViewControllerTransition : NSObject 34 | 35 | 36 | @property (nonatomic, assign) UINavigationControllerOperation operation; 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Categories/CTAssetsPageViewController+Internal.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | @interface CTAssetsPageViewController (Internal) 28 | 29 | @property (nonatomic, assign) BOOL allowsSelection; 30 | 31 | @end -------------------------------------------------------------------------------- /CTAssetsPickerController/Categories/CTAssetsPickerController+Internal.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | @interface CTAssetsPickerController (Internal) 28 | 29 | - (void)dismiss:(id)sender; 30 | - (void)finishPickingAssets:(id)sender; 31 | 32 | - (void)setShouldCollapseDetailViewController:(BOOL)collapse; 33 | - (void)showNoAssets; 34 | 35 | - (CGSize)assetCollectionThumbnailSize; 36 | - (CGSize)assetThumbnailSize; 37 | - (NSString *)selectedAssetsString; 38 | 39 | - (PHImageRequestOptions *)thumbnailRequestOptions; 40 | - (CGSize)imageSizeForContainerSize:(CGSize)size; 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Categories/NSBundle+CTAssetsPickerController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | 30 | #define CTAssetsPickerLocalizedString(key, comment) \ 31 | NSLocalizedStringFromTableInBundle((key), @"CTAssetsPicker", [NSBundle ctassetsPickerBundle], (comment)) 32 | 33 | @interface NSBundle (CTAssetsPickerController) 34 | 35 | + (NSBundle *)ctassetsPickerBundle; 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Categories/NSBundle+CTAssetsPickerController.m: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import "NSBundle+CTAssetsPickerController.h" 28 | #import "CTAssetsPickerController.h" 29 | 30 | @implementation NSBundle (CTAssetsPickerController) 31 | 32 | + (NSBundle *)ctassetsPickerBundle 33 | { 34 | return [NSBundle bundleWithPath:[NSBundle ctassetsPickerBundlePath]]; 35 | } 36 | 37 | + (NSString *)ctassetsPickerBundlePath 38 | { 39 | return [[NSBundle bundleForClass:[CTAssetsPickerController class]] 40 | pathForResource:@"CTAssetsPickerController" ofType:@"bundle"]; 41 | } 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Categories/NSDateFormatter+CTAssetsPickerController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | 30 | 31 | @interface NSDateFormatter (CTAssetsPickerController) 32 | 33 | - (NSString *)ctassetsPickerStringFromTimeInterval:(NSTimeInterval)timeInterval; 34 | - (NSString *)ctassetsPickerSpellOutStringFromTimeInterval:(NSTimeInterval)timeInterval; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Categories/NSIndexSet+CTAssetsPickerController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface NSIndexSet (CTAssetsPickerController) 30 | 31 | - (NSArray *)ctassetsPickerIndexPathsFromIndexesWithSection:(NSUInteger)section; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Categories/NSIndexSet+CTAssetsPickerController.m: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | #import "NSIndexSet+CTAssetsPickerController.h" 29 | 30 | 31 | @implementation NSIndexSet (CTAssetsPickerController) 32 | 33 | - (NSArray *)ctassetsPickerIndexPathsFromIndexesWithSection:(NSUInteger)section 34 | { 35 | NSMutableArray *indexPaths = [NSMutableArray arrayWithCapacity:self.count]; 36 | 37 | [self enumerateIndexesUsingBlock:^(NSUInteger index, BOOL *stop) { 38 | [indexPaths addObject:[NSIndexPath indexPathForItem:index inSection:section]]; 39 | }]; 40 | 41 | return indexPaths; 42 | } 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Categories/NSNumberFormatter+CTAssetsPickerController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface NSNumberFormatter (CTAssetsPickerController) 30 | 31 | - (NSString *)ctassetsPickerStringFromAssetsCount:(NSUInteger)count; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Categories/NSNumberFormatter+CTAssetsPickerController.m: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import "NSNumberFormatter+CTAssetsPickerController.h" 28 | 29 | @implementation NSNumberFormatter (CTAssetsPickerController) 30 | 31 | - (NSString *)ctassetsPickerStringFromAssetsCount:(NSUInteger)count 32 | { 33 | self.numberStyle = NSNumberFormatterDecimalStyle; 34 | self.locale = [NSLocale currentLocale]; 35 | return [self stringFromNumber:@(count)]; 36 | } 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Categories/PHAsset+CTAssetsPickerController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface PHAsset (CTAssetsPickerController) 30 | 31 | - (BOOL)ctassetsPickerIsPhoto; 32 | - (BOOL)ctassetsPickerIsVideo; 33 | - (BOOL)ctassetsPickerIsHighFrameRateVideo; 34 | - (BOOL)ctassetsPickerIsTimelapseVideo; 35 | 36 | - (UIImage *)badgeImage; 37 | - (NSString *)ctassetsPickerAccessibilityLabel; 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Categories/PHAssetCollection+CTAssetsPickerController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface PHAssetCollection (CTAssetsPickerController) 30 | 31 | + (PHAssetCollectionType)ctassetPickerAssetCollectionTypeOfSubtype:(PHAssetCollectionSubtype)subtype; 32 | - (NSUInteger)ctassetPikcerCountOfAssetsFetchedWithOptions:(PHFetchOptions *)fetchOptions; 33 | - (UIImage *)badgeImage; 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Categories/PHImageManager+CTAssetsPickerController.h: -------------------------------------------------------------------------------- 1 | // 2 | // PHImageManager+CTSupport.h 3 | // CTAssetsPickerDemo 4 | // 5 | // Created by Korben Allen Rusek on 4/7/16. 6 | // Copyright © 2016 Clement T. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface PHImageManager (CTAssetsPickerController) 12 | 13 | - (PHImageRequestID)ctassetsPickerRequestImageForAsset:(PHAsset *)asset targetSize:(CGSize)targetSize contentMode:(PHImageContentMode)contentMode options:( PHImageRequestOptions *)options resultHandler:(void (^)(UIImage * result, NSDictionary * info))resultHandler; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Categories/PHImageManager+CTAssetsPickerController.m: -------------------------------------------------------------------------------- 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 | 9 | #import "PHImageManager+CTAssetsPickerController.h" 10 | 11 | @implementation PHImageManager (CTAssetsPickerController) 12 | 13 | + (BOOL)ctassetsPickerNeedsiPadSupportSize { 14 | return [(NSString*)[UIDevice currentDevice].model hasPrefix:@"iPad"] && UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad == false; 15 | } 16 | 17 | + (CGSize)ctassetsPickerSizeForSize:(CGSize)size withMinimumDimension:(CGFloat)dimension { 18 | if (size.width >= dimension && size.height >= dimension) return size; 19 | if (size.width <= 0 || size.height <= 0) return size; 20 | 21 | CGFloat width, height; 22 | if (size.width < size.height) { 23 | width = 500; 24 | height = size.height/size.width*width; 25 | } else { 26 | height = 500; 27 | width = size.width/size.height*height; 28 | } 29 | return CGSizeMake(width, height); 30 | } 31 | 32 | - (PHImageRequestID)ctassetsPickerRequestImageForAsset:(PHAsset *)asset targetSize:(CGSize)targetSize contentMode:(PHImageContentMode)contentMode options:( PHImageRequestOptions *)options resultHandler:(void (^)(UIImage * result, NSDictionary * info))resultHandler { 33 | CGSize size = targetSize; 34 | if ([[self class] ctassetsPickerNeedsiPadSupportSize]) { 35 | size = [[self class] ctassetsPickerSizeForSize:targetSize withMinimumDimension:500]; 36 | } 37 | return [self requestImageForAsset:asset targetSize:size contentMode:contentMode options:options resultHandler:resultHandler]; 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Categories/UICollectionView+CTAssetsPickerController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface UICollectionView (CTAssetsPickerController) 30 | 31 | - (NSArray *)ctassetsPickerIndexPathsForElementsInRect:(CGRect)rect; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Categories/UICollectionView+CTAssetsPickerController.m: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import "UICollectionView+CTAssetsPickerController.h" 28 | 29 | @implementation UICollectionView (CTAssetsPickerController) 30 | 31 | - (NSArray *)ctassetsPickerIndexPathsForElementsInRect:(CGRect)rect 32 | { 33 | NSArray *allAttributes = [self.collectionViewLayout layoutAttributesForElementsInRect:rect]; 34 | 35 | if (allAttributes.count == 0) 36 | return nil; 37 | 38 | NSMutableArray *indexPaths = [NSMutableArray arrayWithCapacity:allAttributes.count]; 39 | 40 | for (UICollectionViewLayoutAttributes *attributes in allAttributes) 41 | { 42 | NSIndexPath *indexPath = attributes.indexPath; 43 | [indexPaths addObject:indexPath]; 44 | } 45 | 46 | return indexPaths; 47 | } 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Categories/UIImage+CTAssetsPickerController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface UIImage (CTAssetsPickerController) 30 | 31 | + (UIImage *)ctassetsPickerImageNamed:(NSString *)name; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Categories/UIImage+CTAssetsPickerController.m: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import "UIImage+CTAssetsPickerController.h" 28 | #import "NSBundle+CTAssetsPickerController.h" 29 | 30 | @implementation UIImage (CTAssetsPickerController) 31 | 32 | + (UIImage *)ctassetsPickerImageNamed:(NSString *)name 33 | { 34 | return [UIImage imageNamed:name inBundle:[NSBundle ctassetsPickerBundle] compatibleWithTraitCollection:nil]; 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/AccessDeniedViewLock.imageset/AccessDeniedViewLock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/AccessDeniedViewLock.imageset/AccessDeniedViewLock.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/AccessDeniedViewLock.imageset/AccessDeniedViewLock@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/AccessDeniedViewLock.imageset/AccessDeniedViewLock@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/AccessDeniedViewLock.imageset/AccessDeniedViewLock@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/AccessDeniedViewLock.imageset/AccessDeniedViewLock@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/AccessDeniedViewLock.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "AccessDeniedViewLock.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "AccessDeniedViewLock@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x", 16 | "filename" : "AccessDeniedViewLock@3x.png" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeAllPhotos.imageset/BadgeAllPhotos@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeAllPhotos.imageset/BadgeAllPhotos@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeAllPhotos.imageset/BadgeAllPhotos@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeAllPhotos.imageset/BadgeAllPhotos@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeAllPhotos.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "BadgeAllPhotos@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "BadgeAllPhotos@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeBurst.imageset/BadgeBurst@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeBurst.imageset/BadgeBurst@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeBurst.imageset/BadgeBurst@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeBurst.imageset/BadgeBurst@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeBurst.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "BadgeBurst@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "BadgeBurst@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeFavorites.imageset/BadgeFavorites@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeFavorites.imageset/BadgeFavorites@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeFavorites.imageset/BadgeFavorites@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeFavorites.imageset/BadgeFavorites@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeFavorites.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "BadgeFavorites@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "BadgeFavorites@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeLastImport.imageset/BadgeLastImport@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeLastImport.imageset/BadgeLastImport@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeLastImport.imageset/BadgeLastImport@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeLastImport.imageset/BadgeLastImport@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeLastImport.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "BadgeLastImport@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "BadgeLastImport@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgePanorama.imageset/BadgePanorama@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgePanorama.imageset/BadgePanorama@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgePanorama.imageset/BadgePanorama@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgePanorama.imageset/BadgePanorama@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgePanorama.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "BadgePanorama@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "BadgePanorama@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeRecentlyDeleted.imageset/BadgeRecentlyDeleted@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeRecentlyDeleted.imageset/BadgeRecentlyDeleted@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeRecentlyDeleted.imageset/BadgeRecentlyDeleted@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeRecentlyDeleted.imageset/BadgeRecentlyDeleted@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeRecentlyDeleted.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "BadgeRecentlyDeleted@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "BadgeRecentlyDeleted@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeScreenshots.imageset/BadgeScreenshots@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeScreenshots.imageset/BadgeScreenshots@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeScreenshots.imageset/BadgeScreenshots@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeScreenshots.imageset/BadgeScreenshots@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeScreenshots.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "BadgeScreenshots@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "BadgeScreenshots@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeSelfPortraits.imageset/BadgeSelfPortraits@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeSelfPortraits.imageset/BadgeSelfPortraits@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeSelfPortraits.imageset/BadgeSelfPortraits@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeSelfPortraits.imageset/BadgeSelfPortraits@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeSelfPortraits.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "BadgeSelfPortraits@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "BadgeSelfPortraits@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeSloMoSmall.imageset/BadgeSloMoSmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeSloMoSmall.imageset/BadgeSloMoSmall.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeSloMoSmall.imageset/BadgeSloMoSmall@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeSloMoSmall.imageset/BadgeSloMoSmall@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeSloMoSmall.imageset/BadgeSloMoSmall@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeSloMoSmall.imageset/BadgeSloMoSmall@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeSloMoSmall.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "BadgeSlomoSmall.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "BadgeSlomoSmall@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "BadgeSlomoSmall@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeSlomo.imageset/BadgeSlomo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeSlomo.imageset/BadgeSlomo@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeSlomo.imageset/BadgeSlomo@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeSlomo.imageset/BadgeSlomo@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeSlomo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "BadgeSlomo@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "BadgeSlomo@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeTimelapse.imageset/BadgeTimelapse@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeTimelapse.imageset/BadgeTimelapse@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeTimelapse.imageset/BadgeTimelapse@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeTimelapse.imageset/BadgeTimelapse@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeTimelapse.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "BadgeTimelapse@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "BadgeTimelapse@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeTimelapseSmall.imageset/BadgeTimelapseSmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeTimelapseSmall.imageset/BadgeTimelapseSmall.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeTimelapseSmall.imageset/BadgeTimelapseSmall@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeTimelapseSmall.imageset/BadgeTimelapseSmall@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeTimelapseSmall.imageset/BadgeTimelapseSmall@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeTimelapseSmall.imageset/BadgeTimelapseSmall@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeTimelapseSmall.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "BadgeTimelapseSmall.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "BadgeTimelapseSmall@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "BadgeTimelapseSmall@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeVideo.imageset/BadgeVideo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeVideo.imageset/BadgeVideo@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeVideo.imageset/BadgeVideo@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeVideo.imageset/BadgeVideo@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeVideo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "BadgeVideo@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "BadgeVideo@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeVideoSmall.imageset/BadgeVideoSmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeVideoSmall.imageset/BadgeVideoSmall.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeVideoSmall.imageset/BadgeVideoSmall@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeVideoSmall.imageset/BadgeVideoSmall@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeVideoSmall.imageset/BadgeVideoSmall@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeVideoSmall.imageset/BadgeVideoSmall@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/BadgeVideoSmall.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "BadgeVideoSmall.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "BadgeVideoSmall@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "BadgeVideoSmall@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/Checkmark.imageset/Checkmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/Checkmark.imageset/Checkmark.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/Checkmark.imageset/Checkmark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/Checkmark.imageset/Checkmark@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/Checkmark.imageset/Checkmark@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/Checkmark.imageset/Checkmark@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/Checkmark.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "Checkmark.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "Checkmark@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x", 16 | "filename" : "Checkmark@3x.png" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/CheckmarkShadow.imageset/CheckmarkShadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/CheckmarkShadow.imageset/CheckmarkShadow.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/CheckmarkShadow.imageset/CheckmarkShadow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/CheckmarkShadow.imageset/CheckmarkShadow@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/CheckmarkShadow.imageset/CheckmarkShadow@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/CheckmarkShadow.imageset/CheckmarkShadow@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/CheckmarkShadow.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "CheckmarkShadow.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "CheckmarkShadow@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x", 16 | "filename" : "CheckmarkShadow@3x.png" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/CheckmarkUnselected.imageset/CheckmarkUnselected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/CheckmarkUnselected.imageset/CheckmarkUnselected.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/CheckmarkUnselected.imageset/CheckmarkUnselected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/CheckmarkUnselected.imageset/CheckmarkUnselected@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/CheckmarkUnselected.imageset/CheckmarkUnselected@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/CheckmarkUnselected.imageset/CheckmarkUnselected@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/CheckmarkUnselected.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "CheckmarkUnselected.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "CheckmarkUnselected@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "CheckmarkUnselected@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/DisclosureArrow.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "DisclosureArrow.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "DisclosureArrow@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "DisclosureArrow@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/DisclosureArrow.imageset/DisclosureArrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/DisclosureArrow.imageset/DisclosureArrow.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/DisclosureArrow.imageset/DisclosureArrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/DisclosureArrow.imageset/DisclosureArrow@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/DisclosureArrow.imageset/DisclosureArrow@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/DisclosureArrow.imageset/DisclosureArrow@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridDisabledAsset.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "GridDisabledAsset.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "GridDisabledAsset@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x", 16 | "filename" : "GridDisabledAsset@3x.png" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridDisabledAsset.imageset/GridDisabledAsset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridDisabledAsset.imageset/GridDisabledAsset.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridDisabledAsset.imageset/GridDisabledAsset@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridDisabledAsset.imageset/GridDisabledAsset@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridDisabledAsset.imageset/GridDisabledAsset@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridDisabledAsset.imageset/GridDisabledAsset@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridEmptyAlbum.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "GridEmptyAlbum.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "GridEmptyAlbum@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x", 16 | "filename" : "GridEmptyAlbum@3x.png" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridEmptyAlbum.imageset/GridEmptyAlbum.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridEmptyAlbum.imageset/GridEmptyAlbum.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridEmptyAlbum.imageset/GridEmptyAlbum@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridEmptyAlbum.imageset/GridEmptyAlbum@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridEmptyAlbum.imageset/GridEmptyAlbum@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridEmptyAlbum.imageset/GridEmptyAlbum@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridEmptyAlbumShared.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "GridEmptyAlbumShared.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "GridEmptyAlbumShared@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x", 16 | "filename" : "GridEmptyAlbumShared@3x.png" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridEmptyAlbumShared.imageset/GridEmptyAlbumShared.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridEmptyAlbumShared.imageset/GridEmptyAlbumShared.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridEmptyAlbumShared.imageset/GridEmptyAlbumShared@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridEmptyAlbumShared.imageset/GridEmptyAlbumShared@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridEmptyAlbumShared.imageset/GridEmptyAlbumShared@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridEmptyAlbumShared.imageset/GridEmptyAlbumShared@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridEmptyCameraRoll.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "GridEmptyCameraRoll.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "GridEmptyCameraRoll@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x", 16 | "filename" : "GridEmptyCameraRoll@3x.png" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridEmptyCameraRoll.imageset/GridEmptyCameraRoll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridEmptyCameraRoll.imageset/GridEmptyCameraRoll.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridEmptyCameraRoll.imageset/GridEmptyCameraRoll@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridEmptyCameraRoll.imageset/GridEmptyCameraRoll@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridEmptyCameraRoll.imageset/GridEmptyCameraRoll@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridEmptyCameraRoll.imageset/GridEmptyCameraRoll@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridGradient.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "GridGradient.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "GridGradient@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x", 16 | "filename" : "GridGradient@3x.png" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridGradient.imageset/GridGradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridGradient.imageset/GridGradient.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridGradient.imageset/GridGradient@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridGradient.imageset/GridGradient@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridGradient.imageset/GridGradient@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridGradient.imageset/GridGradient@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridHiddenAlbum.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x", 10 | "filename" : "GridHiddenAlbum@2x.png" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x", 15 | "filename" : "GridHiddenAlbum@3x.png" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridHiddenAlbum.imageset/GridHiddenAlbum@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridHiddenAlbum.imageset/GridHiddenAlbum@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridHiddenAlbum.imageset/GridHiddenAlbum@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/GridHiddenAlbum.imageset/GridHiddenAlbum@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/PauseButton.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "PauseButton.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "PauseButton@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x", 16 | "filename" : "PauseButton@3x.png" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/PauseButton.imageset/PauseButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/PauseButton.imageset/PauseButton.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/PauseButton.imageset/PauseButton@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/PauseButton.imageset/PauseButton@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/PauseButton.imageset/PauseButton@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/PauseButton.imageset/PauseButton@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/PlayButton.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "PlayButton.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "PlayButton@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x", 16 | "filename" : "PlayButton@3x.png" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/PlayButton.imageset/PlayButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/PlayButton.imageset/PlayButton.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/PlayButton.imageset/PlayButton@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/PlayButton.imageset/PlayButton@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/PlayButton.imageset/PlayButton@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/PlayButton.imageset/PlayButton@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/VideoPlayButtonMask.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "VideoPlayButtonMask.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "VideoPlayButtonMask@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x", 16 | "filename" : "VideoPlayButtonMask@3x.png" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/VideoPlayButtonMask.imageset/VideoPlayButtonMask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/VideoPlayButtonMask.imageset/VideoPlayButtonMask.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/VideoPlayButtonMask.imageset/VideoPlayButtonMask@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/VideoPlayButtonMask.imageset/VideoPlayButtonMask@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/VideoPlayButtonMask.imageset/VideoPlayButtonMask@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/VideoPlayButtonMask.imageset/VideoPlayButtonMask@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/VideoPlayGlyphMask.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "VideoPlayGlyphMask.png" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "VideoPlayGlyphMask@2x.png" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x", 16 | "filename" : "VideoPlayGlyphMask@3x.png" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/VideoPlayGlyphMask.imageset/VideoPlayGlyphMask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/VideoPlayGlyphMask.imageset/VideoPlayGlyphMask.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/VideoPlayGlyphMask.imageset/VideoPlayGlyphMask@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/VideoPlayGlyphMask.imageset/VideoPlayGlyphMask@2x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/VideoPlayGlyphMask.imageset/VideoPlayGlyphMask@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/CTAssetsPickerController/Resources/CTAssetsPicker.xcassets/VideoPlayGlyphMask.imageset/VideoPlayGlyphMask@3x.png -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/ar.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "إلغاء"; 3 | "Done" = "تم"; 4 | 5 | /* Default title */ 6 | "Photos" = "الصور"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "تم تحديد %@ صورة"; 10 | "%@ Photos Selected" = "تم تحديد %@ صور"; 11 | "%@ Video Selected" = "تم تحديد %@ فيديو"; 12 | "%@ Videos Selected" = "تم تحديد %@ فيديوهات"; 13 | "%@ Items Selected" = "تم تحديد %@ عناصر"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "%@ صور"; 17 | "%@ Videos" = "%@ فيديوهات"; 18 | "%@ Photos, %@ Videos" = "%@ صور، %@ فيديو"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%@ من %@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "لا يحق لهذا التطبيق الوصول إلى صورك أو فيديوهاتك."; 25 | "You can enable access in Privacy Settings." = "يمكن تفعيل الوصول من إعدادات الخصوصية."; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "لا توجد صور أو فيديوهات"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "يمكنك التقاط الصور والفيديوهات باستخدام الكاميرا، أو مزامنة الصورة والفيديوهات مع %@ الخاص بك.\nباستخدام iTunes."; 32 | "You can sync photos and videos onto your %@ using iTunes." = "يمكنك مزامنة الصورة والفيديوهات مع %@ الخاص بك."; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "تشغيل"; 36 | "Select" = "حدد"; 37 | "Deselect" = "إلغاء"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "ساعات"; 41 | "hour" = "ساعة"; 42 | "minutes" = "دقائق"; 43 | "minute" = "دقيقة"; 44 | "seconds" = "ثواني"; 45 | "second" = "ثانية"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "Cannot Play Stream Video"; 49 | "OK" = "OK"; -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/da.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "Fortryd"; 3 | "Done" = "Færdig"; 4 | 5 | /* Default title */ 6 | "Photos" = "Billeder"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "%@ Billed valgt"; 10 | "%@ Photos Selected" = "%@ Billeder valgt"; 11 | "%@ Video Selected" = "%@ Video valgt"; 12 | "%@ Videos Selected" = "%@ Videoer valgt"; 13 | "%@ Items Selected" = "%@ Emner valgt"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "%@ Billeder"; 17 | "%@ Videos" = "%@ Videoer"; 18 | "%@ Photos, %@ Videos" = "%1$@ Billeder, %2$@ Videoer"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%1$@ af %2$@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "Denne app har ikke adgangs til dine billeder eller videoer."; 25 | "You can enable access in Privacy Settings." = "Du kan tildele adgang under Privatlivs indstillinger."; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "Ingen billeder eller videoer"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Du kan tage billeder med kameraet, eller synkronisere billeder og videoer til din %@\nmed iTunes."; 32 | "You can sync photos and videos onto your %@ using iTunes." = "Du kan synkronisere billeder eller videoer til din %@ med iTunes."; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "Afspil"; 36 | "Select" = "Vælg"; 37 | "Deselect" = "Fravælg"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "timer"; 41 | "hour" = "time"; 42 | "minutes" = "minutter"; 43 | "minute" = "minut"; 44 | "seconds" = "sekunder"; 45 | "second" = "sekund"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "Kan ikke afspille video streaming"; 49 | "OK" = "OK"; 50 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/de.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "Abbrechen"; 3 | "Done" = "Fertig"; 4 | 5 | /* Default title */ 6 | "Photos" = "Fotos"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "%@ Foto ausgewählt"; 10 | "%@ Photos Selected" = "%@ Fotos ausgewählt"; 11 | "%@ Video Selected" = "%@ Video ausgewählt"; 12 | "%@ Videos Selected" = "%@ Videos ausgewählt"; 13 | "%@ Items Selected" = "%@ Objekte ausgewählt"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "%@ Fotos"; 17 | "%@ Videos" = "%@ Videos"; 18 | "%@ Photos, %@ Videos" = "%1$@ Fotos, %2$@ Videos"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%1$@ von %2$@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "Diese App darf nicht auf Ihr Fotoalbum zugreifen."; 25 | "You can enable access in Privacy Settings." = "Sie können den Zugriff in den Datenschutz Einstellungen erlauben."; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "Keine Fotos oder Videos vorhanden"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Sie können Fotos oder Videos mit der Kamera aufnehmen oder Ihr %@\nmit iTunes synchronisieren."; 32 | "You can sync photos and videos onto your %@ using iTunes." = "Sie können Fotos und Videos mit iTunes auf Ihr %@ synchronisieren."; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "Wiedergeben"; 36 | "Select" = "Wählen Sie"; 37 | "Deselect" = "Markierung entfernen"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "Stunden"; 41 | "hour" = "Stunde"; 42 | "minutes" = "Minuten"; 43 | "minute" = "Minute"; 44 | "seconds" = "Sekunden"; 45 | "second" = "Sekunde"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "Video kann nicht wiedergegeben werden"; 49 | "OK" = "OK"; 50 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/en.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "Cancel"; 3 | "Done" = "Done"; 4 | 5 | /* Default title */ 6 | "Photos" = "Photos"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "%@ Photo Selected"; 10 | "%@ Photos Selected" = "%@ Photos Selected"; 11 | "%@ Video Selected" = "%@ Video Selected"; 12 | "%@ Videos Selected" = "%@ Videos Selected"; 13 | "%@ Items Selected" = "%@ Items Selected"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "%@ Photos"; 17 | "%@ Videos" = "%@ Videos"; 18 | "%@ Photos, %@ Videos" = "%1$@ Photos, %2$@ Videos"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%1$@ of %2$@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "This app does not have access to your photos or videos."; 25 | "You can enable access in Privacy Settings." = "You can enable access in Privacy Settings."; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "No Photos or Videos"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes."; 32 | "You can sync photos and videos onto your %@ using iTunes." = "You can sync photos and videos onto your %@ using iTunes."; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "Play"; 36 | "Select" = "Select"; 37 | "Deselect" = "Deselect"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "hours"; 41 | "hour" = "hour"; 42 | "minutes" = "minutes"; 43 | "minute" = "minute"; 44 | "seconds" = "seconds"; 45 | "second" = "second"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "Cannot Play Stream Video"; 49 | "OK" = "OK"; -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/es-MX.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "Cancela"; 3 | "Done" = "OK"; 4 | 5 | /* Default title */ 6 | "Photos" = "Fotos"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "%@ Foto seleccionada"; 10 | "%@ Photos Selected" = "%@ Fotos seleccionadas"; 11 | "%@ Video Selected" = "%@ Video seleccionado"; 12 | "%@ Videos Selected" = "%@ Videos seleccionados"; 13 | "%@ Items Selected" = "%@ Objetos seleccionados"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "%@ Fotos"; 17 | "%@ Videos" = "%@ Videos"; 18 | "%@ Photos, %@ Videos" = "%@ Fotos, %@ Videos"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%@ de %@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "La aplicación no tiene acceso a tus fotos o videos."; 25 | "You can enable access in Privacy Settings." = "Puedes acceder en Ajustes/Privacidad."; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "Ni fotos ni videos"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Puedes tomar fotos y videos utilizando la cámara, o sincronizarlas con tu %@ con iTunes."; 32 | "You can sync photos and videos onto your %@ using iTunes." = "Puedes sincronizar las fotos y videos en tu %@ con iTunes"; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "Reproducir"; 36 | "Select" = "Select"; 37 | "Deselect" = "Deselect"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "horas"; 41 | "hour" = "hora"; 42 | "minutes" = "minutos"; 43 | "minute" = "minuto"; 44 | "seconds" = "segundos"; 45 | "second" = "segundo"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "Cannot Play Stream Video"; 49 | "OK" = "OK"; -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/es.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "Cancelar"; 3 | "Done" = "Hecho"; 4 | 5 | /* Default title */ 6 | "Photos" = "Fotos"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "%@ foto seleccionada"; 10 | "%@ Photos Selected" = "%@ fotos seleccionadas"; 11 | "%@ Video Selected" = "%@ vídeo seleccionado"; 12 | "%@ Videos Selected" = "%@ vídeos seleccionados"; 13 | "%@ Items Selected" = "%@ objetos seleccionados"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "%@ fotos"; 17 | "%@ Videos" = "%@ vídeos"; 18 | "%@ Photos, %@ Videos" = "%1$@ fotos, %2$@ vídeos"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%1$@ de %2$@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "Esta aplicación no tiene acceso a tus fotos o vídeos."; 25 | "You can enable access in Privacy Settings." = "Puedes habilitar el acceso en los ajustes de privacidad."; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "No hay fotos ni vídeos"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Puedes tomar fotos y vídeos con la cámara o sincronizar fotos y vídeos en tu %@\na través de iTunes."; 32 | "You can sync photos and videos onto your %@ using iTunes." = "Puedes sincronizar fotos y vídeos en tu %@ a través de iTunes."; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "Reproducir"; 36 | "Select" = "Seleccione"; 37 | "Deselect" = "Deseleccionar"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "horas"; 41 | "hour" = "hora"; 42 | "minutes" = "minutos"; 43 | "minute" = "minuto"; 44 | "seconds" = "segundos"; 45 | "second" = "segundo"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "Cannot Play Stream Video"; 49 | "OK" = "OK"; -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/fi.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "Kumoa"; 3 | "Done" = "Valmis"; 4 | 5 | /* Default title */ 6 | "Photos" = "Kuvat"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "%@ kuva valittu"; 10 | "%@ Photos Selected" = "%@ kuvaa valittu"; 11 | "%@ Video Selected" = "%@ video valittu"; 12 | "%@ Videos Selected" = "%@ videota valittu"; 13 | "%@ Items Selected" = "%@ kohdetta valittu"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "%@ kuvaa"; 17 | "%@ Videos" = "%@ videota"; 18 | "%@ Photos, %@ Videos" = "%1$@ kuvaa, %2$@ videota"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%1$@ / %2$@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "Sovelluksella ei ole pääsyä kuviin tai videoihin."; 25 | "You can enable access in Privacy Settings." = "Voit sallia pääsyn Asetukset-valikossa."; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "Ei kuvia tai videoita"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Voit ottaa kuvia ja videokuvata kameralla tai synkroinoida iTunesin avulla kuvia ja videoita %@en."; 32 | "You can sync photos and videos onto your %@ using iTunes." = "Voit synkroinoida iTunesin avulla kuvia ja videoita %@en."; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "Toista"; 36 | "Select" = "Valitse"; 37 | "Deselect" = "Poista"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "tuntia"; 41 | "hour" = "tunti"; 42 | "minutes" = "minuuttia"; 43 | "minute" = "minuutti"; 44 | "seconds" = "sekuntia"; 45 | "second" = "sekunti"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "Cannot Play Stream Video"; 49 | "OK" = "OK"; -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/fr.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "Annuler"; 3 | "Done" = "Valider"; 4 | 5 | /* Default title */ 6 | "Photos" = "Photos"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "%@ photo selectionée"; 10 | "%@ Photos Selected" = "%@ photos sélectionnées"; 11 | "%@ Video Selected" = "%@ vidéo sélectionnée"; 12 | "%@ Videos Selected" = "%@ vidéos sélectionnées"; 13 | "%@ Items Selected" = "%@ éléments sélectionnés"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "%@ Photos"; 17 | "%@ Videos" = "%@ Vidéos"; 18 | "%@ Photos, %@ Videos" = "%1$@ Photos, %2$@ Vidéos"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%1$@ sur %2$@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "Cette application n'a pas accès à vos photos et vos vidéos."; 25 | "You can enable access in Privacy Settings." = "Vous pouvez autoriser l'accès dans l'application Réglages > Confidentialité."; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "Pas de Photos ou Vidéos"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Vous pouvez prendre des photos et des vidéos en utilisant l'appareil ou synchroniser vos photos et vidéos sur %@\n avec iTunes."; 32 | "You can sync photos and videos onto your %@ using iTunes." = "Vous pouvez synchroniser vos photos et vidéos sur %@ avec iTunes."; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "Lire"; 36 | "Select" = "Sélectionner"; 37 | "Deselect" = "Désélectionner"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "heures"; 41 | "hour" = "heure"; 42 | "minutes" = "minutes"; 43 | "minute" = "minute"; 44 | "seconds" = "secondes"; 45 | "second" = "seconde"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "Impossible de lire le flux vidéo"; 49 | "OK" = "OK"; 50 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/he.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "ביטול"; 3 | "Done" = "סיום"; 4 | 5 | /* Default title */ 6 | "Photos" = "תמונות"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "נבחרה תמונה %@"; 10 | "%@ Photos Selected" = "נבחרו %@ תמונות"; 11 | "%@ Video Selected" = "נבחר וידאו %@"; 12 | "%@ Videos Selected" = "נבחרו %@ סרטוני וידאו"; 13 | "%@ Items Selected" = "נבחרו %@ פריטים"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "%@ תמונות"; 17 | "%@ Videos" = "%@ סרטוני וידאו"; 18 | "%@ Photos, %@ Videos" = "%1$@ תמונות, %2$@ סרטוני וידאו"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%1$@ מ-%2$@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "לאפליקציה הזו אין גישה לתמונות ולסרטוני הוידאו שלך."; 25 | "You can enable access in Privacy Settings." = "באפשרותך לאפשר גישה בהגדרות הפרטיות."; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "אין תמונות או סרטוני וידאו"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "באפשרותך לצלם תמונות ולהקליט וידאו בעזרת המצלמה או לסנכרן תמונות וסרטוני וידאו עם %@\nבאמצעות ב-iTunes."; 32 | "You can sync photos and videos onto your %@ using iTunes." = "באפשרותך לסנכרן תמונות וסרטוני וידאו עם %@ באמצעות iTunes."; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "הפעלה"; 36 | "Select" = "בחר"; 37 | "Deselect" = "בטלו את הבחירה"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "שעות"; 41 | "hour" = "שעה"; 42 | "minutes" = "דקות"; 43 | "minute" = "דקה"; 44 | "seconds" = "שניות"; 45 | "second" = "שנייה"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "Cannot Play Stream Video"; 49 | "OK" = "OK"; -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/hi-IN.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "रद्द करें"; 3 | "Done" = "पूर्ण हुआ"; 4 | 5 | /* Default title */ 6 | "Photos" = "चित्र"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "%@ चित्र चयनित"; 10 | "%@ Photos Selected" = "%@ चित्र चयनित"; 11 | "%@ Video Selected" = "%@ वीडियो चयनित"; 12 | "%@ Videos Selected" = "%@ वीडियो चयनित"; 13 | "%@ Items Selected" = "%@ आइटम चयनित"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "%@ चित्र"; 17 | "%@ Videos" = "%@ वीडियो"; 18 | "%@ Photos, %@ Videos" = "%1$@ चित्र, %2$@ वीडियो"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%2$@ में से %1$@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "यह ऐप आपके चित्रों या वीडियो तक नहीं पहुंच सकता।"; 25 | "You can enable access in Privacy Settings." = "आप निजता सेटिंग्स में पहुंच सक्षम कर सकते हैं।"; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "कोई चित्र या वीडियो नहीं"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "आप कैमरा का उपयोग करके चित्र या वीडियो ले सकते हैं, अथवा iTunes का उपयोग करके चित्र या वीडियो अपने %@ पर सिंक\nकर सकते हैं।"; 32 | "You can sync photos and videos onto your %@ using iTunes." = "आप iTunes का उपयोग करके अपने %@ पर चित्र और वीडियो सिंक कर सकते हैं।"; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "चलाएं"; 36 | "Select" = "चुनना"; 37 | "Deselect" = "चयन रद्द करें"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "घंटे"; 41 | "hour" = "घंटा"; 42 | "minutes" = "मिनट"; 43 | "minute" = "मिनट"; 44 | "seconds" = "सेकंड"; 45 | "second" = "सेकंड"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "Cannot Play Stream Video"; 49 | "OK" = "OK"; -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/hu.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "Mégsem"; 3 | "Done" = "Kész"; 4 | 5 | /* Default title */ 6 | "Photos" = "Fotók"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "%@ fotó kiválasztva"; 10 | "%@ Photos Selected" = "%@ fotó kiválasztva"; 11 | "%@ Video Selected" = "%@ videó kiválasztva"; 12 | "%@ Videos Selected" = "%@ videó kiválasztva"; 13 | "%@ Items Selected" = "%@ elem kiválasztva"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "%@ Fotó"; 17 | "%@ Videos" = "%@ Videó"; 18 | "%@ Photos, %@ Videos" = "%1$@ Fotó, %2$@ Videó"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%1$@ / %2$@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "Ez az alkalmazás nem fér hozzá a fotóidhoz vagy a videóidhoz."; 25 | "You can enable access in Privacy Settings." = "Engedélyezheted a hozzáférést az Adatvédelmi beállításokban."; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "Nincsenek fotók vagy videók"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Képeket és videókat készíthetsz a készülék kamerájával, vagy szinkronizáld a fotóidat és a videóidat %@\n-ra iTunes-szal."; 32 | "You can sync photos and videos onto your %@ using iTunes." = "Szinkronizálhatod a fotóidat és a videóidat a %@-ra iTunes-szal."; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "Lejátszás"; 36 | 37 | /* Video duration spell out */ 38 | "hours" = "óra"; 39 | "hour" = "óra"; 40 | "minutes" = "perc"; 41 | "minute" = "perc"; 42 | "seconds" = "másodperc"; 43 | "second" = "másodperc"; 44 | 45 | /* Error message of playing stream video */ 46 | "Cannot Play Stream Video" = "Cannot Play Stream Video"; 47 | "OK" = "OK"; 48 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/id.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "Batal"; 3 | "Done" = "Selesai"; 4 | 5 | /* Default title */ 6 | "Photos" = "Foto"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "%@ Foto Terpilih"; 10 | "%@ Photos Selected" = "%@ Foto Terpilih"; 11 | "%@ Video Selected" = "%@ Video Terpilih"; 12 | "%@ Videos Selected" = "%@ Video Terpilih"; 13 | "%@ Items Selected" = "%@ Item Terpilih"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "%@ Foto"; 17 | "%@ Videos" = "%@ Video"; 18 | "%@ Photos, %@ Videos" = "%1$@ Foto, %2$@ Video"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%1$@ dari %2$@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "Aplikasi ini tidak memiliki akses ke foto atau videomu."; 25 | "You can enable access in Privacy Settings." = "Kamu bisa mengaktifkan akses di Setelan Privasi."; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "Tidak ada Foto atau Video"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Kamu bisa mengambil foto dan video menggunakan kamera, atau menyinkronkan foto dan video ke %@\nmenggunakan iTunes."; 32 | "You can sync photos and videos onto your %@ using iTunes." = "Kamu bisa menyinkronkan foto dan video ke %@ menggunakan iTunes."; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "Putar"; 36 | "Select" = "Memilih"; 37 | "Deselect" = "Hapus"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "jam"; 41 | "hour" = "jam"; 42 | "minutes" = "menit"; 43 | "minute" = "menit"; 44 | "seconds" = "detik"; 45 | "second" = "detik"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "Cannot Play Stream Video"; 49 | "OK" = "OK"; -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/it.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "Annulla"; 3 | "Done" = "Fatto"; 4 | 5 | /* Default title */ 6 | "Photos" = "Foto"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "%@ foto selezionata"; 10 | "%@ Photos Selected" = "%@ foto selezionate"; 11 | "%@ Video Selected" = "%@ video selezionato"; 12 | "%@ Videos Selected" = "%@ video selezionati"; 13 | "%@ Items Selected" = "%@ oggetto selezionato"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "%@ foto"; 17 | "%@ Videos" = "%@ video"; 18 | "%@ Photos, %@ Videos" = "%1$@ foto, %2$@ video"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%1$@ di %2$@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "Questa app non ha accesso alle tue foto o ai tuoi video."; 25 | "You can enable access in Privacy Settings." = "Puoi attivare l'accesso nelle Impostazioni sulla privacy."; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "Nessuna foto o video"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Puoi scattare foto e registrare video con la fotocamera oppure sincronizzandoli sul tuo %@\ncon iTunes."; 32 | "You can sync photos and videos onto your %@ using iTunes." = "Puoi sincronizzare foto e video sul tuo %@ con iTunes."; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "Riproduci"; 36 | "Select" = "Selezionare"; 37 | "Deselect" = "Deseleziona"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "ore"; 41 | "hour" = "ora"; 42 | "minutes" = "minuti"; 43 | "minute" = "minuto"; 44 | "seconds" = "secondi"; 45 | "second" = "secondo"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "Cannot Play Stream Video"; 49 | "OK" = "OK"; -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/ja.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "キャンセル"; 3 | "Done" = "完了"; 4 | 5 | /* Default title */ 6 | "Photos" = "写真"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "%@ 枚の写真が選択されました"; 10 | "%@ Photos Selected" = "%@ 枚の写真が選択されました"; 11 | "%@ Video Selected" = "%@ 件の動画が選択されました"; 12 | "%@ Videos Selected" = "%@ 件の動画が選択されました"; 13 | "%@ Items Selected" = "%@ 個のアイテムが選択されました"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "%@ 枚の写真"; 17 | "%@ Videos" = "%@ 件の動画"; 18 | "%@ Photos, %@ Videos" = "%1$@ 枚の写真、%2$@ 件の動画"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%1$@ / %2$@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "このアプリはあなたの写真と動画へアクセスする許可を得ていません。"; 25 | "You can enable access in Privacy Settings." = "「プライバシー設定」からアクセスを許可できます。"; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "写真または動画がありません"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "カメラを使用して写真または動画を撮影するか、ご利用の%@へ写真と動画を同期することができます。\n同期はiTunes を使用して行えます。"; 32 | "You can sync photos and videos onto your %@ using iTunes." = "iTunes を使用して、ご利用の%@へ写真と動画を同期することができます。"; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "再生"; 36 | "Select" = "選択"; 37 | "Deselect" = "選択を解除"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "時間"; 41 | "hour" = "時間"; 42 | "minutes" = "分"; 43 | "minute" = "分"; 44 | "seconds" = "秒"; 45 | "second" = "秒"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "ストリーム動画が再生できません"; 49 | "OK" = "OK"; -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/ko.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "취소"; 3 | "Done" = "완료"; 4 | 5 | /* Default title */ 6 | "Photos" = "사진"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "사진 %@개 선택됨"; 10 | "%@ Photos Selected" = "사진 %@개 선택됨"; 11 | "%@ Video Selected" = "동영상 %@개 선택됨"; 12 | "%@ Videos Selected" = "동영상 %@개 선택됨"; 13 | "%@ Items Selected" = "%@개의 항목 선택됨"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "사진 %@개"; 17 | "%@ Videos" = "동영상 %@개"; 18 | "%@ Photos, %@ Videos" = "사진 %1$@개, 동영상 %2$@ 개"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%1$@/%2$@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "이 앱은 귀하의 사진이나 동영상에 접근 권한이 없습니다."; 25 | "You can enable access in Privacy Settings." = "개인정보 설정에서 접근을 활성화할 수 있습니다."; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "사진이나 동영상 없음"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "카메라를 사용해서 사진 및 동영상을 가져오거나 iTunes를 사용하여 %@에서 사진 및 동영상을 동기화할 수\n있습니다."; 32 | "You can sync photos and videos onto your %@ using iTunes." = "iTunes를 사용하여 %@에서 사진 및 동영상을 동기화할 수 있습니다."; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "플레이"; 36 | "Select" = "선택"; 37 | "Deselect" = "선택 해제"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "시간"; 41 | "hour" = "시간"; 42 | "minutes" = "분"; 43 | "minute" = "분"; 44 | "seconds" = "초"; 45 | "second" = "초"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "Cannot Play Stream Video"; 49 | "OK" = "OK"; -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/nl-NL.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "Annuleren"; 3 | "Done" = "Gereed"; 4 | 5 | /* Default title */ 6 | "Photos" = "Foto's"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "%@ foto geselecteerd"; 10 | "%@ Photos Selected" = "%@ foto's geselecteerd"; 11 | "%@ Video Selected" = "%@ video geselecteerd"; 12 | "%@ Videos Selected" = "%@ video's geselecteerd"; 13 | "%@ Items Selected" = "%@ items geselecteerd"; 14 | 15 | /* Album's footer */ 16 | "%@ Photos" = "%@ Foto's"; 17 | "%@ Videos" = "%@ Video's"; 18 | "%@ Photos, %@ Videos" = "%1$@ Foto's, %2$@ Videos"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%1$@ op %2$@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "Deze App heeft geen toegang tot je foto's en video's."; 25 | "You can enable access in Privacy Settings." = "Je kan de applicatie toegang verlenen via Instellingen > Privacy."; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "Geen foto's of video's"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Je kunt foto's of video's nemen met je camera, of door je foto's en video's te synchroniseren met je %@n in iTunes."; 32 | "You can sync photos and videos onto your %@ using iTunes." = "Je kunt foto's en video's synchroniseren met je %@ in iTunes"; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "Lezen"; 36 | "Select" = "Select"; 37 | "Deselect" = "Deselecteren"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "uren"; 41 | "hour" = "uur"; 42 | "minutes" = "minuten"; 43 | "minute" = "minuut"; 44 | "seconds" = "seconden"; 45 | "second" = "seconde"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "Kan video stream niet afspelen"; 49 | "OK" = "OK"; 50 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/nl.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "Annuleren"; 3 | "Done" = "Gereed"; 4 | 5 | /* Default title */ 6 | "Photos" = "Foto's"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "%@ foto geselecteerd"; 10 | "%@ Photos Selected" = "%@ foto's geselecteerd"; 11 | "%@ Video Selected" = "%@ video geselecteerd"; 12 | "%@ Videos Selected" = "%@ video's geselecteerd"; 13 | "%@ Items Selected" = "%@ items geselecteerd"; 14 | 15 | /* Album's footer */ 16 | "%@ Photos" = "%@ Foto's"; 17 | "%@ Videos" = "%@ Video's"; 18 | "%@ Photos, %@ Videos" = "%1$@ Foto's, %2$@ Videos"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%1$@ op %2$@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "Deze App heeft geen toegang tot je foto's en video's."; 25 | "You can enable access in Privacy Settings." = "Je kan de applicatie toegang verlenen via Instellingen > Privacy."; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "Geen foto's of video's"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Je kunt foto's of video's nemen met je camera, of door je foto's en video's te synchroniseren met je %@n in iTunes."; 32 | "You can sync photos and videos onto your %@ using iTunes." = "Je kunt foto's en video's synchroniseren met je %@ in iTunes"; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "Lezen"; 36 | "Select" = "Select"; 37 | "Deselect" = "Deselecteren"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "uren"; 41 | "hour" = "uur"; 42 | "minutes" = "minuten"; 43 | "minute" = "minuut"; 44 | "seconds" = "seconden"; 45 | "second" = "seconde"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "Kan video stream niet afspelen"; 49 | "OK" = "OK"; 50 | -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/pt-PT.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "Cancelar"; 3 | "Done" = "Fechar"; 4 | 5 | /* Default title */ 6 | "Photos" = "Fotos"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "%@ Foto selecionada"; 10 | "%@ Photos Selected" = "%@ Fotos selecionadas"; 11 | "%@ Video Selected" = "%@ Video selecionado"; 12 | "%@ Videos Selected" = "%@ Videos selecionados"; 13 | "%@ Items Selected" = "%@ Items selecionados"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "%@ Fotos"; 17 | "%@ Videos" = "%@ Vídeos"; 18 | "%@ Photos, %@ Videos" = "%@ Fotos, %@ Vídeos"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%@ de %@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "Esta app não tem acesso às suas fotos ou vídeos."; 25 | "You can enable access in Privacy Settings." = "Pode dar acesso nas configurações de privacidade."; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "Sem fotos ou vídeos"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Você pode tirar fotos e vídeos com a sua câmera, ou sincronizar fotos e vídeos para o seu %@ usando o iTunes."; 32 | "You can sync photos and videos onto your %@ using iTunes." = "Pode sincronizar fotos e vídeos para o seu %@ usando o iTunes"; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "Reproduzir"; 36 | "Select" = "Selecionar"; 37 | "Deselect" = "Desmarque"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "horas"; 41 | "hour" = "hora"; 42 | "minutes" = "minutos"; 43 | "minute" = "minuto"; 44 | "seconds" = "segundos"; 45 | "second" = "segundo"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "Cannot Play Stream Video"; 49 | "OK" = "OK"; -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/pt.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "Cancelar"; 3 | "Done" = "Concluir"; 4 | 5 | /* Default title */ 6 | "Photos" = "Fotos"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "%@ Foto selecionada"; 10 | "%@ Photos Selected" = "%@ Fotos selecionadas"; 11 | "%@ Video Selected" = "%@ Video selecionado"; 12 | "%@ Videos Selected" = "%@ Videos selecionados"; 13 | "%@ Items Selected" = "%@ Items selecionados"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "%@ Fotos"; 17 | "%@ Videos" = "%@ Vídeos"; 18 | "%@ Photos, %@ Videos" = "%@ Fotos, %@ Vídeos"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%@ de %@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "Este aplicativo não possui acesso a suas fotos e vídeos."; 25 | "You can enable access in Privacy Settings." = "Você pode autorizar este acesso em Ajustes > Privacidade > Fotos."; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "Nenhuma Foto ou Vídeo"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Você pode tirar fotos e vídeos com a sua câmera, ou sincronizar fotos e vídeos para o seu %@ usando o iTunes."; 32 | "You can sync photos and videos onto your %@ using iTunes." = "Pode sincronizar fotos e vídeos para o seu %@ usando o iTunes."; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "Reproduzir"; 36 | "Select" = "Selecionar"; 37 | "Deselect" = "Desmarque"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "horas"; 41 | "hour" = "hora"; 42 | "minutes" = "minutos"; 43 | "minute" = "minuto"; 44 | "seconds" = "segundos"; 45 | "second" = "segundo"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "Cannot Play Stream Video"; 49 | "OK" = "OK"; -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/ru.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "Отмена"; 3 | "Done" = "Готово"; 4 | 5 | /* Default title */ 6 | "Photos" = "Фотографии"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "выбрана %@ фотография"; 10 | "%@ Photos Selected" = "выбрано %@ фотографий"; 11 | "%@ Video Selected" = "выбрано %@ видео"; 12 | "%@ Videos Selected" = "выбрано %@ видео"; 13 | "%@ Items Selected" = "выбрано %@ элементов"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "%@ фотографий"; 17 | "%@ Videos" = "%@ видео"; 18 | "%@ Photos, %@ Videos" = "%1$@ фотографий, %2$@ видео"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%1$@ из %2$@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "У этого приложения нет доступа к вашим фотографиям и видео."; 25 | "You can enable access in Privacy Settings." = "Вы можете включить доступ приложению в Настройках конфиденциальности."; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "Нет фотографий и видео"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Вы можете сделать фотографии или снять видео при помощи камеры либо синхронизировать фотографии и видео со своим %@\nчерез iTunes."; 32 | "You can sync photos and videos onto your %@ using iTunes." = "Вы можете синхронизировать фотографии и видео со своим %@ при помощи iTunes."; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "Воспр."; 36 | "Select" = "Выбрать"; 37 | "Deselect" = "Снимите"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "часов"; 41 | "hour" = "час"; 42 | "minutes" = "минут"; 43 | "minute" = "минута"; 44 | "seconds" = "секунд"; 45 | "second" = "секунда"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "Cannot Play Stream Video"; 49 | "OK" = "OK"; -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/sv.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "Avbryt"; 3 | "Done" = "Klar"; 4 | 5 | /* Default title */ 6 | "Photos" = "Foton"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "%@ foto valt"; 10 | "%@ Photos Selected" = "%@ foton valda"; 11 | "%@ Video Selected" = "%@ video vald"; 12 | "%@ Videos Selected" = "%@ videor valda"; 13 | "%@ Items Selected" = "%@ artiklar valda"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "%@ foton"; 17 | "%@ Videos" = "%@ videor"; 18 | "%@ Photos, %@ Videos" = "%1$@ foton, %2$@ videor"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%1$@ av %2$@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "Denna app har inte tillgång till dina foton eller videor."; 25 | "You can enable access in Privacy Settings." = "Du kan aktivera tillgång i Integritetsinställningarna."; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "Inga foton eller videor"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Du kan ta foton och videor med kameran, eller synka foton och videor in i din %@ med hjälp av iTunes."; 32 | "You can sync photos and videos onto your %@ using iTunes." = "Du kan synka foton och videor in i din %@ med hjälp av iTunes."; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "Spela upp"; 36 | "Select" = "Välj"; 37 | "Deselect" = "Nollställ"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "timmar"; 41 | "hour" = "timme"; 42 | "minutes" = "minuter"; 43 | "minute" = "minut"; 44 | "seconds" = "sekunder"; 45 | "second" = "sekund"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "Kan inte spela upp video"; 49 | "OK" = "OK"; -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/tr.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "Vazgeç"; 3 | "Done" = "Bitti"; 4 | 5 | /* Default title */ 6 | "Photos" = "Fotoğraflar"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "%@ Fotoğraf seçildi"; 10 | "%@ Photos Selected" = "%@ Fotoğraf seçildi"; 11 | "%@ Video Selected" = "%@ Vidyo seçildi"; 12 | "%@ Videos Selected" = "%@ Vidyo seçildi"; 13 | "%@ Items Selected" = "%@ Öğe seçildi"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "%@ Fotoğraf"; 17 | "%@ Videos" = "%@ Vidyo"; 18 | "%@ Photos, %@ Videos" = "%1$@ Fotoğraf, %2$@ Vidyo"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%2$@ içerisinden %1$@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "Bu uygulamanın fotoğraflarınıza ya da vidyolarınıza erişim hakkı bulunmuyor."; 25 | "You can enable access in Privacy Settings." = "Gizlilik Ayarlarından uygulamaya izin verebilirsiniz."; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "Hiç fotoğraf ya da vidyo bulunamadı"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "Kamerayı kullanarak fotoğraf ve vidyo çekebilirsiniz ya da fotoğraf ve vidyolarınızı %@\n hesabınıza iTunes kullanarak eşleyebilirsiniz."; 32 | "You can sync photos and videos onto your %@ using iTunes." = "Fotoğraf ve vidyoları iTunes kullanarak %@ hesabınıza eşleyebilirsiniz."; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "Oynat"; 36 | "Select" = "Seç"; 37 | "Deselect" = "Seçimi bırak"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "saat"; 41 | "hour" = "saat"; 42 | "minutes" = "dakika"; 43 | "minute" = "dakika"; 44 | "seconds" = "saniye"; 45 | "second" = "saniye"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "Vidyo oynatılamıyor"; 49 | "OK" = "Tamam"; -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/zh-Hans.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "取消"; 3 | "Done" = "完成"; 4 | 5 | /* Default title */ 6 | "Photos" = "照片"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "已选择%@张照片"; 10 | "%@ Photos Selected" = "已选择%@张照片"; 11 | "%@ Video Selected" = "已选择%@个视频"; 12 | "%@ Videos Selected" = "已选择%@个视频"; 13 | "%@ Items Selected" = "已选择%@项"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "%@张照片"; 17 | "%@ Videos" = "%@个视频"; 18 | "%@ Photos, %@ Videos" = "%1$@张照片,%2$@个视频"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%1$@,共%2$@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "此应用程序对您的照片或视频没有访问权。"; 25 | "You can enable access in Privacy Settings." = "您可以在隐私设置中启用访问权。"; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "无照片或视频"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "您可以使用摄像头拍摄照片和视频,或使用iTunes将照片和视频同步到您的%@上。\n"; 32 | "You can sync photos and videos onto your %@ using iTunes." = "您可以使用iTunes将照片和视频同步到您的%@上。"; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "播放"; 36 | "Select" = "选择"; 37 | "Deselect" = "取消选择"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "小时"; 41 | "hour" = "小时"; 42 | "minutes" = "分钟"; 43 | "minute" = "分钟"; 44 | "seconds" = "秒"; 45 | "second" = "秒"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "无法播放影片"; 49 | "OK" = "好"; -------------------------------------------------------------------------------- /CTAssetsPickerController/Resources/zh-Hant.lproj/CTAssetsPicker.strings: -------------------------------------------------------------------------------- 1 | /* Navigation bar buttons */ 2 | "Cancel" = "取消"; 3 | "Done" = "完成"; 4 | 5 | /* Default title */ 6 | "Photos" = "照片"; 7 | 8 | /* No. of selected */ 9 | "%@ Photo Selected" = "已選取 %@ 張照片"; 10 | "%@ Photos Selected" = "已選取 %@ 張照片"; 11 | "%@ Video Selected" = "已選取 %@ 部影片"; 12 | "%@ Videos Selected" = "已選取 %@ 部影片"; 13 | "%@ Items Selected" = "已選取 %@ 個項目"; 14 | 15 | /* Grid view footer */ 16 | "%@ Photos" = "%@ 張照片"; 17 | "%@ Videos" = "%@ 部影片"; 18 | "%@ Photos, %@ Videos" = "%1$@ 張照片、%2$@ 部影片"; 19 | 20 | /* Assets index */ 21 | "%@ of %@" = "%1$@/%2$@"; 22 | 23 | /* Messages if privacy is not granted */ 24 | "This app does not have access to your photos or videos." = "此 App 無法取用您的照片或影片。"; 25 | "You can enable access in Privacy Settings." = "您可以在「隱私權設定」中啟用存取。"; 26 | 27 | /* Messages if no assets */ 28 | "No Photos or Videos" = "沒有照片或影片"; 29 | 30 | /* The parameter will be replaced by the device model name */ 31 | "You can take photos and videos using the camera, or sync photos and videos onto your %@\nusing iTunes." = "您可以用相機拍照錄影或用 iTunes\n將照片和影片同步到 %@。"; 32 | "You can sync photos and videos onto your %@ using iTunes." = "您可以使用 iTunes 將照片和影片\n同步到 %@。"; 33 | 34 | /* Accessibility labels */ 35 | "Play" = "播放"; 36 | "Select" = "選擇"; 37 | "Deselect" = "取消選擇"; 38 | 39 | /* Video duration spell out */ 40 | "hours" = "小時"; 41 | "hour" = "小時"; 42 | "minutes" = "分"; 43 | "minute" = "分"; 44 | "seconds" = "秒"; 45 | "second" = "秒"; 46 | 47 | /* Error message of playing stream video */ 48 | "Cannot Play Stream Video" = "無法播放影片"; 49 | "OK" = "好"; -------------------------------------------------------------------------------- /CTAssetsPickerDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo.xcworkspace/xcshareddata/CTAssetsPickerDemo.xccheckout: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDESourceControlProjectFavoriteDictionaryKey 6 | 7 | IDESourceControlProjectIdentifier 8 | 7E9878EA-874F-4A41-86DF-B31356AD4639 9 | IDESourceControlProjectName 10 | CTAssetsPickerDemo 11 | IDESourceControlProjectOriginsDictionary 12 | 13 | E762C42BC8C71A1AD1A00E2FC726C42A9BF54268 14 | https://github.com/chiunam/CTAssetsPickerController.git 15 | 16 | IDESourceControlProjectPath 17 | CTAssetsPickerDemo.xcworkspace 18 | IDESourceControlProjectRelativeInstallPathDictionary 19 | 20 | E762C42BC8C71A1AD1A00E2FC726C42A9BF54268 21 | .. 22 | 23 | IDESourceControlProjectURL 24 | https://github.com/chiunam/CTAssetsPickerController.git 25 | IDESourceControlProjectVersion 26 | 111 27 | IDESourceControlProjectWCCIdentifier 28 | E762C42BC8C71A1AD1A00E2FC726C42A9BF54268 29 | IDESourceControlProjectWCConfigurations 30 | 31 | 32 | IDESourceControlRepositoryExtensionIdentifierKey 33 | public.vcs.git 34 | IDESourceControlWCCIdentifierKey 35 | E762C42BC8C71A1AD1A00E2FC726C42A9BF54268 36 | IDESourceControlWCCName 37 | CTAssetsPickerController 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/CTAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface CTAppDelegate : UIResponder 30 | 31 | @property (strong, nonatomic) UIWindow *window; 32 | 33 | 34 | @end 35 | 36 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/CTMasterViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | 29 | @interface CTMasterViewController : UITableViewController 30 | 31 | @end 32 | 33 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/Examples/CTApperanceViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import "CTBasicViewController.h" 28 | 29 | @interface CTApperanceViewController : CTBasicViewController 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/Examples/CTBasicViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import 28 | #import 29 | #import 30 | 31 | @interface CTBasicViewController : UITableViewController 32 | 33 | 34 | @property (nonatomic, copy) NSArray *assets; 35 | @property (nonatomic, strong) NSDateFormatter *dateFormatter; 36 | @property (nonatomic, strong) PHImageRequestOptions *requestOptions; 37 | 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/Examples/CTDefaultAlbumViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import "CTBasicViewController.h" 28 | 29 | @interface CTDefaultAlbumViewController : CTBasicViewController 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/Examples/CTDefaultAlbumViewController.m: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import "CTDefaultAlbumViewController.h" 28 | 29 | 30 | @implementation CTDefaultAlbumViewController 31 | 32 | - (void)pickAssets:(id)sender 33 | { 34 | [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status){ 35 | dispatch_async(dispatch_get_main_queue(), ^{ 36 | 37 | // init picker 38 | CTAssetsPickerController *picker = [[CTAssetsPickerController alloc] init]; 39 | 40 | // set delegate 41 | picker.delegate = self; 42 | 43 | // set default album (Camera Roll) 44 | picker.defaultAssetCollection = PHAssetCollectionSubtypeSmartAlbumUserLibrary; 45 | 46 | // to present picker as a form sheet in iPad 47 | if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 48 | picker.modalPresentationStyle = UIModalPresentationFormSheet; 49 | 50 | // present picker 51 | [self presentViewController:picker animated:YES completion:nil]; 52 | 53 | }); 54 | }]; 55 | } 56 | 57 | @end 58 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/Examples/CTLastWeekViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import "CTBasicViewController.h" 28 | 29 | @interface CTLastWeekViewController : CTBasicViewController 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/Examples/CTLayoutViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import "CTBasicViewController.h" 28 | 29 | @interface CTLayoutViewController : CTBasicViewController 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/Examples/CTLayoutViewController.m: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import "CTLayoutViewController.h" 28 | 29 | 30 | @implementation CTLayoutViewController 31 | 32 | - (UICollectionViewLayout *)assetsPickerController:(CTAssetsPickerController *)picker collectionViewLayoutForContentSize:(CGSize)contentSize traitCollection:(UITraitCollection *)trait 33 | { 34 | UICollectionViewFlowLayout *layout = [UICollectionViewFlowLayout new]; 35 | layout.itemSize = CGSizeMake(175, 175); 36 | layout.minimumInteritemSpacing = 8; 37 | layout.minimumLineSpacing = 8; 38 | layout.sectionInset = UIEdgeInsetsMake(8, 8, 8, 8); 39 | 40 | layout.footerReferenceSize = CGSizeMake(contentSize.width, 60); 41 | 42 | return (UICollectionViewLayout *)layout; 43 | } 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/Examples/CTMaxSelectionViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import "CTBasicViewController.h" 28 | 29 | @interface CTMaxSelectionViewController : CTBasicViewController 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/Examples/CTPhotosViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import "CTBasicViewController.h" 28 | 29 | @interface CTPhotosViewController : CTBasicViewController 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/Examples/CTPhotosViewController.m: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import "CTPhotosViewController.h" 28 | 29 | 30 | @implementation CTPhotosViewController 31 | 32 | - (void)pickAssets:(id)sender 33 | { 34 | [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status){ 35 | dispatch_async(dispatch_get_main_queue(), ^{ 36 | 37 | // init picker 38 | CTAssetsPickerController *picker = [[CTAssetsPickerController alloc] init]; 39 | 40 | // set delegate 41 | picker.delegate = self; 42 | 43 | // create options for fetching photo only 44 | PHFetchOptions *fetchOptions = [PHFetchOptions new]; 45 | fetchOptions.predicate = [NSPredicate predicateWithFormat:@"mediaType == %d", PHAssetMediaTypeImage]; 46 | 47 | // assign options 48 | picker.assetsFetchOptions = fetchOptions; 49 | 50 | // to present picker as a form sheet in iPad 51 | if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 52 | picker.modalPresentationStyle = UIModalPresentationFormSheet; 53 | 54 | // present picker 55 | [self presentViewController:picker animated:YES completion:nil]; 56 | 57 | }); 58 | }]; 59 | } 60 | 61 | @end 62 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/Examples/CTProgrammaticViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import "CTBasicViewController.h" 28 | 29 | @interface CTProgrammaticViewController : CTBasicViewController 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/Examples/CTSelectedAssetsViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import "CTBasicViewController.h" 28 | 29 | @interface CTSelectedAssetsViewController : CTBasicViewController 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/Examples/CTSelectedAssetsViewController.m: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import "CTSelectedAssetsViewController.h" 28 | 29 | 30 | @implementation CTSelectedAssetsViewController 31 | 32 | - (void)pickAssets:(id)sender 33 | { 34 | [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status){ 35 | dispatch_async(dispatch_get_main_queue(), ^{ 36 | 37 | // init picker 38 | CTAssetsPickerController *picker = [[CTAssetsPickerController alloc] init]; 39 | 40 | // set delegate 41 | picker.delegate = self; 42 | 43 | // set initial selected assets 44 | picker.selectedAssets = [NSMutableArray arrayWithArray:self.assets]; 45 | 46 | // to present picker as a form sheet in iPad 47 | if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 48 | picker.modalPresentationStyle = UIModalPresentationFormSheet; 49 | 50 | // present picker 51 | [self presentViewController:picker animated:YES completion:nil]; 52 | 53 | }); 54 | }]; 55 | } 56 | 57 | @end 58 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/Examples/CTSelectionOrderViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import "CTBasicViewController.h" 28 | 29 | @interface CTSelectionOrderViewController : CTBasicViewController 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/Examples/CTSloMoViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import "CTBasicViewController.h" 28 | 29 | @interface CTSloMoViewController : CTBasicViewController 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/Examples/CTSortedAssetsViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import "CTBasicViewController.h" 28 | 29 | @interface CTSortedAssetsViewController : CTBasicViewController 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/Examples/CTUITweaksViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import "CTBasicViewController.h" 28 | 29 | @interface CTUITweaksViewController : CTBasicViewController 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/Examples/CTiCloudAlbumsViewController.h: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | MIT License (MIT) 4 | 5 | Copyright (c) 2015 Clement CN Tsang 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in 15 | all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 23 | THE SOFTWARE. 24 | 25 | */ 26 | 27 | #import "CTBasicViewController.h" 28 | 29 | @interface CTiCloudAlbumsViewController : CTBasicViewController 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "ipad", 35 | "size" : "29x29", 36 | "scale" : "1x" 37 | }, 38 | { 39 | "idiom" : "ipad", 40 | "size" : "29x29", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "40x40", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "40x40", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "76x76", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "76x76", 61 | "scale" : "2x" 62 | } 63 | ], 64 | "info" : { 65 | "version" : 1, 66 | "author" : "xcode" 67 | } 68 | } -------------------------------------------------------------------------------- /CTAssetsPickerDemo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | t.clement.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UIStatusBarTintParameters 32 | 33 | UINavigationBar 34 | 35 | Style 36 | UIBarStyleDefault 37 | Translucent 38 | 39 | 40 | 41 | UISupportedInterfaceOrientations 42 | 43 | UIInterfaceOrientationPortrait 44 | UIInterfaceOrientationLandscapeLeft 45 | UIInterfaceOrientationLandscapeRight 46 | 47 | UISupportedInterfaceOrientations~ipad 48 | 49 | UIInterfaceOrientationPortrait 50 | UIInterfaceOrientationPortraitUpsideDown 51 | UIInterfaceOrientationLandscapeLeft 52 | UIInterfaceOrientationLandscapeRight 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/ar.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/da.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/de.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/en.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/es-MX.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/es.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/fi.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/fr.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/he.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/hi-IN.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/id.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/it.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/ja.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/ko.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/main.m: -------------------------------------------------------------------------------- 1 | /* 2 | MIT License (MIT) 3 | 4 | Copyright (c) 2015 Clement CN Tsang 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | 24 | */ 25 | 26 | #import 27 | #import "CTAppDelegate.h" 28 | 29 | int main(int argc, char * argv[]) { 30 | @autoreleasepool { 31 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([CTAppDelegate class])); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/nl-NL.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/nl.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/pt-PT.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/pt.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/ru.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/sv.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/tr.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/zh-Hans.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /CTAssetsPickerDemo/zh-Hant.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "UILabel"; text = "CTAssetsPickerDemo"; ObjectID = "kId-c2-rCX"; */ 3 | "kId-c2-rCX.text" = "CTAssetsPickerDemo"; 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License (MIT) 2 | 3 | Copyright (c) 2013 Clement CN Tsang 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '8.0' 2 | 3 | source 'https://github.com/CocoaPods/Specs.git' 4 | 5 | pod 'CTAssetsPickerController', :path => '.' 6 | 7 | use_frameworks! 8 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - CTAssetsPickerController (3.3.1): 3 | - PureLayout (~> 3.0.0) 4 | - PureLayout (3.0.1) 5 | 6 | DEPENDENCIES: 7 | - CTAssetsPickerController (from `.`) 8 | 9 | EXTERNAL SOURCES: 10 | CTAssetsPickerController: 11 | :path: . 12 | 13 | SPEC CHECKSUMS: 14 | CTAssetsPickerController: b1d1d50ab87cf6b8b13531de5f4530482e7e53ed 15 | PureLayout: f35f5384c9c4e4479df041dbe33ad7577b71ddfb 16 | 17 | COCOAPODS: 0.39.0 18 | -------------------------------------------------------------------------------- /Screenshot-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/Screenshot-2.png -------------------------------------------------------------------------------- /Screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/1and2papa/CTAssetsPickerController/2ca7959e4812be21982f9218929164d2a2a04653/Screenshot.png -------------------------------------------------------------------------------- /create_bundle.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | BUNDLE="CTAssetsPickerController/CTAssetsPickerController.bundle" 4 | 5 | rm -rf $BUNDLE 6 | mkdir $BUNDLE 7 | 8 | find "CTAssetsPickerController/Resources" -name "*.png" | xargs -I {} cp {} "$BUNDLE/" 9 | find "CTAssetsPickerController/Resources" -name "*.lproj" | xargs -I {} cp -R {} "$BUNDLE/" 10 | echo "Created $BUNDLE" 11 | --------------------------------------------------------------------------------