From 4536b5a2d9c915176f57bc8beea1c2c4be78c416 Mon Sep 17 00:00:00 2001 From: KazukiTanaka Date: Tue, 2 May 2017 17:17:40 +0900 Subject: [PATCH 01/12] change README --- README.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index ca51821..768bfa3 100644 --- a/README.md +++ b/README.md @@ -11,15 +11,20 @@ NohanaImagePicker enables your app to pick images from multiple album, and the m ## Usage ```swift +import UIKit +import Photos import NohanaImagePicker -class ViewController: UIViewController, NohanaImagePickerControllerDelegate { +class MyViewController: UIViewController { + let picker = NohanaImagePickerController() override func viewDidAppear(animated: Bool) { - super.viewDidAppear(true) - let picker = NohanaImagePickerController() - picker.delegate = self - present(picker, animated: true, completion: nil) + super.viewDidAppear(animated) + self.picker.delegate = self + present(self.picker, animated: true, completion: nil) } +} + +extension MyViewController: NohanaImagePickerControllerDelegate { func nohanaImagePickerDidCancel(_ picker: NohanaImagePickerController) { print("🐷Canceled🙅") @@ -30,7 +35,6 @@ class ViewController: UIViewController, NohanaImagePickerControllerDelegate { print("🐷Completed🙆\n\tpickedAssets = \(pickedAssts)") picker.dismiss(animated: true, completion: nil) } - } ``` @@ -84,6 +88,8 @@ Use [Carthage](https://github.com/Carthage/Carthage). Use [CocoaPods](https://cocoapods.org/). +- Try; ``pod try NohanaImagePicker`` + - Add the followings to your Podfile: ```ruby From c0c34eae5d7dc170ec53e9ea003b7c801952bccc Mon Sep 17 00:00:00 2001 From: KazukiTanaka Date: Tue, 9 May 2017 16:27:35 +0900 Subject: [PATCH 02/12] public var assetBundle --- .../AppIcon.appiconset/Contents.json | 20 +++++++++++ Demo/DemoListViewController.swift | 10 ++++++ .../NohanaImagePicker.xcassets}/Contents.json | 0 .../btn_select_l.imageset/Contents.json | 0 .../btn_select_l.imageset/btn_select_l@2x.png | Bin .../btn_select_l.imageset/btn_select_l@3x.png | Bin .../btn_select_m.imageset/Contents.json | 0 .../btn_select_m.imageset/btn_select_m@2x.png | Bin 0 -> 1957 bytes .../btn_select_m.imageset/btn_select_m@3x.png | Bin 0 -> 3163 bytes .../btn_selected_l.imageset/Contents.json | 0 .../btn_selected_l@2x.png | Bin .../btn_selected_l@3x.png | Bin .../btn_selected_m.imageset/Contents.json | 0 .../btn_selected_m@2x.png | Bin 0 -> 1770 bytes .../btn_selected_m@3x.png | Bin 0 -> 2791 bytes .../Contents.json | 0 .../icon_photosize_alert_s@2x.png | Bin .../icon_photosize_alert_s@3x.png | Bin .../Contents.json | 0 .../icon_photosize_low_s@2x.png | Bin .../icon_photosize_low_s@3x.png | Bin .../en.lproj/NohanaImagePicker.strings | 22 ++++++++++++ .../ja.lproj/NohanaImagePicker.strings | 22 ++++++++++++ NohanaImagePicker.xcodeproj/project.pbxproj | 34 +++++++++++++++--- .../NohanaImagePicker.xcassets/Contents.json | 6 ++++ .../btn_select_l.imageset/Contents.json | 22 ++++++++++++ .../btn_select_l.imageset/btn_select_l@2x.png | Bin 0 -> 1777 bytes .../btn_select_l.imageset/btn_select_l@3x.png | Bin 0 -> 1467 bytes .../btn_select_m.imageset/Contents.json | 22 ++++++++++++ .../btn_select_m.imageset/btn_select_m@2x.png | Bin .../btn_select_m.imageset/btn_select_m@3x.png | Bin .../btn_selected_l.imageset/Contents.json | 22 ++++++++++++ .../btn_selected_l@2x.png | Bin 0 -> 1913 bytes .../btn_selected_l@3x.png | Bin 0 -> 1686 bytes .../btn_selected_m.imageset/Contents.json | 22 ++++++++++++ .../btn_selected_m@2x.png | Bin .../btn_selected_m@3x.png | Bin .../Contents.json | 22 ++++++++++++ .../icon_photosize_alert_s@2x.png | Bin 0 -> 1518 bytes .../icon_photosize_alert_s@3x.png | Bin 0 -> 3878 bytes .../Contents.json | 22 ++++++++++++ .../icon_photosize_low_s@2x.png | Bin 0 -> 2419 bytes .../icon_photosize_low_s@3x.png | Bin 0 -> 2917 bytes .../NohanaImagePickerController.swift | 4 +-- 44 files changed, 244 insertions(+), 6 deletions(-) rename {NohanaImagePicker/Images.xcassets => Demo/Resources/NohanaImagePicker.xcassets}/Contents.json (100%) rename {NohanaImagePicker/Images.xcassets => Demo/Resources/NohanaImagePicker.xcassets}/btn_select_l.imageset/Contents.json (100%) rename {NohanaImagePicker/Images.xcassets => Demo/Resources/NohanaImagePicker.xcassets}/btn_select_l.imageset/btn_select_l@2x.png (100%) rename {NohanaImagePicker/Images.xcassets => Demo/Resources/NohanaImagePicker.xcassets}/btn_select_l.imageset/btn_select_l@3x.png (100%) rename {NohanaImagePicker/Images.xcassets => Demo/Resources/NohanaImagePicker.xcassets}/btn_select_m.imageset/Contents.json (100%) create mode 100644 Demo/Resources/NohanaImagePicker.xcassets/btn_select_m.imageset/btn_select_m@2x.png create mode 100644 Demo/Resources/NohanaImagePicker.xcassets/btn_select_m.imageset/btn_select_m@3x.png rename {NohanaImagePicker/Images.xcassets => Demo/Resources/NohanaImagePicker.xcassets}/btn_selected_l.imageset/Contents.json (100%) rename {NohanaImagePicker/Images.xcassets => Demo/Resources/NohanaImagePicker.xcassets}/btn_selected_l.imageset/btn_selected_l@2x.png (100%) rename {NohanaImagePicker/Images.xcassets => Demo/Resources/NohanaImagePicker.xcassets}/btn_selected_l.imageset/btn_selected_l@3x.png (100%) rename {NohanaImagePicker/Images.xcassets => Demo/Resources/NohanaImagePicker.xcassets}/btn_selected_m.imageset/Contents.json (100%) create mode 100644 Demo/Resources/NohanaImagePicker.xcassets/btn_selected_m.imageset/btn_selected_m@2x.png create mode 100644 Demo/Resources/NohanaImagePicker.xcassets/btn_selected_m.imageset/btn_selected_m@3x.png rename {NohanaImagePicker/Images.xcassets => Demo/Resources/NohanaImagePicker.xcassets}/icon_photosize_alert_s.imageset/Contents.json (100%) rename {NohanaImagePicker/Images.xcassets => Demo/Resources/NohanaImagePicker.xcassets}/icon_photosize_alert_s.imageset/icon_photosize_alert_s@2x.png (100%) rename {NohanaImagePicker/Images.xcassets => Demo/Resources/NohanaImagePicker.xcassets}/icon_photosize_alert_s.imageset/icon_photosize_alert_s@3x.png (100%) rename {NohanaImagePicker/Images.xcassets => Demo/Resources/NohanaImagePicker.xcassets}/icon_photosize_low_s.imageset/Contents.json (100%) rename {NohanaImagePicker/Images.xcassets => Demo/Resources/NohanaImagePicker.xcassets}/icon_photosize_low_s.imageset/icon_photosize_low_s@2x.png (100%) rename {NohanaImagePicker/Images.xcassets => Demo/Resources/NohanaImagePicker.xcassets}/icon_photosize_low_s.imageset/icon_photosize_low_s@3x.png (100%) create mode 100644 Demo/Resources/en.lproj/NohanaImagePicker.strings create mode 100644 Demo/Resources/ja.lproj/NohanaImagePicker.strings create mode 100644 NohanaImagePicker/NohanaImagePicker.xcassets/Contents.json create mode 100644 NohanaImagePicker/NohanaImagePicker.xcassets/btn_select_l.imageset/Contents.json create mode 100644 NohanaImagePicker/NohanaImagePicker.xcassets/btn_select_l.imageset/btn_select_l@2x.png create mode 100644 NohanaImagePicker/NohanaImagePicker.xcassets/btn_select_l.imageset/btn_select_l@3x.png create mode 100644 NohanaImagePicker/NohanaImagePicker.xcassets/btn_select_m.imageset/Contents.json rename NohanaImagePicker/{Images.xcassets => NohanaImagePicker.xcassets}/btn_select_m.imageset/btn_select_m@2x.png (100%) rename NohanaImagePicker/{Images.xcassets => NohanaImagePicker.xcassets}/btn_select_m.imageset/btn_select_m@3x.png (100%) create mode 100644 NohanaImagePicker/NohanaImagePicker.xcassets/btn_selected_l.imageset/Contents.json create mode 100644 NohanaImagePicker/NohanaImagePicker.xcassets/btn_selected_l.imageset/btn_selected_l@2x.png create mode 100644 NohanaImagePicker/NohanaImagePicker.xcassets/btn_selected_l.imageset/btn_selected_l@3x.png create mode 100644 NohanaImagePicker/NohanaImagePicker.xcassets/btn_selected_m.imageset/Contents.json rename NohanaImagePicker/{Images.xcassets => NohanaImagePicker.xcassets}/btn_selected_m.imageset/btn_selected_m@2x.png (100%) rename NohanaImagePicker/{Images.xcassets => NohanaImagePicker.xcassets}/btn_selected_m.imageset/btn_selected_m@3x.png (100%) create mode 100644 NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/Contents.json create mode 100644 NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@2x.png create mode 100644 NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@3x.png create mode 100644 NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_low_s.imageset/Contents.json create mode 100644 NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_low_s.imageset/icon_photosize_low_s@2x.png create mode 100644 NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_low_s.imageset/icon_photosize_low_s@3x.png diff --git a/Demo/Assets.xcassets/AppIcon.appiconset/Contents.json b/Demo/Assets.xcassets/AppIcon.appiconset/Contents.json index a324f8c..9dd60fd 100644 --- a/Demo/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/Demo/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,5 +1,15 @@ { "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, { "idiom" : "iphone", "size" : "29x29", @@ -32,6 +42,16 @@ "filename" : "180.png", "scale" : "3x" }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, { "idiom" : "ipad", "size" : "29x29", diff --git a/Demo/DemoListViewController.swift b/Demo/DemoListViewController.swift index 93bae8b..3af643a 100644 --- a/Demo/DemoListViewController.swift +++ b/Demo/DemoListViewController.swift @@ -29,6 +29,7 @@ class DemoListViewController: UITableViewController, NohanaImagePickerController Cell(title: "Large thumbnail", selector: #selector(DemoListViewController.showLargeThumbnailPicker)), Cell(title: "No toolbar", selector: #selector(DemoListViewController.showNoToolbarPicker)), Cell(title: "Disable to pick assets", selector: #selector(DemoListViewController.showDisableToPickAssetsPicker)), + Cell(title: "Custom UI", selector: #selector(DemoListViewController.showCustomUIPicker)), ] override func viewDidAppear(_ animated: Bool) { @@ -123,6 +124,15 @@ class DemoListViewController: UITableViewController, NohanaImagePickerController present(picker, animated: true, completion: nil) } + @objc + func showCustomUIPicker() { + let picker = NohanaImagePickerController() + picker.delegate = self + picker.assetBundle = Bundle.main + present(picker, animated: true, completion: nil) + } + + // MARK: - NohanaImagePickerControllerDelegate func nohanaImagePickerDidCancel(_ picker: NohanaImagePickerController) { diff --git a/NohanaImagePicker/Images.xcassets/Contents.json b/Demo/Resources/NohanaImagePicker.xcassets/Contents.json similarity index 100% rename from NohanaImagePicker/Images.xcassets/Contents.json rename to Demo/Resources/NohanaImagePicker.xcassets/Contents.json diff --git a/NohanaImagePicker/Images.xcassets/btn_select_l.imageset/Contents.json b/Demo/Resources/NohanaImagePicker.xcassets/btn_select_l.imageset/Contents.json similarity index 100% rename from NohanaImagePicker/Images.xcassets/btn_select_l.imageset/Contents.json rename to Demo/Resources/NohanaImagePicker.xcassets/btn_select_l.imageset/Contents.json diff --git a/NohanaImagePicker/Images.xcassets/btn_select_l.imageset/btn_select_l@2x.png b/Demo/Resources/NohanaImagePicker.xcassets/btn_select_l.imageset/btn_select_l@2x.png similarity index 100% rename from NohanaImagePicker/Images.xcassets/btn_select_l.imageset/btn_select_l@2x.png rename to Demo/Resources/NohanaImagePicker.xcassets/btn_select_l.imageset/btn_select_l@2x.png diff --git a/NohanaImagePicker/Images.xcassets/btn_select_l.imageset/btn_select_l@3x.png b/Demo/Resources/NohanaImagePicker.xcassets/btn_select_l.imageset/btn_select_l@3x.png similarity index 100% rename from NohanaImagePicker/Images.xcassets/btn_select_l.imageset/btn_select_l@3x.png rename to Demo/Resources/NohanaImagePicker.xcassets/btn_select_l.imageset/btn_select_l@3x.png diff --git a/NohanaImagePicker/Images.xcassets/btn_select_m.imageset/Contents.json b/Demo/Resources/NohanaImagePicker.xcassets/btn_select_m.imageset/Contents.json similarity index 100% rename from NohanaImagePicker/Images.xcassets/btn_select_m.imageset/Contents.json rename to Demo/Resources/NohanaImagePicker.xcassets/btn_select_m.imageset/Contents.json diff --git a/Demo/Resources/NohanaImagePicker.xcassets/btn_select_m.imageset/btn_select_m@2x.png b/Demo/Resources/NohanaImagePicker.xcassets/btn_select_m.imageset/btn_select_m@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..48313b810f3b27ee97e0f7944897b9dc49153f2a GIT binary patch literal 1957 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 VFGL{3Tu#0PfSEDesKLNJ>E8wV&#eFe literal 0 HcmV?d00001 diff --git a/NohanaImagePicker/Images.xcassets/btn_selected_l.imageset/Contents.json b/Demo/Resources/NohanaImagePicker.xcassets/btn_selected_l.imageset/Contents.json similarity index 100% rename from NohanaImagePicker/Images.xcassets/btn_selected_l.imageset/Contents.json rename to Demo/Resources/NohanaImagePicker.xcassets/btn_selected_l.imageset/Contents.json diff --git a/NohanaImagePicker/Images.xcassets/btn_selected_l.imageset/btn_selected_l@2x.png b/Demo/Resources/NohanaImagePicker.xcassets/btn_selected_l.imageset/btn_selected_l@2x.png similarity index 100% rename from NohanaImagePicker/Images.xcassets/btn_selected_l.imageset/btn_selected_l@2x.png rename to Demo/Resources/NohanaImagePicker.xcassets/btn_selected_l.imageset/btn_selected_l@2x.png diff --git a/NohanaImagePicker/Images.xcassets/btn_selected_l.imageset/btn_selected_l@3x.png b/Demo/Resources/NohanaImagePicker.xcassets/btn_selected_l.imageset/btn_selected_l@3x.png similarity index 100% rename from NohanaImagePicker/Images.xcassets/btn_selected_l.imageset/btn_selected_l@3x.png rename to Demo/Resources/NohanaImagePicker.xcassets/btn_selected_l.imageset/btn_selected_l@3x.png diff --git a/NohanaImagePicker/Images.xcassets/btn_selected_m.imageset/Contents.json b/Demo/Resources/NohanaImagePicker.xcassets/btn_selected_m.imageset/Contents.json similarity index 100% rename from NohanaImagePicker/Images.xcassets/btn_selected_m.imageset/Contents.json rename to Demo/Resources/NohanaImagePicker.xcassets/btn_selected_m.imageset/Contents.json diff --git a/Demo/Resources/NohanaImagePicker.xcassets/btn_selected_m.imageset/btn_selected_m@2x.png b/Demo/Resources/NohanaImagePicker.xcassets/btn_selected_m.imageset/btn_selected_m@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..418c39788fb785441d3d6ae4766c8192d321d474 GIT binary patch literal 1770 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 literal 0 HcmV?d00001 diff --git a/NohanaImagePicker/Images.xcassets/icon_photosize_alert_s.imageset/Contents.json b/Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/Contents.json similarity index 100% rename from NohanaImagePicker/Images.xcassets/icon_photosize_alert_s.imageset/Contents.json rename to Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/Contents.json diff --git a/NohanaImagePicker/Images.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@2x.png b/Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@2x.png similarity index 100% rename from NohanaImagePicker/Images.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@2x.png rename to Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@2x.png diff --git a/NohanaImagePicker/Images.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@3x.png b/Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@3x.png similarity index 100% rename from NohanaImagePicker/Images.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@3x.png rename to Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@3x.png diff --git a/NohanaImagePicker/Images.xcassets/icon_photosize_low_s.imageset/Contents.json b/Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_low_s.imageset/Contents.json similarity index 100% rename from NohanaImagePicker/Images.xcassets/icon_photosize_low_s.imageset/Contents.json rename to Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_low_s.imageset/Contents.json diff --git a/NohanaImagePicker/Images.xcassets/icon_photosize_low_s.imageset/icon_photosize_low_s@2x.png b/Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_low_s.imageset/icon_photosize_low_s@2x.png similarity index 100% rename from NohanaImagePicker/Images.xcassets/icon_photosize_low_s.imageset/icon_photosize_low_s@2x.png rename to Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_low_s.imageset/icon_photosize_low_s@2x.png diff --git a/NohanaImagePicker/Images.xcassets/icon_photosize_low_s.imageset/icon_photosize_low_s@3x.png b/Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_low_s.imageset/icon_photosize_low_s@3x.png similarity index 100% rename from NohanaImagePicker/Images.xcassets/icon_photosize_low_s.imageset/icon_photosize_low_s@3x.png rename to Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_low_s.imageset/icon_photosize_low_s@3x.png diff --git a/Demo/Resources/en.lproj/NohanaImagePicker.strings b/Demo/Resources/en.lproj/NohanaImagePicker.strings new file mode 100644 index 0000000..3ff0f81 --- /dev/null +++ b/Demo/Resources/en.lproj/NohanaImagePicker.strings @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2016 nohana, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"albumlist.title" = "Photos📗"; +"albumlist.empty.message" = "No Photos🤔"; +"albumlist.empty.description" = "Take some photos with Camera app."; +"albumlist.moment.title" = "Moment"; +"toolbar.title.nolimit" = "Selected : %ld"; +"toolbar.title.haslimit" = "Selected Items: %ld / %ld"; diff --git a/Demo/Resources/ja.lproj/NohanaImagePicker.strings b/Demo/Resources/ja.lproj/NohanaImagePicker.strings new file mode 100644 index 0000000..3e058d9 --- /dev/null +++ b/Demo/Resources/ja.lproj/NohanaImagePicker.strings @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2016 nohana, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"albumlist.title" = "アルバム📗"; +"albumlist.empty.message" = "アルバムに\n写真がありません🤔"; +"albumlist.empty.description" = "カメラで写真を撮影しましょう"; +"albumlist.moment.title" = "日付から選択"; +"toolbar.title.nolimit" = "%ld枚選択中"; +"toolbar.title.haslimit" = "%ld枚選択中(最大%ld枚)"; diff --git a/NohanaImagePicker.xcodeproj/project.pbxproj b/NohanaImagePicker.xcodeproj/project.pbxproj index 5acaff1..06e21bc 100644 --- a/NohanaImagePicker.xcodeproj/project.pbxproj +++ b/NohanaImagePicker.xcodeproj/project.pbxproj @@ -7,6 +7,8 @@ objects = { /* Begin PBXBuildFile section */ + 3569CAA81EC1918E000C41C0 /* NohanaImagePicker.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3569CAA41EC1918E000C41C0 /* NohanaImagePicker.strings */; }; + 3569CAA91EC1918E000C41C0 /* NohanaImagePicker.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3569CAA61EC1918E000C41C0 /* NohanaImagePicker.xcassets */; }; F202573A1C7343D20069B33A /* ImageName.swift in Sources */ = {isa = PBXBuildFile; fileRef = F20257391C7343D20069B33A /* ImageName.swift */; }; F202573C1C7418920069B33A /* PickedAssetList.swift in Sources */ = {isa = PBXBuildFile; fileRef = F202573B1C7418920069B33A /* PickedAssetList.swift */; }; F208E5541CD7370B00FFC9F6 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F208E5531CD7370B00FFC9F6 /* AppDelegate.swift */; }; @@ -21,7 +23,7 @@ F218D7DE1C6C3A5B001FCED1 /* AlbumCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F218D7DD1C6C3A5B001FCED1 /* AlbumCell.swift */; }; F23554261C69D19C00796DCA /* NohanaImagePicker.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F23554251C69D19C00796DCA /* NohanaImagePicker.storyboard */; }; F23554281C69D5DB00796DCA /* NohanaImagePickerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F23554271C69D5DB00796DCA /* NohanaImagePickerController.swift */; }; - F237249B1C6DCF96005D1E8A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F237249A1C6DCF96005D1E8A /* Images.xcassets */; }; + F237249B1C6DCF96005D1E8A /* NohanaImagePicker.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F237249A1C6DCF96005D1E8A /* NohanaImagePicker.xcassets */; }; F23CC89E1CB745C800BCE443 /* ActivityIndicatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F23CC89D1CB745C800BCE443 /* ActivityIndicatable.swift */; }; F24EB6901C68AEED0002EC86 /* AlbumListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F24EB68F1C68AEED0002EC86 /* AlbumListViewController.swift */; }; F25C10C21C8ED9BF007453C3 /* MomentViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F25C10C11C8ED9BF007453C3 /* MomentViewController.swift */; }; @@ -71,6 +73,9 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 3569CAA51EC1918E000C41C0 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/NohanaImagePicker.strings; sourceTree = ""; }; + 3569CAA61EC1918E000C41C0 /* NohanaImagePicker.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = NohanaImagePicker.xcassets; sourceTree = ""; }; + 3569CAA71EC1918E000C41C0 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/NohanaImagePicker.strings; sourceTree = ""; }; F20257391C7343D20069B33A /* ImageName.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageName.swift; sourceTree = ""; }; F202573B1C7418920069B33A /* PickedAssetList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PickedAssetList.swift; sourceTree = ""; }; F208E5511CD7370B00FFC9F6 /* Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Demo.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -85,7 +90,7 @@ F218D7DD1C6C3A5B001FCED1 /* AlbumCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AlbumCell.swift; sourceTree = ""; }; F23554251C69D19C00796DCA /* NohanaImagePicker.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = NohanaImagePicker.storyboard; sourceTree = ""; }; F23554271C69D5DB00796DCA /* NohanaImagePickerController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NohanaImagePickerController.swift; sourceTree = ""; }; - F237249A1C6DCF96005D1E8A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; + F237249A1C6DCF96005D1E8A /* NohanaImagePicker.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = NohanaImagePicker.xcassets; sourceTree = ""; }; F23CC89D1CB745C800BCE443 /* ActivityIndicatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ActivityIndicatable.swift; sourceTree = ""; }; F24EB68F1C68AEED0002EC86 /* AlbumListViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AlbumListViewController.swift; sourceTree = ""; }; F25C10C11C8ED9BF007453C3 /* MomentViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MomentViewController.swift; sourceTree = ""; }; @@ -132,9 +137,19 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 3569CAA31EC1918E000C41C0 /* Resources */ = { + isa = PBXGroup; + children = ( + 3569CAA41EC1918E000C41C0 /* NohanaImagePicker.strings */, + 3569CAA61EC1918E000C41C0 /* NohanaImagePicker.xcassets */, + ); + path = Resources; + sourceTree = ""; + }; F208E5521CD7370B00FFC9F6 /* Demo */ = { isa = PBXGroup; children = ( + 3569CAA31EC1918E000C41C0 /* Resources */, F208E5531CD7370B00FFC9F6 /* AppDelegate.swift */, F208E5681CD738CD00FFC9F6 /* DemoListViewController.swift */, F208E5571CD7370B00FFC9F6 /* Main.storyboard */, @@ -163,7 +178,7 @@ children = ( F23554251C69D19C00796DCA /* NohanaImagePicker.storyboard */, F27029CD1C71C43A001647AB /* NohanaImagePicker.strings */, - F237249A1C6DCF96005D1E8A /* Images.xcassets */, + F237249A1C6DCF96005D1E8A /* NohanaImagePicker.xcassets */, ); name = Resources; sourceTree = ""; @@ -346,8 +361,10 @@ buildActionMask = 2147483647; files = ( F208E55E1CD7370B00FFC9F6 /* LaunchScreen.storyboard in Resources */, + 3569CAA91EC1918E000C41C0 /* NohanaImagePicker.xcassets in Resources */, F208E55B1CD7370B00FFC9F6 /* Assets.xcassets in Resources */, F208E5591CD7370B00FFC9F6 /* Main.storyboard in Resources */, + 3569CAA81EC1918E000C41C0 /* NohanaImagePicker.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -357,7 +374,7 @@ files = ( F23554261C69D19C00796DCA /* NohanaImagePicker.storyboard in Resources */, F27029CB1C71C43A001647AB /* NohanaImagePicker.strings in Resources */, - F237249B1C6DCF96005D1E8A /* Images.xcassets in Resources */, + F237249B1C6DCF96005D1E8A /* NohanaImagePicker.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -417,6 +434,15 @@ /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ + 3569CAA41EC1918E000C41C0 /* NohanaImagePicker.strings */ = { + isa = PBXVariantGroup; + children = ( + 3569CAA51EC1918E000C41C0 /* en */, + 3569CAA71EC1918E000C41C0 /* ja */, + ); + name = NohanaImagePicker.strings; + sourceTree = ""; + }; F208E5571CD7370B00FFC9F6 /* Main.storyboard */ = { isa = PBXVariantGroup; children = ( diff --git a/NohanaImagePicker/NohanaImagePicker.xcassets/Contents.json b/NohanaImagePicker/NohanaImagePicker.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/NohanaImagePicker/NohanaImagePicker.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/NohanaImagePicker/NohanaImagePicker.xcassets/btn_select_l.imageset/Contents.json b/NohanaImagePicker/NohanaImagePicker.xcassets/btn_select_l.imageset/Contents.json new file mode 100644 index 0000000..5e4b2c9 --- /dev/null +++ b/NohanaImagePicker/NohanaImagePicker.xcassets/btn_select_l.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "btn_select_l@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "btn_select_l@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/NohanaImagePicker/NohanaImagePicker.xcassets/btn_select_l.imageset/btn_select_l@2x.png b/NohanaImagePicker/NohanaImagePicker.xcassets/btn_select_l.imageset/btn_select_l@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..3d1cb8166a3d0b6219217df766e19a037a908f43 GIT binary patch literal 1777 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 literal 0 HcmV?d00001 diff --git a/NohanaImagePicker/NohanaImagePicker.xcassets/btn_select_m.imageset/Contents.json b/NohanaImagePicker/NohanaImagePicker.xcassets/btn_select_m.imageset/Contents.json new file mode 100644 index 0000000..a4c6bec --- /dev/null +++ b/NohanaImagePicker/NohanaImagePicker.xcassets/btn_select_m.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "btn_select_m@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "btn_select_m@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/NohanaImagePicker/Images.xcassets/btn_select_m.imageset/btn_select_m@2x.png b/NohanaImagePicker/NohanaImagePicker.xcassets/btn_select_m.imageset/btn_select_m@2x.png similarity index 100% rename from NohanaImagePicker/Images.xcassets/btn_select_m.imageset/btn_select_m@2x.png rename to NohanaImagePicker/NohanaImagePicker.xcassets/btn_select_m.imageset/btn_select_m@2x.png diff --git a/NohanaImagePicker/Images.xcassets/btn_select_m.imageset/btn_select_m@3x.png b/NohanaImagePicker/NohanaImagePicker.xcassets/btn_select_m.imageset/btn_select_m@3x.png similarity index 100% rename from NohanaImagePicker/Images.xcassets/btn_select_m.imageset/btn_select_m@3x.png rename to NohanaImagePicker/NohanaImagePicker.xcassets/btn_select_m.imageset/btn_select_m@3x.png diff --git a/NohanaImagePicker/NohanaImagePicker.xcassets/btn_selected_l.imageset/Contents.json b/NohanaImagePicker/NohanaImagePicker.xcassets/btn_selected_l.imageset/Contents.json new file mode 100644 index 0000000..8d2c67f --- /dev/null +++ b/NohanaImagePicker/NohanaImagePicker.xcassets/btn_selected_l.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "btn_selected_l@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "btn_selected_l@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/NohanaImagePicker/NohanaImagePicker.xcassets/btn_selected_l.imageset/btn_selected_l@2x.png b/NohanaImagePicker/NohanaImagePicker.xcassets/btn_selected_l.imageset/btn_selected_l@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f5c27b944ea8a72ff032ac75e93bbb950a0e6403 GIT binary patch literal 1913 zcmeHGi#yZ%AO9@mHgc_$%0W6us7}9_%+svAxP88`x zi4$@yY~Ss>jm~tT7@N&7$tJTK&U&8TpYeO1_xt^NUhnJkyr1{G;7GtB1HBD;0009Y z)WIM%?)#=X8fyFJNrrCj`$t(QYT=b|I7b2fQCRm1r$&LnQ2k?!KZq_1rO_^si1^m z!kWO#RT9y{K*P|{0xF_}VayWZrApDt%1WP*P()izWSB4~a8iY6PCoW>Br2bZ$m>-X znlmOa3yP_gm1VJPw2c#8L^I0m1ti9LSdcG~aWN2*#IT_8bEJxCiF~}B^9L5vD`9M) z@v|hd@s810EKLUssry(!{EV)#D;P*KkD{h)A%5mp#l*aP{53ZL10e`>{X2bI2r!Ze zo6rQ=^KyPSHxUgXa5TMEPBeF}qjU5!8qy)chS0b=I?>Hd!a^E_6i`S7EyEEa>3~?q z?HIj;hBS)dHB^44R5A6Mn^*+tQpYnEm7nKioMPCBGM*-p^SXISMUdg`KAV1FiA*_L zKmkOC>7rt$h;Bq?S+RsTnQE?mGzLvY5MlFP-hU-Bo=o+nhnIw-8|U-_xpGb{8*3Yh z#z0y`cx?~w24y@IPd6m9HnW69t(^0PR4p9c5Jy9jnU>ANVRN!Eneq#su6K)R(LY(T zsGM0|S(dBjaCBV~b8Y`5Nuio&OrUXe9TLM#s+>_SEx>|8{I{sNYDrG#7Z6}0GIIl6 zkk>VOg#eq8nd{YOfBt6Jw~qA`Txq2=cWyq0~h83Mx1r0DY5hieQi2Q~{uo=yTBH7z(=k zA;H}=a6OpQ)+u}I?!Fi8?`x)2<$#Qh^-N9NeO?spYW_8LraW{I8#-7w=y<((Ff=Vm zJE`qrVq5%Zcw4jb^9WkWan5$=?&DOXKOp*ry%`$va*B_07&~)0&o=u>S=+D|H)Fo% z7p`?;;=EZ@PJ4T5y_YO0#k>L5Q`#Rdb#^Q1%+U%aR8k5fUwd3v6dFFt3Or_++&)%6fK0%DIUjA$r z+nnNROM8FuW7EL%&=V0&88K0Tk8D0AP7XefU)NL-XP%sWJd&ameXMhJ$K9LR`R-jM zzN2lDW0$fptMR5eJgsSKee3=>JlbU`JtNC%Yr>q--RE`Q{$@fOUQI>MY6NnNn`i$8 zOkIv;47!Ezz+2-X*5dHh(=i`B0_;VXhLc*mbWOJf5?`|Hw;gk)P0OnNszN{hJ+*p3 zdOx}5XJOFc3;tc(qM7AdJ5%~X*s66gR(BNM+HX=<5XI0xI5@!2!_w_qDWR7zEO&!jBGEXJ+;YE5x!`_4Idc_if5M%6DNDB- zg`h9I1ttC|*`;OU7`uQ-Mm!DasCEwNuMT~WEmIW@0lU+)?7B~12MoL77sK}M-x1t4 zyHU2OQQ+t7vT$G9@tIqQSZ7RJv+ZGe&vOH2`1a|kMj^hzbxEt;QtG>%U-|)_@v=ic zi@&F_=`yF&^m@j-amOI-vq^u>BgV!b^>-US*~r#q4>$x*(RR4p4)01mU_BE@Bt<3L zA`jeLR$Q#-N!T{OdcI$g`vqT>>sk!$X`s>0$(Dl=QtMBdKUx4l>Fun&b1-#Vv5dYfNcxI4|5R&v+>j$UK6KkWRAr!n`@G4bv- zRpFWqYgswIq6w5k$cPEQK(8s1WWDPL56@lw?T%vlRmW3svB~KdzJA3oVvWg`{qu|5 Z9sfv*D=W58AFBTn_;>{zeCl~7^Iz{V(D?uW literal 0 HcmV?d00001 diff --git a/NohanaImagePicker/NohanaImagePicker.xcassets/btn_selected_l.imageset/btn_selected_l@3x.png b/NohanaImagePicker/NohanaImagePicker.xcassets/btn_selected_l.imageset/btn_selected_l@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..343033034c8b813c58ba15fa35f98ce743821128 GIT binary patch literal 1686 zcmeH``BM^j7{8=_&ZJDhVm6<1%Azq}G zY2Ie0X_g&=ff<5;8);f92wr$`y7YhS%=^5bdER+vo*&+M?;sBc=xLj20|4}3P+zo? zm|xO_DEqFK5s?yVXT1F`XeRKB#jx~f=}f17zBkuP#*o=apR zj_?_Gx_L-g^L4sOB3~F1)_$FC91_<3JKew*RIvq5S%ONjZ2sfewc**e71`|M0yU4K z&6;{LGW#mCM`dz>mPgSUoGO>fmq+JbKOS&hkflsGUau~L zPa2zhlSPK`7yB9fQki^ZZ0>C~S#4^OKEN*-oA1shtN)mPmqXSNEHQq}zt5qp5iSkl zd-dqNqH$4=Tp^|N3MWJq;SvkqtN(>Zlqtj$qF&(=`^zL@a^X`hMN^@W;*RR9XLk@A$1v}MM zHkul=l5|rsPX)DQX&IZAO_#f`Y4b~Crb((a>wWZ&_%ORJn^uu$`ns);PQzDjWf>Z@ z#fb6~tam%%F5OM^<-G8}VN(_vhiZzb;Wp|eb@Li};JJzRc6)V$1B)y+mX4^MaWx)O zCs#!2;~OZjqA2)zvn_WlZJlrSd@boaG724j>*DC}Aux@qt5NX47CuU*I5=QMQGsb4 zVX2N?o_%UN$SlW5ooGawcd=FwW_P@*$$FIZT;)b%i)(|SobkZ4xY`)USk?P##A&qX zT$MY?>l3vQL{Aka2k#98(vaqkZLa71#AeSOTx~pmR<{*m5oc~=llMS%^RGp@X+vUxlE{2r1M*PuG5~^?i{VWq+;PbB9?SS_y%(JqTC@Lx<8&xkvp>l9;hpCAYzqQ`UM&ldo z0~YOAkC2I29KolZ<%8;MaAQ{z4?-mC_#Y zpvAHZY)GlstoQvj8a_^06Cp6p+#8c1?MhP#~X`fksRfuBS|A(w|G%r;ou z>y*#Y)jAn{^Z;VN^t+{a%-G%oOXSllTcO6uB~MSLiyyEs>tnb=oYR=Bb*3SWw#B0j zk@MwaYmFkrYMdT_;$GYpNvIRA#G@jyQgNX$>aL4xV6J}mIMt~Orf=-uV@~&D-1PJy zH?HC6ogXOi#TZMlf*-&c=V-#2>}y@;nwamjAxW{%5jY+g!5h(@i{5GLl-f zxl!UsPpHv;-@f)l?C&&N*ftAHggLXq-JsV#b{yGs@OS{N;0^;s6&^|IU^$X@_k_;Lt?1`7L!eb@vZ6{U}}IN^CW5>@e Yg6Hv%>7NsCC|?%9{0{rpd7rxeAG6C%^8f$< literal 0 HcmV?d00001 diff --git a/NohanaImagePicker/NohanaImagePicker.xcassets/btn_selected_m.imageset/Contents.json b/NohanaImagePicker/NohanaImagePicker.xcassets/btn_selected_m.imageset/Contents.json new file mode 100644 index 0000000..307b92b --- /dev/null +++ b/NohanaImagePicker/NohanaImagePicker.xcassets/btn_selected_m.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "btn_selected_m@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "btn_selected_m@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/NohanaImagePicker/Images.xcassets/btn_selected_m.imageset/btn_selected_m@2x.png b/NohanaImagePicker/NohanaImagePicker.xcassets/btn_selected_m.imageset/btn_selected_m@2x.png similarity index 100% rename from NohanaImagePicker/Images.xcassets/btn_selected_m.imageset/btn_selected_m@2x.png rename to NohanaImagePicker/NohanaImagePicker.xcassets/btn_selected_m.imageset/btn_selected_m@2x.png diff --git a/NohanaImagePicker/Images.xcassets/btn_selected_m.imageset/btn_selected_m@3x.png b/NohanaImagePicker/NohanaImagePicker.xcassets/btn_selected_m.imageset/btn_selected_m@3x.png similarity index 100% rename from NohanaImagePicker/Images.xcassets/btn_selected_m.imageset/btn_selected_m@3x.png rename to NohanaImagePicker/NohanaImagePicker.xcassets/btn_selected_m.imageset/btn_selected_m@3x.png diff --git a/NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/Contents.json b/NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/Contents.json new file mode 100644 index 0000000..6f14b6e --- /dev/null +++ b/NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "icon_photosize_alert_s@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "icon_photosize_alert_s@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@2x.png b/NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..34f67eaa9de338946ff774779c760898179aecb8 GIT binary patch literal 1518 zcmX|A2{fBo82zcVCAGJd)(mRPk*eCd3@XGB+o04|#?rA))tRblP)ks?l{RUM=_1tF z8a1WbQd?|kP*KZ}Cf24YVvQw4%rnlJch0--zWcrJ{@?fB`R_V9Sc!`%ia`)0jdILE-OZd}n_H>7%2gz;MrMWo0EbAtp5*3%)fwJ8NNKu@?dbv^F(3 zTADOB)`L)JXedx}Gw$SMqyh)vZ)j+k92cD&8$CTe4N}_L+5m#SLPA2AOeWwd@z|)S zC_sjWh5&-D6%-Tz!Q=7t(Gd!T0yr2i%l`ts1H$EU{}Xmi_Q?MTikz63=;-K3OH0FN zr-Lh!mX_}A?F9$Cyu1K{dIkpvn;PDs(P*$OD=Pzti@iBKJPZgJEEY>vRu+leeOA!8 zjj56Cg)_dc4h8s}j@IU>iLvFSC42MpVSb*S~Il+p;F(Dt&Z1cSi^wARx>~v ztIDKhrf1*H%Gi<5UqncoY9r2BsvbdI{M?_I*@GgtGxQ==9hpuMrFMU}d>Dy!gW!XP`J~(iwrpAW9aMjGK-ZJ7wFm2?k zl^czUZ1<&Pi4+HfshU-InpI&R-)RtQ@g270WDm0o5d#n=ok@NlLqvNxu=e4?~2 z>Duq%ocSNKB{BqV&J+>-*S_vPhIyABiNp1~leK0rfe(E=Jpvxr64bFq%83^)pHFYu TY0buhe*wZ+I-p7BzDfTA`6v3^ literal 0 HcmV?d00001 diff --git a/NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@3x.png b/NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..80f020347118a1b59bf3b974f7b3501cf56df479 GIT binary patch literal 3878 zcmV+>583dEP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 P00000NkvXXu0mjfO0$mL literal 0 HcmV?d00001 diff --git a/NohanaImagePicker/NohanaImagePickerController.swift b/NohanaImagePicker/NohanaImagePickerController.swift index e679070..f7dc442 100644 --- a/NohanaImagePicker/NohanaImagePickerController.swift +++ b/NohanaImagePicker/NohanaImagePickerController.swift @@ -49,7 +49,7 @@ open class NohanaImagePickerController: UIViewController { open var canPickAsset = { (asset:Asset) -> Bool in return true } - lazy var assetBundle:Bundle = { + open lazy var assetBundle:Bundle = { let bundle = Bundle(for: type(of: self)) if let path = bundle.path(forResource: "NohanaImagePicker", ofType: "bundle") { return Bundle(path: path)! @@ -99,7 +99,7 @@ open class NohanaImagePickerController: UIViewController { super.viewDidLoad() // show albumListViewController - let storyboard = UIStoryboard(name: "NohanaImagePicker", bundle: assetBundle) + let storyboard = UIStoryboard(name: "NohanaImagePicker", bundle: Bundle(for: type(of: self))) let viewControllerId = enableExpandingPhotoAnimation ? "EnableAnimationNavigationController" : "DisableAnimationNavigationController" guard let navigationController = storyboard.instantiateViewController(withIdentifier: viewControllerId) as? UINavigationController else { fatalError("navigationController init failed.") From b0fdba4fd26c5290f027498e1ade834949cdb308 Mon Sep 17 00:00:00 2001 From: KazukiTanaka Date: Tue, 9 May 2017 16:30:53 +0900 Subject: [PATCH 03/12] fix Localization #71 --- NohanaImagePicker.xcodeproj/project.pbxproj | 3 +++ .../ru.lproj/NohanaImagePicker.strings | 22 +++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 NohanaImagePicker/ru.lproj/NohanaImagePicker.strings diff --git a/NohanaImagePicker.xcodeproj/project.pbxproj b/NohanaImagePicker.xcodeproj/project.pbxproj index 06e21bc..032d76c 100644 --- a/NohanaImagePicker.xcodeproj/project.pbxproj +++ b/NohanaImagePicker.xcodeproj/project.pbxproj @@ -76,6 +76,7 @@ 3569CAA51EC1918E000C41C0 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/NohanaImagePicker.strings; sourceTree = ""; }; 3569CAA61EC1918E000C41C0 /* NohanaImagePicker.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = NohanaImagePicker.xcassets; sourceTree = ""; }; 3569CAA71EC1918E000C41C0 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/NohanaImagePicker.strings; sourceTree = ""; }; + 3590F1F51EC1A79400F32E06 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/NohanaImagePicker.strings; sourceTree = ""; }; F20257391C7343D20069B33A /* ImageName.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageName.swift; sourceTree = ""; }; F202573B1C7418920069B33A /* PickedAssetList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PickedAssetList.swift; sourceTree = ""; }; F208E5511CD7370B00FFC9F6 /* Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Demo.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -343,6 +344,7 @@ en, Base, ja, + ru, ); mainGroup = F2C08D6A1C68651900B00181; productRefGroup = F2C08D751C68651900B00181 /* Products */; @@ -464,6 +466,7 @@ children = ( F27029CC1C71C43A001647AB /* en */, F27029CF1C71C4FE001647AB /* ja */, + 3590F1F51EC1A79400F32E06 /* ru */, ); name = NohanaImagePicker.strings; sourceTree = ""; diff --git a/NohanaImagePicker/ru.lproj/NohanaImagePicker.strings b/NohanaImagePicker/ru.lproj/NohanaImagePicker.strings new file mode 100644 index 0000000..f882602 --- /dev/null +++ b/NohanaImagePicker/ru.lproj/NohanaImagePicker.strings @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2016 nohana, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +"albumlist.title" = "Фотографии"; +"albumlist.empty.message" = "Нет фотографий"; +"albumlist.empty.description" = "Получить фото с камеры"; +"albumlist.moment.title" = "Моменты"; +"toolbar.title.nolimit" = "Выбрано: %ld"; +"toolbar.title.haslimit" = "Выбрано: %ld / %ld"; From d822cdf449aca6a9ca2635dcb9556d96cf53b6d3 Mon Sep 17 00:00:00 2001 From: KazukiTanaka Date: Tue, 9 May 2017 16:56:47 +0900 Subject: [PATCH 04/12] change README --- Demo/DemoListViewController.swift | 2 ++ README.md | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Demo/DemoListViewController.swift b/Demo/DemoListViewController.swift index 3af643a..2810022 100644 --- a/Demo/DemoListViewController.swift +++ b/Demo/DemoListViewController.swift @@ -126,6 +126,8 @@ class DemoListViewController: UITableViewController, NohanaImagePickerController @objc func showCustomUIPicker() { + ColorConfig.backgroundColor = UIColor.lightGray + let picker = NohanaImagePickerController() picker.delegate = self picker.assetBundle = Bundle.main diff --git a/README.md b/README.md index 768bfa3..4bed6f1 100644 --- a/README.md +++ b/README.md @@ -64,8 +64,13 @@ picker.canPickAsset = { (asset:Asset) -> Bool in return false } +// If set to Bundle Object, You can change 'NohanaImagePicker.strings' and 'NohanaImagePicker.xcassets'. +picker.assetBundle = Bundle.main + // Color -ColorConfig.backgroundColor = UIColor.redColor() +ColorConfig.backgroundColor = UIColor.lightGray +ColorConfig.emptyIndicator = UIColor.lightGray +ColorConfig.AlbumList.momentCellSeparator = UIColor.lightGray ``` ## Requirements From 5b4c6b5c3a3c9b92e9897e8f03e7801762bafef3 Mon Sep 17 00:00:00 2001 From: KazukiTanaka Date: Thu, 11 May 2017 11:36:32 +0900 Subject: [PATCH 05/12] =?UTF-8?q?cocoa=20pods=20=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Demo/DemoListViewController.swift | 5 +++++ NohanaImagePicker.podspec | 2 +- NohanaImagePicker/NohanaImagePickerController.swift | 8 +++++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Demo/DemoListViewController.swift b/Demo/DemoListViewController.swift index 2810022..dd84619 100644 --- a/Demo/DemoListViewController.swift +++ b/Demo/DemoListViewController.swift @@ -39,6 +39,11 @@ class DemoListViewController: UITableViewController, NohanaImagePickerController } } + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + ColorConfig.backgroundColor = UIColor.white + } + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return cells.count } diff --git a/NohanaImagePicker.podspec b/NohanaImagePicker.podspec index c08ce5c..cfe04fc 100644 --- a/NohanaImagePicker.podspec +++ b/NohanaImagePicker.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'NohanaImagePicker' - s.version = '0.7.1' + s.version = '0.7.2' s.summary = 'A multiple image picker for iOS app.' s.homepage = 'https://github.com/nohana/NohanaImagePicker' s.license = { :type => 'Apache License v2', :file => 'LICENSE' } diff --git a/NohanaImagePicker/NohanaImagePickerController.swift b/NohanaImagePicker/NohanaImagePickerController.swift index f7dc442..ef15a5c 100644 --- a/NohanaImagePicker/NohanaImagePickerController.swift +++ b/NohanaImagePicker/NohanaImagePickerController.swift @@ -49,13 +49,15 @@ open class NohanaImagePickerController: UIViewController { open var canPickAsset = { (asset:Asset) -> Bool in return true } - open lazy var assetBundle:Bundle = { + open lazy var assetBundle: Bundle = self.selectAssetBundle() + func selectAssetBundle () -> Bundle { let bundle = Bundle(for: type(of: self)) if let path = bundle.path(forResource: "NohanaImagePicker", ofType: "bundle") { return Bundle(path: path)! } return bundle - }() + } + let pickedAssetList: PickedAssetList let mediaType: MediaType let enableExpandingPhotoAnimation: Bool @@ -99,7 +101,7 @@ open class NohanaImagePickerController: UIViewController { super.viewDidLoad() // show albumListViewController - let storyboard = UIStoryboard(name: "NohanaImagePicker", bundle: Bundle(for: type(of: self))) + let storyboard = UIStoryboard(name: "NohanaImagePicker", bundle: selectAssetBundle()) let viewControllerId = enableExpandingPhotoAnimation ? "EnableAnimationNavigationController" : "DisableAnimationNavigationController" guard let navigationController = storyboard.instantiateViewController(withIdentifier: viewControllerId) as? UINavigationController else { fatalError("navigationController init failed.") From e1fa97ea2de2a072d1bd17cf745b65f25894081a Mon Sep 17 00:00:00 2001 From: haranicle Date: Fri, 12 May 2017 00:33:22 +0900 Subject: [PATCH 06/12] new config --- Demo/DemoListViewController.swift | 7 +- .../btn_select_l.imageset/Contents.json | 22 ------ .../btn_select_l.imageset/btn_select_l@2x.png | Bin 1777 -> 0 bytes .../btn_select_l.imageset/btn_select_l@3x.png | Bin 1467 -> 0 bytes .../btn_selected_l.imageset/Contents.json | 22 ------ .../btn_selected_l@2x.png | Bin 1913 -> 0 bytes .../btn_selected_l@3x.png | Bin 1686 -> 0 bytes .../Contents.json | 22 ------ .../icon_photosize_alert_s@2x.png | Bin 1518 -> 0 bytes .../icon_photosize_alert_s@3x.png | Bin 3878 -> 0 bytes .../Contents.json | 22 ------ .../icon_photosize_low_s@2x.png | Bin 2419 -> 0 bytes .../icon_photosize_low_s@3x.png | Bin 2917 -> 0 bytes .../en.lproj/NohanaImagePicker.strings | 22 ------ .../ja.lproj/NohanaImagePicker.strings | 22 ------ NohanaImagePicker.xcodeproj/project.pbxproj | 22 ------ .../AlbumListEmptyIndicator.swift | 6 +- .../AlbumListViewController.swift | 8 ++- NohanaImagePicker/AssetCell.swift | 11 ++- .../AssetDetailListViewController.swift | 11 ++- .../AssetListViewController.swift | 2 +- NohanaImagePicker/ColorConfig.swift | 24 ------- NohanaImagePicker/ImageName.swift | 30 -------- NohanaImagePicker/MomentCell.swift | 3 +- .../NohanaImagePicker.storyboard | 68 ++++++++---------- .../Contents.json | 22 ------ .../icon_photosize_alert_s@2x.png | Bin 1518 -> 0 bytes .../icon_photosize_alert_s@3x.png | Bin 3878 -> 0 bytes .../Contents.json | 22 ------ .../icon_photosize_low_s@2x.png | Bin 2419 -> 0 bytes .../icon_photosize_low_s@3x.png | Bin 2917 -> 0 bytes .../NohanaImagePickerController.swift | 33 +++++++-- 32 files changed, 80 insertions(+), 321 deletions(-) delete mode 100644 Demo/Resources/NohanaImagePicker.xcassets/btn_select_l.imageset/Contents.json delete mode 100644 Demo/Resources/NohanaImagePicker.xcassets/btn_select_l.imageset/btn_select_l@2x.png delete mode 100644 Demo/Resources/NohanaImagePicker.xcassets/btn_select_l.imageset/btn_select_l@3x.png delete mode 100644 Demo/Resources/NohanaImagePicker.xcassets/btn_selected_l.imageset/Contents.json delete mode 100644 Demo/Resources/NohanaImagePicker.xcassets/btn_selected_l.imageset/btn_selected_l@2x.png delete mode 100644 Demo/Resources/NohanaImagePicker.xcassets/btn_selected_l.imageset/btn_selected_l@3x.png delete mode 100644 Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/Contents.json delete mode 100644 Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@2x.png delete mode 100644 Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@3x.png delete mode 100644 Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_low_s.imageset/Contents.json delete mode 100644 Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_low_s.imageset/icon_photosize_low_s@2x.png delete mode 100644 Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_low_s.imageset/icon_photosize_low_s@3x.png delete mode 100644 Demo/Resources/en.lproj/NohanaImagePicker.strings delete mode 100644 Demo/Resources/ja.lproj/NohanaImagePicker.strings delete mode 100644 NohanaImagePicker/ColorConfig.swift delete mode 100644 NohanaImagePicker/ImageName.swift delete mode 100644 NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/Contents.json delete mode 100644 NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@2x.png delete mode 100644 NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@3x.png delete mode 100644 NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_low_s.imageset/Contents.json delete mode 100644 NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_low_s.imageset/icon_photosize_low_s@2x.png delete mode 100644 NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_low_s.imageset/icon_photosize_low_s@3x.png diff --git a/Demo/DemoListViewController.swift b/Demo/DemoListViewController.swift index dd84619..bc8f06e 100644 --- a/Demo/DemoListViewController.swift +++ b/Demo/DemoListViewController.swift @@ -41,7 +41,6 @@ class DemoListViewController: UITableViewController, NohanaImagePickerController override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) - ColorConfig.backgroundColor = UIColor.white } override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { @@ -66,8 +65,6 @@ class DemoListViewController: UITableViewController, NohanaImagePickerController } }) } - - } // MARK: - Photos @@ -131,11 +128,9 @@ class DemoListViewController: UITableViewController, NohanaImagePickerController @objc func showCustomUIPicker() { - ColorConfig.backgroundColor = UIColor.lightGray - let picker = NohanaImagePickerController() picker.delegate = self - picker.assetBundle = Bundle.main + picker.config.color.background = .lightGray present(picker, animated: true, completion: nil) } diff --git a/Demo/Resources/NohanaImagePicker.xcassets/btn_select_l.imageset/Contents.json b/Demo/Resources/NohanaImagePicker.xcassets/btn_select_l.imageset/Contents.json deleted file mode 100644 index 5e4b2c9..0000000 --- a/Demo/Resources/NohanaImagePicker.xcassets/btn_select_l.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "btn_select_l@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "btn_select_l@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Demo/Resources/NohanaImagePicker.xcassets/btn_select_l.imageset/btn_select_l@2x.png b/Demo/Resources/NohanaImagePicker.xcassets/btn_select_l.imageset/btn_select_l@2x.png deleted file mode 100644 index 3d1cb8166a3d0b6219217df766e19a037a908f43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1777 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 diff --git a/Demo/Resources/NohanaImagePicker.xcassets/btn_selected_l.imageset/Contents.json b/Demo/Resources/NohanaImagePicker.xcassets/btn_selected_l.imageset/Contents.json deleted file mode 100644 index 8d2c67f..0000000 --- a/Demo/Resources/NohanaImagePicker.xcassets/btn_selected_l.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "btn_selected_l@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "btn_selected_l@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Demo/Resources/NohanaImagePicker.xcassets/btn_selected_l.imageset/btn_selected_l@2x.png b/Demo/Resources/NohanaImagePicker.xcassets/btn_selected_l.imageset/btn_selected_l@2x.png deleted file mode 100644 index f5c27b944ea8a72ff032ac75e93bbb950a0e6403..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1913 zcmeHGi#yZ%AO9@mHgc_$%0W6us7}9_%+svAxP88`x zi4$@yY~Ss>jm~tT7@N&7$tJTK&U&8TpYeO1_xt^NUhnJkyr1{G;7GtB1HBD;0009Y z)WIM%?)#=X8fyFJNrrCj`$t(QYT=b|I7b2fQCRm1r$&LnQ2k?!KZq_1rO_^si1^m z!kWO#RT9y{K*P|{0xF_}VayWZrApDt%1WP*P()izWSB4~a8iY6PCoW>Br2bZ$m>-X znlmOa3yP_gm1VJPw2c#8L^I0m1ti9LSdcG~aWN2*#IT_8bEJxCiF~}B^9L5vD`9M) z@v|hd@s810EKLUssry(!{EV)#D;P*KkD{h)A%5mp#l*aP{53ZL10e`>{X2bI2r!Ze zo6rQ=^KyPSHxUgXa5TMEPBeF}qjU5!8qy)chS0b=I?>Hd!a^E_6i`S7EyEEa>3~?q z?HIj;hBS)dHB^44R5A6Mn^*+tQpYnEm7nKioMPCBGM*-p^SXISMUdg`KAV1FiA*_L zKmkOC>7rt$h;Bq?S+RsTnQE?mGzLvY5MlFP-hU-Bo=o+nhnIw-8|U-_xpGb{8*3Yh z#z0y`cx?~w24y@IPd6m9HnW69t(^0PR4p9c5Jy9jnU>ANVRN!Eneq#su6K)R(LY(T zsGM0|S(dBjaCBV~b8Y`5Nuio&OrUXe9TLM#s+>_SEx>|8{I{sNYDrG#7Z6}0GIIl6 zkk>VOg#eq8nd{YOfBt6Jw~qA`Txq2=cWyq0~h83Mx1r0DY5hieQi2Q~{uo=yTBH7z(=k zA;H}=a6OpQ)+u}I?!Fi8?`x)2<$#Qh^-N9NeO?spYW_8LraW{I8#-7w=y<((Ff=Vm zJE`qrVq5%Zcw4jb^9WkWan5$=?&DOXKOp*ry%`$va*B_07&~)0&o=u>S=+D|H)Fo% z7p`?;;=EZ@PJ4T5y_YO0#k>L5Q`#Rdb#^Q1%+U%aR8k5fUwd3v6dFFt3Or_++&)%6fK0%DIUjA$r z+nnNROM8FuW7EL%&=V0&88K0Tk8D0AP7XefU)NL-XP%sWJd&ameXMhJ$K9LR`R-jM zzN2lDW0$fptMR5eJgsSKee3=>JlbU`JtNC%Yr>q--RE`Q{$@fOUQI>MY6NnNn`i$8 zOkIv;47!Ezz+2-X*5dHh(=i`B0_;VXhLc*mbWOJf5?`|Hw;gk)P0OnNszN{hJ+*p3 zdOx}5XJOFc3;tc(qM7AdJ5%~X*s66gR(BNM+HX=<5XI0xI5@!2!_w_qDWR7zEO&!jBGEXJ+;YE5x!`_4Idc_if5M%6DNDB- zg`h9I1ttC|*`;OU7`uQ-Mm!DasCEwNuMT~WEmIW@0lU+)?7B~12MoL77sK}M-x1t4 zyHU2OQQ+t7vT$G9@tIqQSZ7RJv+ZGe&vOH2`1a|kMj^hzbxEt;QtG>%U-|)_@v=ic zi@&F_=`yF&^m@j-amOI-vq^u>BgV!b^>-US*~r#q4>$x*(RR4p4)01mU_BE@Bt<3L zA`jeLR$Q#-N!T{OdcI$g`vqT>>sk!$X`s>0$(Dl=QtMBdKUx4l>Fun&b1-#Vv5dYfNcxI4|5R&v+>j$UK6KkWRAr!n`@G4bv- zRpFWqYgswIq6w5k$cPEQK(8s1WWDPL56@lw?T%vlRmW3svB~KdzJA3oVvWg`{qu|5 Z9sfv*D=W58AFBTn_;>{zeCl~7^Iz{V(D?uW diff --git a/Demo/Resources/NohanaImagePicker.xcassets/btn_selected_l.imageset/btn_selected_l@3x.png b/Demo/Resources/NohanaImagePicker.xcassets/btn_selected_l.imageset/btn_selected_l@3x.png deleted file mode 100644 index 343033034c8b813c58ba15fa35f98ce743821128..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1686 zcmeH``BM^j7{8=_&ZJDhVm6<1%Azq}G zY2Ie0X_g&=ff<5;8);f92wr$`y7YhS%=^5bdER+vo*&+M?;sBc=xLj20|4}3P+zo? zm|xO_DEqFK5s?yVXT1F`XeRKB#jx~f=}f17zBkuP#*o=apR zj_?_Gx_L-g^L4sOB3~F1)_$FC91_<3JKew*RIvq5S%ONjZ2sfewc**e71`|M0yU4K z&6;{LGW#mCM`dz>mPgSUoGO>fmq+JbKOS&hkflsGUau~L zPa2zhlSPK`7yB9fQki^ZZ0>C~S#4^OKEN*-oA1shtN)mPmqXSNEHQq}zt5qp5iSkl zd-dqNqH$4=Tp^|N3MWJq;SvkqtN(>Zlqtj$qF&(=`^zL@a^X`hMN^@W;*RR9XLk@A$1v}MM zHkul=l5|rsPX)DQX&IZAO_#f`Y4b~Crb((a>wWZ&_%ORJn^uu$`ns);PQzDjWf>Z@ z#fb6~tam%%F5OM^<-G8}VN(_vhiZzb;Wp|eb@Li};JJzRc6)V$1B)y+mX4^MaWx)O zCs#!2;~OZjqA2)zvn_WlZJlrSd@boaG724j>*DC}Aux@qt5NX47CuU*I5=QMQGsb4 zVX2N?o_%UN$SlW5ooGawcd=FwW_P@*$$FIZT;)b%i)(|SobkZ4xY`)USk?P##A&qX zT$MY?>l3vQL{Aka2k#98(vaqkZLa71#AeSOTx~pmR<{*m5oc~=llMS%^RGp@X+vUxlE{2r1M*PuG5~^?i{VWq+;PbB9?SS_y%(JqTC@Lx<8&xkvp>l9;hpCAYzqQ`UM&ldo z0~YOAkC2I29KolZ<%8;MaAQ{z4?-mC_#Y zpvAHZY)GlstoQvj8a_^06Cp6p+#8c1?MhP#~X`fksRfuBS|A(w|G%r;ou z>y*#Y)jAn{^Z;VN^t+{a%-G%oOXSllTcO6uB~MSLiyyEs>tnb=oYR=Bb*3SWw#B0j zk@MwaYmFkrYMdT_;$GYpNvIRA#G@jyQgNX$>aL4xV6J}mIMt~Orf=-uV@~&D-1PJy zH?HC6ogXOi#TZMlf*-&c=V-#2>}y@;nwamjAxW{%5jY+g!5h(@i{5GLl-f zxl!UsPpHv;-@f)l?C&&N*ftAHggLXq-JsV#b{yGs@OS{N;0^;s6&^|IU^$X@_k_;Lt?1`7L!eb@vZ6{U}}IN^CW5>@e Yg6Hv%>7NsCC|?%9{0{rpd7rxeAG6C%^8f$< diff --git a/Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/Contents.json b/Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/Contents.json deleted file mode 100644 index 6f14b6e..0000000 --- a/Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "icon_photosize_alert_s@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "icon_photosize_alert_s@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@2x.png b/Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@2x.png deleted file mode 100644 index 34f67eaa9de338946ff774779c760898179aecb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1518 zcmX|A2{fBo82zcVCAGJd)(mRPk*eCd3@XGB+o04|#?rA))tRblP)ks?l{RUM=_1tF z8a1WbQd?|kP*KZ}Cf24YVvQw4%rnlJch0--zWcrJ{@?fB`R_V9Sc!`%ia`)0jdILE-OZd}n_H>7%2gz;MrMWo0EbAtp5*3%)fwJ8NNKu@?dbv^F(3 zTADOB)`L)JXedx}Gw$SMqyh)vZ)j+k92cD&8$CTe4N}_L+5m#SLPA2AOeWwd@z|)S zC_sjWh5&-D6%-Tz!Q=7t(Gd!T0yr2i%l`ts1H$EU{}Xmi_Q?MTikz63=;-K3OH0FN zr-Lh!mX_}A?F9$Cyu1K{dIkpvn;PDs(P*$OD=Pzti@iBKJPZgJEEY>vRu+leeOA!8 zjj56Cg)_dc4h8s}j@IU>iLvFSC42MpVSb*S~Il+p;F(Dt&Z1cSi^wARx>~v ztIDKhrf1*H%Gi<5UqncoY9r2BsvbdI{M?_I*@GgtGxQ==9hpuMrFMU}d>Dy!gW!XP`J~(iwrpAW9aMjGK-ZJ7wFm2?k zl^czUZ1<&Pi4+HfshU-InpI&R-)RtQ@g270WDm0o5d#n=ok@NlLqvNxu=e4?~2 z>Duq%ocSNKB{BqV&J+>-*S_vPhIyABiNp1~leK0rfe(E=Jpvxr64bFq%83^)pHFYu TY0buhe*wZ+I-p7BzDfTA`6v3^ diff --git a/Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@3x.png b/Demo/Resources/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@3x.png deleted file mode 100644 index 80f020347118a1b59bf3b974f7b3501cf56df479..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3878 zcmV+>583dEP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 P00000NkvXXu0mjfO0$mL diff --git a/Demo/Resources/en.lproj/NohanaImagePicker.strings b/Demo/Resources/en.lproj/NohanaImagePicker.strings deleted file mode 100644 index 3ff0f81..0000000 --- a/Demo/Resources/en.lproj/NohanaImagePicker.strings +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2016 nohana, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -"albumlist.title" = "Photos📗"; -"albumlist.empty.message" = "No Photos🤔"; -"albumlist.empty.description" = "Take some photos with Camera app."; -"albumlist.moment.title" = "Moment"; -"toolbar.title.nolimit" = "Selected : %ld"; -"toolbar.title.haslimit" = "Selected Items: %ld / %ld"; diff --git a/Demo/Resources/ja.lproj/NohanaImagePicker.strings b/Demo/Resources/ja.lproj/NohanaImagePicker.strings deleted file mode 100644 index 3e058d9..0000000 --- a/Demo/Resources/ja.lproj/NohanaImagePicker.strings +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright (C) 2016 nohana, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -"albumlist.title" = "アルバム📗"; -"albumlist.empty.message" = "アルバムに\n写真がありません🤔"; -"albumlist.empty.description" = "カメラで写真を撮影しましょう"; -"albumlist.moment.title" = "日付から選択"; -"toolbar.title.nolimit" = "%ld枚選択中"; -"toolbar.title.haslimit" = "%ld枚選択中(最大%ld枚)"; diff --git a/NohanaImagePicker.xcodeproj/project.pbxproj b/NohanaImagePicker.xcodeproj/project.pbxproj index 032d76c..895cc51 100644 --- a/NohanaImagePicker.xcodeproj/project.pbxproj +++ b/NohanaImagePicker.xcodeproj/project.pbxproj @@ -7,9 +7,7 @@ objects = { /* Begin PBXBuildFile section */ - 3569CAA81EC1918E000C41C0 /* NohanaImagePicker.strings in Resources */ = {isa = PBXBuildFile; fileRef = 3569CAA41EC1918E000C41C0 /* NohanaImagePicker.strings */; }; 3569CAA91EC1918E000C41C0 /* NohanaImagePicker.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3569CAA61EC1918E000C41C0 /* NohanaImagePicker.xcassets */; }; - F202573A1C7343D20069B33A /* ImageName.swift in Sources */ = {isa = PBXBuildFile; fileRef = F20257391C7343D20069B33A /* ImageName.swift */; }; F202573C1C7418920069B33A /* PickedAssetList.swift in Sources */ = {isa = PBXBuildFile; fileRef = F202573B1C7418920069B33A /* PickedAssetList.swift */; }; F208E5541CD7370B00FFC9F6 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = F208E5531CD7370B00FFC9F6 /* AppDelegate.swift */; }; F208E5591CD7370B00FFC9F6 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F208E5571CD7370B00FFC9F6 /* Main.storyboard */; }; @@ -30,7 +28,6 @@ F25C69881CA23A0A005935D6 /* MomentCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = F25C69871CA23A0A005935D6 /* MomentCell.swift */; }; F25C69901CA27311005935D6 /* EmptyIndicatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F25C698F1CA27311005935D6 /* EmptyIndicatable.swift */; }; F25C69921CA28728005935D6 /* AlbumListEmptyIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = F25C69911CA28728005935D6 /* AlbumListEmptyIndicator.swift */; }; - F25C699B1CA2B79A005935D6 /* ColorConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = F25C699A1CA2B79A005935D6 /* ColorConfig.swift */; }; F26775DE1C701FA7002E786C /* ItemList.swift in Sources */ = {isa = PBXBuildFile; fileRef = F26775DD1C701FA7002E786C /* ItemList.swift */; }; F26775E11C7046C7002E786C /* ExpandingAnimationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F26775E01C7046C7002E786C /* ExpandingAnimationController.swift */; }; F26775E51C70574F002E786C /* AnimatableNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = F26775E41C70574F002E786C /* AnimatableNavigationController.swift */; }; @@ -73,11 +70,8 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 3569CAA51EC1918E000C41C0 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/NohanaImagePicker.strings; sourceTree = ""; }; 3569CAA61EC1918E000C41C0 /* NohanaImagePicker.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = NohanaImagePicker.xcassets; sourceTree = ""; }; - 3569CAA71EC1918E000C41C0 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/NohanaImagePicker.strings; sourceTree = ""; }; 3590F1F51EC1A79400F32E06 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/NohanaImagePicker.strings; sourceTree = ""; }; - F20257391C7343D20069B33A /* ImageName.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageName.swift; sourceTree = ""; }; F202573B1C7418920069B33A /* PickedAssetList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PickedAssetList.swift; sourceTree = ""; }; F208E5511CD7370B00FFC9F6 /* Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Demo.app; sourceTree = BUILT_PRODUCTS_DIR; }; F208E5531CD7370B00FFC9F6 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -98,7 +92,6 @@ F25C69871CA23A0A005935D6 /* MomentCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MomentCell.swift; sourceTree = ""; }; F25C698F1CA27311005935D6 /* EmptyIndicatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmptyIndicatable.swift; sourceTree = ""; }; F25C69911CA28728005935D6 /* AlbumListEmptyIndicator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AlbumListEmptyIndicator.swift; sourceTree = ""; }; - F25C699A1CA2B79A005935D6 /* ColorConfig.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorConfig.swift; sourceTree = ""; }; F26775DD1C701FA7002E786C /* ItemList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemList.swift; sourceTree = ""; }; F26775E01C7046C7002E786C /* ExpandingAnimationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ExpandingAnimationController.swift; sourceTree = ""; }; F26775E41C70574F002E786C /* AnimatableNavigationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AnimatableNavigationController.swift; sourceTree = ""; }; @@ -141,7 +134,6 @@ 3569CAA31EC1918E000C41C0 /* Resources */ = { isa = PBXGroup; children = ( - 3569CAA41EC1918E000C41C0 /* NohanaImagePicker.strings */, 3569CAA61EC1918E000C41C0 /* NohanaImagePicker.xcassets */, ); path = Resources; @@ -210,12 +202,10 @@ children = ( F26775DD1C701FA7002E786C /* ItemList.swift */, F202573B1C7418920069B33A /* PickedAssetList.swift */, - F20257391C7343D20069B33A /* ImageName.swift */, F26775E71C7073CD002E786C /* Size.swift */, F2DA29761C7749D600B0A8E3 /* NotificationInfo.swift */, F25C698F1CA27311005935D6 /* EmptyIndicatable.swift */, F23CC89D1CB745C800BCE443 /* ActivityIndicatable.swift */, - F25C699A1CA2B79A005935D6 /* ColorConfig.swift */, ); name = Common; sourceTree = ""; @@ -366,7 +356,6 @@ 3569CAA91EC1918E000C41C0 /* NohanaImagePicker.xcassets in Resources */, F208E55B1CD7370B00FFC9F6 /* Assets.xcassets in Resources */, F208E5591CD7370B00FFC9F6 /* Main.storyboard in Resources */, - 3569CAA81EC1918E000C41C0 /* NohanaImagePicker.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -404,7 +393,6 @@ F25C10C21C8ED9BF007453C3 /* MomentViewController.swift in Sources */, F25C69881CA23A0A005935D6 /* MomentCell.swift in Sources */, F2FE1F781C901D9400FDBE7B /* MomentSectionHeaderView.swift in Sources */, - F202573A1C7343D20069B33A /* ImageName.swift in Sources */, F23554281C69D5DB00796DCA /* NohanaImagePickerController.swift in Sources */, F25C69921CA28728005935D6 /* AlbumListEmptyIndicator.swift in Sources */, F2131F431C79615700797887 /* SwipeInteractionController.swift in Sources */, @@ -419,7 +407,6 @@ F2DF3B2B1C6CC4DB00C1C0E4 /* AssetDetailListViewController.swift in Sources */, F218D7D61C6B3D22001FCED1 /* PhotoKitAlbumList.swift in Sources */, F24EB6901C68AEED0002EC86 /* AlbumListViewController.swift in Sources */, - F25C699B1CA2B79A005935D6 /* ColorConfig.swift in Sources */, F28F4AC31C6C49EE00B7D725 /* PhotoKitAssetList.swift in Sources */, F26775EA1C71645A002E786C /* ContractingAnimationController.swift in Sources */, ); @@ -436,15 +423,6 @@ /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ - 3569CAA41EC1918E000C41C0 /* NohanaImagePicker.strings */ = { - isa = PBXVariantGroup; - children = ( - 3569CAA51EC1918E000C41C0 /* en */, - 3569CAA71EC1918E000C41C0 /* ja */, - ); - name = NohanaImagePicker.strings; - sourceTree = ""; - }; F208E5571CD7370B00FFC9F6 /* Main.storyboard */ = { isa = PBXVariantGroup; children = ( diff --git a/NohanaImagePicker/AlbumListEmptyIndicator.swift b/NohanaImagePicker/AlbumListEmptyIndicator.swift index 9619ef7..085b1ec 100644 --- a/NohanaImagePicker/AlbumListEmptyIndicator.swift +++ b/NohanaImagePicker/AlbumListEmptyIndicator.swift @@ -16,21 +16,21 @@ class AlbumListEmptyIndicator: UILabel { - init(message: String, description: String, frame: CGRect) { + init(message: String, description: String, frame: CGRect, config: NohanaImagePickerController.Config) { super.init(frame: frame) let centerStyle = NSMutableParagraphStyle() centerStyle.alignment = NSTextAlignment.center let messageAttributes = [ - NSForegroundColorAttributeName : ColorConfig.emptyIndicator, + NSForegroundColorAttributeName : config.color.empty, NSFontAttributeName : UIFont.systemFont(ofSize: 26), NSParagraphStyleAttributeName : centerStyle ] let messageText = NSAttributedString(string: message, attributes: messageAttributes) let descriptionAttributes = [ - NSForegroundColorAttributeName : ColorConfig.emptyIndicator, + NSForegroundColorAttributeName : config.color.empty, NSFontAttributeName : UIFont.systemFont(ofSize: 14), NSParagraphStyleAttributeName : centerStyle ] diff --git a/NohanaImagePicker/AlbumListViewController.swift b/NohanaImagePicker/AlbumListViewController.swift index 2d46690..1ebf67f 100644 --- a/NohanaImagePicker/AlbumListViewController.swift +++ b/NohanaImagePicker/AlbumListViewController.swift @@ -47,7 +47,7 @@ class AlbumListViewController: UITableViewController, EmptyIndicatable, Activity } setUpEmptyIndicator() setUpActivityIndicator() - self.view.backgroundColor = ColorConfig.backgroundColor + self.view.backgroundColor = nohanaImagePickerController?.config.color.background } deinit { @@ -135,10 +135,11 @@ class AlbumListViewController: UITableViewController, EmptyIndicatable, Activity switch sectionType { case .moment: - guard let cell = tableView.dequeueReusableCell(withIdentifier: "MomentAlbumCell") as? AlbumCell else { + guard let cell = tableView.dequeueReusableCell(withIdentifier: "MomentAlbumCell") as? MomentCell else { fatalError("failed to dequeueReusableCellWithIdentifier(\"MomentAlbumCell\")") } if let nohanaImagePickerController = nohanaImagePickerController { + cell.config = nohanaImagePickerController.config cell.titleLabel?.text = NSLocalizedString("albumlist.moment.title", tableName: "NohanaImagePicker", bundle: nohanaImagePickerController.assetBundle, comment: "") } return cell @@ -222,7 +223,8 @@ class AlbumListViewController: UITableViewController, EmptyIndicatable, Activity emptyIndicator = AlbumListEmptyIndicator( message: NSLocalizedString("albumlist.empty.message", tableName: "NohanaImagePicker", bundle: nohanaImagePickerController.assetBundle, comment: ""), description: NSLocalizedString("albumlist.empty.description", tableName: "NohanaImagePicker", bundle: nohanaImagePickerController.assetBundle, comment: ""), - frame: frame) + frame: frame, + config: nohanaImagePickerController.config) } func isEmpty() -> Bool { diff --git a/NohanaImagePicker/AssetCell.swift b/NohanaImagePicker/AssetCell.swift index 0215bdf..a0bd715 100644 --- a/NohanaImagePicker/AssetCell.swift +++ b/NohanaImagePicker/AssetCell.swift @@ -27,12 +27,11 @@ class AssetCell: UICollectionViewCell { override func willMove(toSuperview newSuperview: UIView?) { super.willMove(toSuperview: newSuperview) if let nohanaImagePickerController = nohanaImagePickerController { - pickButton.setImage( - UIImage(named: ImageName.AssetCell.PickButton.SizeM.dropped, in: nohanaImagePickerController.assetBundle, compatibleWith: nil), - for: UIControlState()) - pickButton.setImage( - UIImage(named: ImageName.AssetCell.PickButton.SizeM.picked, in: nohanaImagePickerController.assetBundle, compatibleWith: nil), - for: .selected) + let droppedImage: UIImage? = nohanaImagePickerController.config.image.droppedSmall ?? UIImage(named: "btn_select_m", in: nohanaImagePickerController.assetBundle, compatibleWith: nil) + let pickedImage: UIImage? = nohanaImagePickerController.config.image.pickedSmall ?? UIImage(named: "btn_selected_m", in: nohanaImagePickerController.assetBundle, compatibleWith: nil) + + pickButton.setImage(droppedImage, for: UIControlState()) + pickButton.setImage(pickedImage, for: .selected) } } diff --git a/NohanaImagePicker/AssetDetailListViewController.swift b/NohanaImagePicker/AssetDetailListViewController.swift index 01afa45..a5c6d72 100644 --- a/NohanaImagePicker/AssetDetailListViewController.swift +++ b/NohanaImagePicker/AssetDetailListViewController.swift @@ -35,12 +35,11 @@ class AssetDetailListViewController: AssetListViewController { override func viewDidLoad() { super.viewDidLoad() if let nohanaImagePickerController = nohanaImagePickerController { - pickButton.setImage( - UIImage(named: ImageName.AssetCell.PickButton.SizeL.dropped, in: nohanaImagePickerController.assetBundle, compatibleWith: nil), - for: UIControlState()) - pickButton.setImage( - UIImage(named: ImageName.AssetCell.PickButton.SizeL.picked, in: nohanaImagePickerController.assetBundle, compatibleWith: nil), - for: .selected) + let droppedImage: UIImage? = nohanaImagePickerController.config.image.droppedLarge ?? UIImage(named: "btn_select_l", in: nohanaImagePickerController.assetBundle, compatibleWith: nil) + let pickedImage: UIImage? = nohanaImagePickerController.config.image.pickedLarge ?? UIImage(named: "btn_selected_l", in: nohanaImagePickerController.assetBundle, compatibleWith: nil) + + pickButton.setImage(droppedImage, for: UIControlState()) + pickButton.setImage(pickedImage, for: .selected) } } diff --git a/NohanaImagePicker/AssetListViewController.swift b/NohanaImagePicker/AssetListViewController.swift index 6aa1cbd..b8fb615 100644 --- a/NohanaImagePicker/AssetListViewController.swift +++ b/NohanaImagePicker/AssetListViewController.swift @@ -27,7 +27,7 @@ class AssetListViewController: UICollectionViewController { updateTitle() setUpToolbarItems() addPickPhotoKitAssetNotificationObservers() - self.view.backgroundColor = ColorConfig.backgroundColor + self.view.backgroundColor = nohanaImagePickerController?.config.color.background } var cellSize: CGSize { diff --git a/NohanaImagePicker/ColorConfig.swift b/NohanaImagePicker/ColorConfig.swift deleted file mode 100644 index b133456..0000000 --- a/NohanaImagePicker/ColorConfig.swift +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2016 nohana, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -public struct ColorConfig { - public static var backgroundColor = UIColor.white - public static var emptyIndicator = UIColor(red: 0x88/0xff, green: 0x88/0xff, blue: 0x88/0xff, alpha: 1) - - public struct AlbumList { - public static var momentCellSeparator = UIColor(red: 0xbb/0xff, green: 0xbb/0xff, blue: 0xbb/0xff, alpha: 1) - } -} diff --git a/NohanaImagePicker/ImageName.swift b/NohanaImagePicker/ImageName.swift deleted file mode 100644 index 9f54b81..0000000 --- a/NohanaImagePicker/ImageName.swift +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (C) 2016 nohana, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -struct ImageName { - struct AssetCell { - struct PickButton { - struct SizeM { - static let picked = "btn_selected_m" - static let dropped = "btn_select_m" - } - struct SizeL { - static let picked = "btn_selected_l" - static let dropped = "btn_select_l" - } - } - } -} \ No newline at end of file diff --git a/NohanaImagePicker/MomentCell.swift b/NohanaImagePicker/MomentCell.swift index eec40d4..7f5208d 100644 --- a/NohanaImagePicker/MomentCell.swift +++ b/NohanaImagePicker/MomentCell.swift @@ -17,11 +17,12 @@ import UIKit class MomentCell: AlbumCell { + var config: NohanaImagePickerController.Config! override func draw(_ rect: CGRect) { super.draw(rect) let lineWidth: CGFloat = 1 / UIScreen.main.scale - ColorConfig.AlbumList.momentCellSeparator.setFill() + config.color.separator.setFill() UIRectFill(CGRect(x: 16, y: frame.size.height - lineWidth, width: frame.size.width, height:lineWidth)) } diff --git a/NohanaImagePicker/NohanaImagePicker.storyboard b/NohanaImagePicker/NohanaImagePicker.storyboard index c8fb638..029e46e 100644 --- a/NohanaImagePicker/NohanaImagePicker.storyboard +++ b/NohanaImagePicker/NohanaImagePicker.storyboard @@ -1,9 +1,13 @@ - - + + + + + - + + @@ -13,10 +17,10 @@ - + - + @@ -35,7 +39,7 @@ - + @@ -47,7 +51,7 @@ - + @@ -55,7 +59,7 @@ - + @@ -67,7 +71,7 @@ - + @@ -77,7 +81,7 @@ - + @@ -110,7 +114,7 @@ - + @@ -119,7 +123,7 @@ - + @@ -130,7 +134,7 @@ - @@ -168,7 +170,7 @@ - + @@ -188,7 +190,7 @@ - + @@ -205,7 +207,7 @@ - + @@ -234,7 +236,6 @@ - @@ -261,7 +262,6 @@ - @@ -381,7 +379,7 @@ - + - + @@ -406,7 +404,7 @@ - + @@ -447,15 +445,11 @@ - + - - - - + - diff --git a/NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/Contents.json b/NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/Contents.json deleted file mode 100644 index 6f14b6e..0000000 --- a/NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "icon_photosize_alert_s@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "icon_photosize_alert_s@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@2x.png b/NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@2x.png deleted file mode 100644 index 34f67eaa9de338946ff774779c760898179aecb8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1518 zcmX|A2{fBo82zcVCAGJd)(mRPk*eCd3@XGB+o04|#?rA))tRblP)ks?l{RUM=_1tF z8a1WbQd?|kP*KZ}Cf24YVvQw4%rnlJch0--zWcrJ{@?fB`R_V9Sc!`%ia`)0jdILE-OZd}n_H>7%2gz;MrMWo0EbAtp5*3%)fwJ8NNKu@?dbv^F(3 zTADOB)`L)JXedx}Gw$SMqyh)vZ)j+k92cD&8$CTe4N}_L+5m#SLPA2AOeWwd@z|)S zC_sjWh5&-D6%-Tz!Q=7t(Gd!T0yr2i%l`ts1H$EU{}Xmi_Q?MTikz63=;-K3OH0FN zr-Lh!mX_}A?F9$Cyu1K{dIkpvn;PDs(P*$OD=Pzti@iBKJPZgJEEY>vRu+leeOA!8 zjj56Cg)_dc4h8s}j@IU>iLvFSC42MpVSb*S~Il+p;F(Dt&Z1cSi^wARx>~v ztIDKhrf1*H%Gi<5UqncoY9r2BsvbdI{M?_I*@GgtGxQ==9hpuMrFMU}d>Dy!gW!XP`J~(iwrpAW9aMjGK-ZJ7wFm2?k zl^czUZ1<&Pi4+HfshU-InpI&R-)RtQ@g270WDm0o5d#n=ok@NlLqvNxu=e4?~2 z>Duq%ocSNKB{BqV&J+>-*S_vPhIyABiNp1~leK0rfe(E=Jpvxr64bFq%83^)pHFYu TY0buhe*wZ+I-p7BzDfTA`6v3^ diff --git a/NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@3x.png b/NohanaImagePicker/NohanaImagePicker.xcassets/icon_photosize_alert_s.imageset/icon_photosize_alert_s@3x.png deleted file mode 100644 index 80f020347118a1b59bf3b974f7b3501cf56df479..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3878 zcmV+>583dEP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 P00000NkvXXu0mjfO0$mL diff --git a/NohanaImagePicker/NohanaImagePickerController.swift b/NohanaImagePicker/NohanaImagePickerController.swift index ef15a5c..9639d47 100644 --- a/NohanaImagePicker/NohanaImagePickerController.swift +++ b/NohanaImagePicker/NohanaImagePickerController.swift @@ -39,7 +39,7 @@ public enum MediaType: Int { open class NohanaImagePickerController: UIViewController { - open var maximumNumberOfSelection: Int = 21 // set 0 to set no limit + open var maximumNumberOfSelection: Int = 21 // set 0 to no limit open var numberOfColumnsInPortrait: Int = 4 open var numberOfColumnsInLandscape: Int = 7 open weak var delegate: NohanaImagePickerControllerDelegate? @@ -49,15 +49,15 @@ open class NohanaImagePickerController: UIViewController { open var canPickAsset = { (asset:Asset) -> Bool in return true } - open lazy var assetBundle: Bundle = self.selectAssetBundle() - func selectAssetBundle () -> Bundle { + open var config: Config = Config() + + lazy var assetBundle:Bundle = { let bundle = Bundle(for: type(of: self)) if let path = bundle.path(forResource: "NohanaImagePicker", ofType: "bundle") { return Bundle(path: path)! } return bundle - } - + }() let pickedAssetList: PickedAssetList let mediaType: MediaType let enableExpandingPhotoAnimation: Bool @@ -101,7 +101,7 @@ open class NohanaImagePickerController: UIViewController { super.viewDidLoad() // show albumListViewController - let storyboard = UIStoryboard(name: "NohanaImagePicker", bundle: selectAssetBundle()) + let storyboard = UIStoryboard(name: "NohanaImagePicker", bundle: assetBundle) let viewControllerId = enableExpandingPhotoAnimation ? "EnableAnimationNavigationController" : "DisableAnimationNavigationController" guard let navigationController = storyboard.instantiateViewController(withIdentifier: viewControllerId) as? UINavigationController else { fatalError("navigationController init failed.") @@ -138,3 +138,24 @@ open class NohanaImagePickerController: UIViewController { } } +extension NohanaImagePickerController { + public struct Config { + public struct Color { + public var background: UIColor = .white + public var empty: UIColor = UIColor(red: 0x88/0xff, green: 0x88/0xff, blue: 0x88/0xff, alpha: 1) + public var separator: UIColor = UIColor(red: 0xbb/0xff, green: 0xbb/0xff, blue: 0xbb/0xff, alpha: 1) + public var picked: UIColor = UIColor(red: 158/0xff, green: 197/0xff, blue: 46/0xff, alpha: 1) + public var dropped: UIColor = .red + } + public var color: Color = Color() + + public struct Image { + public var pickedSmall: UIImage? + public var pickedLarge: UIImage? + public var droppedSmall: UIImage? + public var droppedLarge: UIImage? + } + public var image: Image = Image() + } + +} From 97f6814c1d78a02934fb475b836aa0662eea8a13 Mon Sep 17 00:00:00 2001 From: haranicle Date: Fri, 12 May 2017 03:23:57 +0900 Subject: [PATCH 07/12] fix --- NohanaImagePicker/NohanaImagePickerController.swift | 2 -- 1 file changed, 2 deletions(-) diff --git a/NohanaImagePicker/NohanaImagePickerController.swift b/NohanaImagePicker/NohanaImagePickerController.swift index 9639d47..ee7ea18 100644 --- a/NohanaImagePicker/NohanaImagePickerController.swift +++ b/NohanaImagePicker/NohanaImagePickerController.swift @@ -144,8 +144,6 @@ extension NohanaImagePickerController { public var background: UIColor = .white public var empty: UIColor = UIColor(red: 0x88/0xff, green: 0x88/0xff, blue: 0x88/0xff, alpha: 1) public var separator: UIColor = UIColor(red: 0xbb/0xff, green: 0xbb/0xff, blue: 0xbb/0xff, alpha: 1) - public var picked: UIColor = UIColor(red: 158/0xff, green: 197/0xff, blue: 46/0xff, alpha: 1) - public var dropped: UIColor = .red } public var color: Color = Color() From dd9017ec9eeb86c98be65136441815b37a87074a Mon Sep 17 00:00:00 2001 From: haranicle Date: Sat, 20 May 2017 21:56:45 +0900 Subject: [PATCH 08/12] fix label constraints --- NohanaImagePicker/NohanaImagePicker.storyboard | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/NohanaImagePicker/NohanaImagePicker.storyboard b/NohanaImagePicker/NohanaImagePicker.storyboard index 029e46e..32abe25 100644 --- a/NohanaImagePicker/NohanaImagePicker.storyboard +++ b/NohanaImagePicker/NohanaImagePicker.storyboard @@ -34,10 +34,7 @@ From 9b66207137c800ea4da378d0271255b3111dc090 Mon Sep 17 00:00:00 2001 From: haranicle Date: Sat, 17 Jun 2017 21:25:23 +0900 Subject: [PATCH 09/12] configure strings --- Demo/DemoListViewController.swift | 4 ++-- .../AlbumListViewController.swift | 12 +++++------ .../NohanaImagePickerController.swift | 21 +++++++++++++------ 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/Demo/DemoListViewController.swift b/Demo/DemoListViewController.swift index bc8f06e..e21bb0d 100644 --- a/Demo/DemoListViewController.swift +++ b/Demo/DemoListViewController.swift @@ -130,11 +130,11 @@ class DemoListViewController: UITableViewController, NohanaImagePickerController func showCustomUIPicker() { let picker = NohanaImagePickerController() picker.delegate = self - picker.config.color.background = .lightGray + picker.config.color.background = .darkGray + picker.config.strings.albumListTitle = "🏞" present(picker, animated: true, completion: nil) } - // MARK: - NohanaImagePickerControllerDelegate func nohanaImagePickerDidCancel(_ picker: NohanaImagePickerController) { diff --git a/NohanaImagePicker/AlbumListViewController.swift b/NohanaImagePicker/AlbumListViewController.swift index 1ebf67f..5f609d3 100644 --- a/NohanaImagePicker/AlbumListViewController.swift +++ b/NohanaImagePicker/AlbumListViewController.swift @@ -41,7 +41,7 @@ class AlbumListViewController: UITableViewController, EmptyIndicatable, Activity override func viewDidLoad() { super.viewDidLoad() if let nohanaImagePickerController = nohanaImagePickerController { - title = NSLocalizedString("albumlist.title", tableName: "NohanaImagePicker", bundle: nohanaImagePickerController.assetBundle, comment: "") + title = nohanaImagePickerController.config.strings.albumListTitle ?? NSLocalizedString("albumlist.title", tableName: "NohanaImagePicker", bundle: nohanaImagePickerController.assetBundle, comment: "") setUpToolbarItems() navigationController?.setToolbarHidden(nohanaImagePickerController.toolbarHidden ,animated: false) } @@ -140,7 +140,7 @@ class AlbumListViewController: UITableViewController, EmptyIndicatable, Activity } if let nohanaImagePickerController = nohanaImagePickerController { cell.config = nohanaImagePickerController.config - cell.titleLabel?.text = NSLocalizedString("albumlist.moment.title", tableName: "NohanaImagePicker", bundle: nohanaImagePickerController.assetBundle, comment: "") + cell.titleLabel?.text = nohanaImagePickerController.config.strings.albumListMomentTitle ?? NSLocalizedString("albumlist.moment.title", tableName: "NohanaImagePicker", bundle: nohanaImagePickerController.assetBundle, comment: "") } return cell case .albums: @@ -221,8 +221,8 @@ class AlbumListViewController: UITableViewController, EmptyIndicatable, Activity return } emptyIndicator = AlbumListEmptyIndicator( - message: NSLocalizedString("albumlist.empty.message", tableName: "NohanaImagePicker", bundle: nohanaImagePickerController.assetBundle, comment: ""), - description: NSLocalizedString("albumlist.empty.description", tableName: "NohanaImagePicker", bundle: nohanaImagePickerController.assetBundle, comment: ""), + message: nohanaImagePickerController.config.strings.albumListEmptyMessage ?? NSLocalizedString("albumlist.empty.message", tableName: "NohanaImagePicker", bundle: nohanaImagePickerController.assetBundle, comment: ""), + description: nohanaImagePickerController.config.strings.albumListEmptyDescription ?? NSLocalizedString("albumlist.empty.description", tableName: "NohanaImagePicker", bundle: nohanaImagePickerController.assetBundle, comment: ""), frame: frame, config: nohanaImagePickerController.config) } @@ -274,11 +274,11 @@ extension UIViewController { return } if nohanaImagePickerController.maximumNumberOfSelection == 0 { - let title = String(format: NSLocalizedString("toolbar.title.nolimit", tableName: "NohanaImagePicker", bundle: nohanaImagePickerController.assetBundle, comment: ""), + let title = String(format: nohanaImagePickerController.config.strings.toolbarTitleNoLimit ?? NSLocalizedString("toolbar.title.nolimit", tableName: "NohanaImagePicker", bundle: nohanaImagePickerController.assetBundle, comment: ""), nohanaImagePickerController.pickedAssetList.count) infoButton.title = title } else { - let title = String(format: NSLocalizedString("toolbar.title.haslimit", tableName: "NohanaImagePicker", bundle: nohanaImagePickerController.assetBundle, comment: ""), + let title = String(format: nohanaImagePickerController.config.strings.toolbarTitleHasLimit ?? NSLocalizedString("toolbar.title.haslimit", tableName: "NohanaImagePicker", bundle: nohanaImagePickerController.assetBundle, comment: ""), nohanaImagePickerController.pickedAssetList.count, nohanaImagePickerController.maximumNumberOfSelection) infoButton.title = title diff --git a/NohanaImagePicker/NohanaImagePickerController.swift b/NohanaImagePicker/NohanaImagePickerController.swift index ee7ea18..552c40c 100644 --- a/NohanaImagePicker/NohanaImagePickerController.swift +++ b/NohanaImagePicker/NohanaImagePickerController.swift @@ -141,11 +141,11 @@ open class NohanaImagePickerController: UIViewController { extension NohanaImagePickerController { public struct Config { public struct Color { - public var background: UIColor = .white - public var empty: UIColor = UIColor(red: 0x88/0xff, green: 0x88/0xff, blue: 0x88/0xff, alpha: 1) - public var separator: UIColor = UIColor(red: 0xbb/0xff, green: 0xbb/0xff, blue: 0xbb/0xff, alpha: 1) + public var background = UIColor.white + public var empty = UIColor(red: 0x88/0xff, green: 0x88/0xff, blue: 0x88/0xff, alpha: 1) + public var separator = UIColor(red: 0xbb/0xff, green: 0xbb/0xff, blue: 0xbb/0xff, alpha: 1) } - public var color: Color = Color() + public var color = Color() public struct Image { public var pickedSmall: UIImage? @@ -153,7 +153,16 @@ extension NohanaImagePickerController { public var droppedSmall: UIImage? public var droppedLarge: UIImage? } - public var image: Image = Image() + public var image = Image() + + public struct Strings { + public var albumListTitle: String? + public var albumListMomentTitle: String? + public var albumListEmptyMessage: String? + public var albumListEmptyDescription: String? + public var toolbarTitleNoLimit: String? + public var toolbarTitleHasLimit: String? + } + public var strings = Strings() } - } From d1d65e9cf191dc3cf7e830580f4bfa165e459ab5 Mon Sep 17 00:00:00 2001 From: haranicle Date: Sat, 17 Jun 2017 21:52:54 +0900 Subject: [PATCH 10/12] configure color --- Demo/DemoListViewController.swift | 3 ++- NohanaImagePicker/AlbumListEmptyIndicator.swift | 4 ++-- NohanaImagePicker/AlbumListViewController.swift | 2 +- NohanaImagePicker/AssetListViewController.swift | 2 +- NohanaImagePicker/MomentCell.swift | 3 ++- NohanaImagePicker/NohanaImagePickerController.swift | 6 +++--- 6 files changed, 11 insertions(+), 9 deletions(-) diff --git a/Demo/DemoListViewController.swift b/Demo/DemoListViewController.swift index e21bb0d..77317bd 100644 --- a/Demo/DemoListViewController.swift +++ b/Demo/DemoListViewController.swift @@ -130,7 +130,8 @@ class DemoListViewController: UITableViewController, NohanaImagePickerController func showCustomUIPicker() { let picker = NohanaImagePickerController() picker.delegate = self - picker.config.color.background = .darkGray + picker.config.color.background = UIColor(red: 0xff/0xff, green: 0xcc/0xff, blue: 0xcc/0xff, alpha: 1) + picker.config.color.separator = .darkGray picker.config.strings.albumListTitle = "🏞" present(picker, animated: true, completion: nil) } diff --git a/NohanaImagePicker/AlbumListEmptyIndicator.swift b/NohanaImagePicker/AlbumListEmptyIndicator.swift index 085b1ec..5db4d3f 100644 --- a/NohanaImagePicker/AlbumListEmptyIndicator.swift +++ b/NohanaImagePicker/AlbumListEmptyIndicator.swift @@ -23,14 +23,14 @@ class AlbumListEmptyIndicator: UILabel { centerStyle.alignment = NSTextAlignment.center let messageAttributes = [ - NSForegroundColorAttributeName : config.color.empty, + NSForegroundColorAttributeName : config.color.empty ?? UIColor(red: 0x88/0xff, green: 0x88/0xff, blue: 0x88/0xff, alpha: 1), NSFontAttributeName : UIFont.systemFont(ofSize: 26), NSParagraphStyleAttributeName : centerStyle ] let messageText = NSAttributedString(string: message, attributes: messageAttributes) let descriptionAttributes = [ - NSForegroundColorAttributeName : config.color.empty, + NSForegroundColorAttributeName : config.color.empty ?? UIColor(red: 0x88/0xff, green: 0x88/0xff, blue: 0x88/0xff, alpha: 1), NSFontAttributeName : UIFont.systemFont(ofSize: 14), NSParagraphStyleAttributeName : centerStyle ] diff --git a/NohanaImagePicker/AlbumListViewController.swift b/NohanaImagePicker/AlbumListViewController.swift index 5f609d3..35db63b 100644 --- a/NohanaImagePicker/AlbumListViewController.swift +++ b/NohanaImagePicker/AlbumListViewController.swift @@ -41,13 +41,13 @@ class AlbumListViewController: UITableViewController, EmptyIndicatable, Activity override func viewDidLoad() { super.viewDidLoad() if let nohanaImagePickerController = nohanaImagePickerController { + view.backgroundColor = nohanaImagePickerController.config.color.background ?? .white title = nohanaImagePickerController.config.strings.albumListTitle ?? NSLocalizedString("albumlist.title", tableName: "NohanaImagePicker", bundle: nohanaImagePickerController.assetBundle, comment: "") setUpToolbarItems() navigationController?.setToolbarHidden(nohanaImagePickerController.toolbarHidden ,animated: false) } setUpEmptyIndicator() setUpActivityIndicator() - self.view.backgroundColor = nohanaImagePickerController?.config.color.background } deinit { diff --git a/NohanaImagePicker/AssetListViewController.swift b/NohanaImagePicker/AssetListViewController.swift index b8fb615..d9d9a5d 100644 --- a/NohanaImagePicker/AssetListViewController.swift +++ b/NohanaImagePicker/AssetListViewController.swift @@ -24,10 +24,10 @@ class AssetListViewController: UICollectionViewController { override func viewDidLoad() { super.viewDidLoad() + view.backgroundColor = nohanaImagePickerController?.config.color.background ?? .white updateTitle() setUpToolbarItems() addPickPhotoKitAssetNotificationObservers() - self.view.backgroundColor = nohanaImagePickerController?.config.color.background } var cellSize: CGSize { diff --git a/NohanaImagePicker/MomentCell.swift b/NohanaImagePicker/MomentCell.swift index 7f5208d..55926fc 100644 --- a/NohanaImagePicker/MomentCell.swift +++ b/NohanaImagePicker/MomentCell.swift @@ -22,7 +22,8 @@ class MomentCell: AlbumCell { override func draw(_ rect: CGRect) { super.draw(rect) let lineWidth: CGFloat = 1 / UIScreen.main.scale - config.color.separator.setFill() + let separatorColor: UIColor = config.color.separator ?? UIColor(red: 0xbb/0xff, green: 0xbb/0xff, blue: 0xbb/0xff, alpha: 1) + separatorColor.setFill() UIRectFill(CGRect(x: 16, y: frame.size.height - lineWidth, width: frame.size.width, height:lineWidth)) } diff --git a/NohanaImagePicker/NohanaImagePickerController.swift b/NohanaImagePicker/NohanaImagePickerController.swift index 552c40c..d777016 100644 --- a/NohanaImagePicker/NohanaImagePickerController.swift +++ b/NohanaImagePicker/NohanaImagePickerController.swift @@ -141,9 +141,9 @@ open class NohanaImagePickerController: UIViewController { extension NohanaImagePickerController { public struct Config { public struct Color { - public var background = UIColor.white - public var empty = UIColor(red: 0x88/0xff, green: 0x88/0xff, blue: 0x88/0xff, alpha: 1) - public var separator = UIColor(red: 0xbb/0xff, green: 0xbb/0xff, blue: 0xbb/0xff, alpha: 1) + public var background: UIColor? + public var empty: UIColor? + public var separator: UIColor? } public var color = Color() From 4f31eaafc72e50143c1b4c436e4652be23a258d7 Mon Sep 17 00:00:00 2001 From: haranicle Date: Sat, 17 Jun 2017 22:09:38 +0900 Subject: [PATCH 11/12] fix demo --- Demo/DemoListViewController.swift | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Demo/DemoListViewController.swift b/Demo/DemoListViewController.swift index 77317bd..3c6638f 100644 --- a/Demo/DemoListViewController.swift +++ b/Demo/DemoListViewController.swift @@ -130,9 +130,11 @@ class DemoListViewController: UITableViewController, NohanaImagePickerController func showCustomUIPicker() { let picker = NohanaImagePickerController() picker.delegate = self - picker.config.color.background = UIColor(red: 0xff/0xff, green: 0xcc/0xff, blue: 0xcc/0xff, alpha: 1) - picker.config.color.separator = .darkGray + picker.config.color.background = UIColor(red: 0xcc/0xff, green: 0xff/0xff, blue: 0xff/0xff, alpha: 1) + picker.config.color.separator = UIColor(red: 0x00/0xff, green: 0x66/0xff, blue: 0x66/0xff, alpha: 1) picker.config.strings.albumListTitle = "🏞" + picker.config.image.droppedSmall = UIImage(named: "btn_select_m") + picker.config.image.pickedSmall = UIImage(named: "btn_selected_m") present(picker, animated: true, completion: nil) } From 919d6d6873e36fb0aff2010012b123d82e43791c Mon Sep 17 00:00:00 2001 From: haranicle Date: Sat, 17 Jun 2017 22:37:16 +0900 Subject: [PATCH 12/12] fix README and podspec --- NohanaImagePicker.podspec | 2 +- README.md | 8 -------- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/NohanaImagePicker.podspec b/NohanaImagePicker.podspec index cfe04fc..18bb70e 100644 --- a/NohanaImagePicker.podspec +++ b/NohanaImagePicker.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'NohanaImagePicker' - s.version = '0.7.2' + s.version = '0.8.0' s.summary = 'A multiple image picker for iOS app.' s.homepage = 'https://github.com/nohana/NohanaImagePicker' s.license = { :type => 'Apache License v2', :file => 'LICENSE' } diff --git a/README.md b/README.md index 4bed6f1..493d531 100644 --- a/README.md +++ b/README.md @@ -63,14 +63,6 @@ picker.shouldShowEmptyAlbum = true picker.canPickAsset = { (asset:Asset) -> Bool in return false } - -// If set to Bundle Object, You can change 'NohanaImagePicker.strings' and 'NohanaImagePicker.xcassets'. -picker.assetBundle = Bundle.main - -// Color -ColorConfig.backgroundColor = UIColor.lightGray -ColorConfig.emptyIndicator = UIColor.lightGray -ColorConfig.AlbumList.momentCellSeparator = UIColor.lightGray ``` ## Requirements