From c19d71b3ce38978a1511a2862070350493799caf Mon Sep 17 00:00:00 2001 From: Alex Littlejohn Date: Wed, 8 Nov 2017 14:33:53 +0100 Subject: [PATCH 1/8] Readme tweak --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index da05cba1..fa8d9cf5 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,10 @@ Add the following to your Podfile: ```ruby pod 'ALCameraViewController' +``` +> For swift 3.2 support -// For swift 3.2 support +```ruby pod 'ALCameraViewController', '~> 2.0.3' ``` From a5160a5fa9b0dfa8f46167c29171cb288906af88 Mon Sep 17 00:00:00 2001 From: Alex Littlejohn Date: Wed, 8 Nov 2017 14:56:06 +0100 Subject: [PATCH 2/8] Fixes for example project to use safe area insets as well as supporing iPhone X properly --- .../project.pbxproj | 10 ++-- .../AppIcon.appiconset/Contents.json | 19 +++++++- .../Images.xcassets/Contents.json | 6 +++ .../Icon.imageset/Contents.json | 21 +++++++++ .../Icon.imageset/icon@180.png | Bin 0 -> 5199 bytes .../LaunchImage.launchimage/Contents.json | 43 ------------------ .../LaunchImage.launchimage/splash-3.5.png | Bin 20010 -> 0 bytes .../LaunchImage.launchimage/splash-4.7.png | Bin 28080 -> 0 bytes .../LaunchImage.launchimage/splash-4.png | Bin 22529 -> 0 bytes .../LaunchImage.launchimage/splash-5.5.png | Bin 61882 -> 0 bytes Example/Supporting Files/Info.plist | 2 + Example/Supporting Files/LaunchScreen.xib | 34 ++++++++++++++ Example/ViewController.xib | 30 ++++++------ 13 files changed, 102 insertions(+), 63 deletions(-) create mode 100644 Example/Supporting Files/Images.xcassets/Contents.json create mode 100644 Example/Supporting Files/Images.xcassets/Icon.imageset/Contents.json create mode 100644 Example/Supporting Files/Images.xcassets/Icon.imageset/icon@180.png delete mode 100644 Example/Supporting Files/Images.xcassets/LaunchImage.launchimage/Contents.json delete mode 100644 Example/Supporting Files/Images.xcassets/LaunchImage.launchimage/splash-3.5.png delete mode 100644 Example/Supporting Files/Images.xcassets/LaunchImage.launchimage/splash-4.7.png delete mode 100644 Example/Supporting Files/Images.xcassets/LaunchImage.launchimage/splash-4.png delete mode 100644 Example/Supporting Files/Images.xcassets/LaunchImage.launchimage/splash-5.5.png create mode 100644 Example/Supporting Files/LaunchScreen.xib diff --git a/ALCameraViewController.xcodeproj/project.pbxproj b/ALCameraViewController.xcodeproj/project.pbxproj index 1b01a1a3..720f06f0 100644 --- a/ALCameraViewController.xcodeproj/project.pbxproj +++ b/ALCameraViewController.xcodeproj/project.pbxproj @@ -9,6 +9,7 @@ /* Begin PBXBuildFile section */ 1F3C56291F701CA7009667E9 /* CroppingParameters.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AC96FA11F5B5166003E53F4 /* CroppingParameters.swift */; }; 7AC96FA21F5B5166003E53F4 /* CroppingParameters.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AC96FA11F5B5166003E53F4 /* CroppingParameters.swift */; }; + 7C6AF41F1FB340CA006CB4ED /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7C6AF41E1FB340CA006CB4ED /* LaunchScreen.xib */; }; C40665441C73A47C00EB9751 /* SingleImageSaver.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40665431C73A47C00EB9751 /* SingleImageSaver.swift */; }; C40665461C73A94100EB9751 /* CameraGlobals.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40665451C73A94100EB9751 /* CameraGlobals.swift */; }; C40665481C73B72D00EB9751 /* SingleImageFetcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40665471C73B72D00EB9751 /* SingleImageFetcher.swift */; }; @@ -61,6 +62,7 @@ /* Begin PBXFileReference section */ 7AC96FA11F5B5166003E53F4 /* CroppingParameters.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CroppingParameters.swift; sourceTree = ""; }; + 7C6AF41E1FB340CA006CB4ED /* LaunchScreen.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LaunchScreen.xib; sourceTree = ""; }; C40665431C73A47C00EB9751 /* SingleImageSaver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SingleImageSaver.swift; sourceTree = ""; }; C40665451C73A94100EB9751 /* CameraGlobals.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CameraGlobals.swift; sourceTree = ""; }; C40665471C73B72D00EB9751 /* SingleImageFetcher.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SingleImageFetcher.swift; sourceTree = ""; }; @@ -196,6 +198,7 @@ FAF058421B31618D008E5592 /* Supporting Files */ = { isa = PBXGroup; children = ( + 7C6AF41E1FB340CA006CB4ED /* LaunchScreen.xib */, FAF0584B1B31618D008E5592 /* Images.xcassets */, FAF058431B31618D008E5592 /* Info.plist */, ); @@ -322,6 +325,7 @@ files = ( FA52EE0B1B44129B00E16B6F /* ViewController.xib in Resources */, FA8231381B3BF8F700A837BE /* CameraView.strings in Resources */, + 7C6AF41F1FB340CA006CB4ED /* LaunchScreen.xib in Resources */, FA5FA3451B3AFEB300497C62 /* CameraViewAssets.xcassets in Resources */, FAF0584C1B31618D008E5592 /* Images.xcassets in Resources */, FA778A411B8319D8005807E7 /* image.jpg in Resources */, @@ -543,11 +547,10 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; DEVELOPMENT_TEAM = 2466624KEK; INFOPLIST_FILE = "Example/Supporting Files/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.alx.zero.CameraViewController; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -560,11 +563,10 @@ isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; DEVELOPMENT_TEAM = 2466624KEK; INFOPLIST_FILE = "Example/Supporting Files/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = com.alx.zero.CameraViewController; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/Example/Supporting Files/Images.xcassets/AppIcon.appiconset/Contents.json b/Example/Supporting Files/Images.xcassets/AppIcon.appiconset/Contents.json index 4be0545c..0e887cfc 100644 --- a/Example/Supporting Files/Images.xcassets/AppIcon.appiconset/Contents.json +++ b/Example/Supporting Files/Images.xcassets/AppIcon.appiconset/Contents.json @@ -1,5 +1,15 @@ { "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, { "size" : "29x29", "idiom" : "iphone", @@ -25,8 +35,8 @@ "scale" : "3x" }, { - "idiom" : "iphone", "size" : "60x60", + "idiom" : "iphone", "filename" : "icon@120.png", "scale" : "2x" }, @@ -35,10 +45,15 @@ "idiom" : "iphone", "filename" : "icon@180.png", "scale" : "3x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" } ], "info" : { "version" : 1, "author" : "xcode" } -} +} \ No newline at end of file diff --git a/Example/Supporting Files/Images.xcassets/Contents.json b/Example/Supporting Files/Images.xcassets/Contents.json new file mode 100644 index 00000000..da4a164c --- /dev/null +++ b/Example/Supporting Files/Images.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Example/Supporting Files/Images.xcassets/Icon.imageset/Contents.json b/Example/Supporting Files/Images.xcassets/Icon.imageset/Contents.json new file mode 100644 index 00000000..ec1c9ea8 --- /dev/null +++ b/Example/Supporting Files/Images.xcassets/Icon.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "icon@180.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Example/Supporting Files/Images.xcassets/Icon.imageset/icon@180.png b/Example/Supporting Files/Images.xcassets/Icon.imageset/icon@180.png new file mode 100644 index 0000000000000000000000000000000000000000..7f9d67ed6f6c548e11ae2401d836c2f5904ace4d GIT binary patch literal 5199 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 Uz@*3XObF4G-l@x%%UXo|4*?bD9smFU literal 0 HcmV?d00001 diff --git a/Example/Supporting Files/Images.xcassets/LaunchImage.launchimage/Contents.json b/Example/Supporting Files/Images.xcassets/LaunchImage.launchimage/Contents.json deleted file mode 100644 index 1ec1deec..00000000 --- a/Example/Supporting Files/Images.xcassets/LaunchImage.launchimage/Contents.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "images" : [ - { - "extent" : "full-screen", - "idiom" : "iphone", - "subtype" : "736h", - "filename" : "splash-5.5.png", - "minimum-system-version" : "8.0", - "orientation" : "portrait", - "scale" : "3x" - }, - { - "extent" : "full-screen", - "idiom" : "iphone", - "subtype" : "667h", - "filename" : "splash-4.7.png", - "minimum-system-version" : "8.0", - "orientation" : "portrait", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "filename" : "splash-3.5.png", - "extent" : "full-screen", - "minimum-system-version" : "7.0", - "scale" : "2x" - }, - { - "extent" : "full-screen", - "idiom" : "iphone", - "subtype" : "retina4", - "filename" : "splash-4.png", - "minimum-system-version" : "7.0", - "orientation" : "portrait", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/Example/Supporting Files/Images.xcassets/LaunchImage.launchimage/splash-3.5.png b/Example/Supporting Files/Images.xcassets/LaunchImage.launchimage/splash-3.5.png deleted file mode 100644 index d4232e1cfbc41eb3ca29d77dacec18499211fd9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20010 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 U9%}<1e}f#@>$#_NS76eA0q%HhyZ`_I diff --git a/Example/Supporting Files/Images.xcassets/LaunchImage.launchimage/splash-4.7.png b/Example/Supporting Files/Images.xcassets/LaunchImage.launchimage/splash-4.7.png deleted file mode 100644 index c5f37367d5836fe5b2b3f4fd6a1196f434886cc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28080 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 diff --git a/Example/Supporting Files/Images.xcassets/LaunchImage.launchimage/splash-5.5.png b/Example/Supporting Files/Images.xcassets/LaunchImage.launchimage/splash-5.5.png deleted file mode 100644 index eab7cebc563f1967d84fe2d55ceb6911b0e2988d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61882 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 Science NSPhotoLibraryUsageDescription For Science + UILaunchStoryboardName + LaunchScreen UIRequiredDeviceCapabilities armv7 diff --git a/Example/Supporting Files/LaunchScreen.xib b/Example/Supporting Files/LaunchScreen.xib new file mode 100644 index 00000000..6ba24292 --- /dev/null +++ b/Example/Supporting Files/LaunchScreen.xib @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/ViewController.xib b/Example/ViewController.xib index cb3d4f40..969010cb 100644 --- a/Example/ViewController.xib +++ b/Example/ViewController.xib @@ -1,11 +1,12 @@ - + - + + @@ -31,10 +32,10 @@ - + - + - + From 0ceaf82797b34c8d11d0fba849dfce1d64bb468c Mon Sep 17 00:00:00 2001 From: Guillaume Bellut Date: Mon, 22 Jan 2018 19:18:01 +0100 Subject: [PATCH 3/8] Fixed cropping issue when picture is zoomed --- .../ConfirmViewController.swift | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/ALCameraViewController/ViewController/ConfirmViewController.swift b/ALCameraViewController/ViewController/ConfirmViewController.swift index d9eccd23..5872dfa5 100644 --- a/ALCameraViewController/ViewController/ConfirmViewController.swift +++ b/ALCameraViewController/ViewController/ConfirmViewController.swift @@ -318,14 +318,17 @@ public class ConfirmViewController: UIViewController, UIScrollViewDelegate { y: cropOverlay.frame.origin.y + cropOverlay.outterGap, width: cropOverlay.frame.size.width - 2 * cropOverlay.outterGap, height: cropOverlay.frame.size.height - 2 * cropOverlay.outterGap) - cropRect.origin.x += scrollView.contentOffset.x - cropRect.origin.y += scrollView.contentOffset.y - - let normalizedX = cropRect.origin.x / imageView.frame.width - let normalizedY = cropRect.origin.y / imageView.frame.height - - let normalizedWidth = cropRect.width / imageView.frame.width - let normalizedHeight = cropRect.height / imageView.frame.height + cropRect.origin.x += scrollView.contentOffset.x - imageView.frame.origin.x + cropRect.origin.y += scrollView.contentOffset.y - imageView.frame.origin.y + + let normalizedX = max(0, cropRect.origin.x / imageView.frame.width) + let normalizedY = max(0, cropRect.origin.y / imageView.frame.height) + + let extraWidth = min(0, cropRect.origin.x) + let extraHeight = min(0, cropRect.origin.y) + + let normalizedWidth = min(1, (cropRect.width + extraWidth) / imageView.frame.width) + let normalizedHeight = min(1, (cropRect.height + extraHeight) / imageView.frame.height) return CGRect(x: normalizedX, y: normalizedY, width: normalizedWidth, height: normalizedHeight) } From d2e96b9201096469d6d9bf330249ecf235214152 Mon Sep 17 00:00:00 2001 From: Guillaume Bellut Date: Mon, 22 Jan 2018 19:18:51 +0100 Subject: [PATCH 4/8] Fixed default minimum scale when cropping --- .../ViewController/ConfirmViewController.swift | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/ALCameraViewController/ViewController/ConfirmViewController.swift b/ALCameraViewController/ViewController/ConfirmViewController.swift index 5872dfa5..382dd5d0 100644 --- a/ALCameraViewController/ViewController/ConfirmViewController.swift +++ b/ALCameraViewController/ViewController/ConfirmViewController.swift @@ -163,21 +163,13 @@ public class ConfirmViewController: UIViewController, UIScrollViewDelegate { } guard let image = imageView.image else { - return 1 + return 1 } let scaleWidth = _size.width / image.size.width let scaleHeight = _size.height / image.size.height - - var scale: CGFloat - - if croppingParameters.isEnabled { - scale = max(scaleWidth, scaleHeight) - } else { - scale = min(scaleWidth, scaleHeight) - } - - return scale + + return min(scaleWidth, scaleHeight) } private func calculateScrollViewInsets(_ frame: CGRect) -> UIEdgeInsets { From b8de7ef9f54e04fa39903510205fea75b1fd8cba Mon Sep 17 00:00:00 2001 From: Guillaume Bellut Date: Mon, 22 Jan 2018 19:19:30 +0100 Subject: [PATCH 5/8] Removed function call not needed at init --- .../ViewController/ConfirmViewController.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/ALCameraViewController/ViewController/ConfirmViewController.swift b/ALCameraViewController/ViewController/ConfirmViewController.swift index 382dd5d0..5c7fb257 100644 --- a/ALCameraViewController/ViewController/ConfirmViewController.swift +++ b/ALCameraViewController/ViewController/ConfirmViewController.swift @@ -106,7 +106,6 @@ public class ConfirmViewController: UIViewController, UIScrollViewDelegate { scrollView.minimumZoomScale = scale scrollView.zoomScale = scale centerScrollViewContents() - centerImageViewOnRotate() } public override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { From 06a2c61698caf782f0d196c5dc52090e315206f7 Mon Sep 17 00:00:00 2001 From: Alex Littlejohn Date: Tue, 23 Jan 2018 08:47:28 +0100 Subject: [PATCH 6/8] Use margins for layout --- .../CameraViewControllerConstraint.swift | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ALCameraViewController/ViewController/CameraViewControllerConstraint.swift b/ALCameraViewController/ViewController/CameraViewControllerConstraint.swift index 4b485532..303dc10f 100644 --- a/ALCameraViewController/ViewController/CameraViewControllerConstraint.swift +++ b/ALCameraViewController/ViewController/CameraViewControllerConstraint.swift @@ -184,8 +184,8 @@ extension CameraViewController { switch statusBarOrientation { case .portrait: - attributeOne = .top - attributeTwo = .bottom + attributeOne = .topMargin + attributeTwo = .bottomMargin break case .landscapeRight: attributeOne = .left @@ -196,8 +196,8 @@ extension CameraViewController { attributeTwo = .left break default: - attributeOne = .bottom - attributeTwo = .top + attributeOne = .bottomMargin + attributeTwo = .topMargin break } @@ -401,7 +401,7 @@ extension CameraViewController { view.autoRemoveConstraint(flashButtonEdgeConstraint) let constraintRight = statusBarOrientation == .portrait || statusBarOrientation == .landscapeRight - let attribute : NSLayoutAttribute = constraintRight ? .top : .bottom + let attribute : NSLayoutAttribute = constraintRight ? .topMargin : .bottomMargin flashButtonEdgeConstraint = NSLayoutConstraint( item: flashButton, From 359fbbc207e9146cca54efb4915bbfa4079116fc Mon Sep 17 00:00:00 2001 From: Alex Littlejohn Date: Wed, 24 Jan 2018 09:04:43 +0100 Subject: [PATCH 7/8] Fixing some constraints for iPhone X --- .../CameraViewControllerConstraint.swift | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/ALCameraViewController/ViewController/CameraViewControllerConstraint.swift b/ALCameraViewController/ViewController/CameraViewControllerConstraint.swift index 303dc10f..37e518c9 100644 --- a/ALCameraViewController/ViewController/CameraViewControllerConstraint.swift +++ b/ALCameraViewController/ViewController/CameraViewControllerConstraint.swift @@ -46,10 +46,10 @@ extension CameraViewController { let attribute : NSLayoutAttribute = { switch statusBarOrientation { - case .portrait: return .bottom - case .landscapeRight: return .right - case .landscapeLeft: return .left - default: return .top + case .portrait: return .bottomMargin + case .landscapeRight: return .rightMargin + case .landscapeLeft: return .leftMargin + default: return .topMargin } }() @@ -60,7 +60,7 @@ extension CameraViewController { toItem: view, attribute: attribute, multiplier: 1.0, - constant: attribute == .right || attribute == .bottom ? -8 : 8) + constant: -8) view.addConstraint(cameraButtonEdgeConstraint!) } @@ -184,8 +184,8 @@ extension CameraViewController { switch statusBarOrientation { case .portrait: - attributeOne = .topMargin - attributeTwo = .bottomMargin + attributeOne = .top + attributeTwo = .bottom break case .landscapeRight: attributeOne = .left @@ -196,8 +196,8 @@ extension CameraViewController { attributeTwo = .left break default: - attributeOne = .bottomMargin - attributeTwo = .topMargin + attributeOne = .bottom + attributeTwo = .top break } From fa37fbd032a3c8c9cc4f0a7099f4647cefd1eb87 Mon Sep 17 00:00:00 2001 From: Alex Shepard Date: Sun, 31 Dec 2017 11:27:33 -0800 Subject: [PATCH 8/8] Bump version --- ALCameraViewController.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ALCameraViewController.podspec b/ALCameraViewController.podspec index 58fe93d3..d7dd9899 100644 --- a/ALCameraViewController.podspec +++ b/ALCameraViewController.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |spec| spec.name = "ALCameraViewController" - spec.version = "3.0.2" + spec.version = "3.0.3" spec.summary = "A camera view controller with custom image picker and image cropping." spec.source = { :git => "https://github.com/AlexLittlejohn/ALCameraViewController.git", :tag => spec.version.to_s } spec.requires_arc = true