From 104f2ce33162b1a3d41267674b807e801045ba67 Mon Sep 17 00:00:00 2001 From: Ivan Vorobei Date: Sun, 22 Dec 2019 22:48:50 +0300 Subject: [PATCH] Add .cart preset --- Assets/Readme/Miniature - Cart.svg | 10 ++ Assets/Sketch/Presets.sketch | Bin 77555 -> 80279 bytes Example/Controllers/ViewController.swift | 1 + Readme.md | 1 + SPAlert.podspec | 2 +- SPAlert.xcodeproj/project.pbxproj | 4 + Source/SPAlert/Models/SPAlertPreset.swift | 13 ++ .../Views/Icons/SPAlertIconCartView.swift | 128 ++++++++++++++++++ 8 files changed, 158 insertions(+), 1 deletion(-) create mode 100644 Assets/Readme/Miniature - Cart.svg create mode 100644 Source/SPAlert/Views/Icons/SPAlertIconCartView.swift diff --git a/Assets/Readme/Miniature - Cart.svg b/Assets/Readme/Miniature - Cart.svg new file mode 100644 index 0000000..09008ea --- /dev/null +++ b/Assets/Readme/Miniature - Cart.svg @@ -0,0 +1,10 @@ + + + + Miniature - Cart + Created with Sketch. + + + + + \ No newline at end of file diff --git a/Assets/Sketch/Presets.sketch b/Assets/Sketch/Presets.sketch index 0a764f2a4686404c0f9477641f8200ec2f6d1b29..c10a957024afbcb95764f4c2d99beac552266377 100644 GIT binary patch delta 28430 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 SI0Ybo^Ww2x6@7g9ivI%tga%ju delta 25578 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 CYTz6I diff --git a/Example/Controllers/ViewController.swift b/Example/Controllers/ViewController.swift index 02b8502..94d424e 100644 --- a/Example/Controllers/ViewController.swift +++ b/Example/Controllers/ViewController.swift @@ -17,6 +17,7 @@ class ViewController: UITableViewController { Alert(key: "Bolt", preset: .bolt, title: "Power", subtitle: "Now turned on"), Alert(key: "Eject", preset: .eject, title: "Eject complete", subtitle: nil), Alert(key: "Card", preset: .card, title: "Payment sent", subtitle: "Thanks for donate"), + Alert(key: "Cart", preset: .cart, title: "Add to order", subtitle: "It wait in cart"), Alert(key: "Like", preset: .like, title: "Thanks for feedback", subtitle: "It helped us"), Alert(key: "Dislike", preset: .dislike, title: "Thanks for feedback", subtitle: "It helped us"), Alert(key: "Privacy", preset: .privacy, title: "Privacy accepted", subtitle: "You privacy it important"), diff --git a/Readme.md b/Readme.md index 4c473bb..fa91fe8 100644 --- a/Readme.md +++ b/Readme.md @@ -22,6 +22,7 @@ And other + diff --git a/SPAlert.podspec b/SPAlert.podspec index 6111a18..2dd341a 100644 --- a/SPAlert.podspec +++ b/SPAlert.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "SPAlert" - s.version = "2.0.25" + s.version = "2.0.26" s.summary = "Native alert from Apple Music & Feedback. Contains Done, Heart & Message and other presets." s.homepage = "https://github.com/IvanVorobei/SPAlert" s.source = { :git => "https://github.com/IvanVorobei/SPAlert.git", :tag => s.version } diff --git a/SPAlert.xcodeproj/project.pbxproj b/SPAlert.xcodeproj/project.pbxproj index 663e53d..cc9cddd 100644 --- a/SPAlert.xcodeproj/project.pbxproj +++ b/SPAlert.xcodeproj/project.pbxproj @@ -30,6 +30,7 @@ F42DE05623AD7D94007CCE29 /* SPAlertIconPrivacyView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F42DE05523AD7D94007CCE29 /* SPAlertIconPrivacyView.swift */; }; F45970B423A578A50092CE7C /* SPAlertIconCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F45970B323A578A50092CE7C /* SPAlertIconCardView.swift */; }; F459720223A841C00092CE7C /* SPAlertIconRotateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F459720123A841C00092CE7C /* SPAlertIconRotateView.swift */; }; + F45DDF2823AFFF3000CA3956 /* SPAlertIconCartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F45DDF2723AFFF3000CA3956 /* SPAlertIconCartView.swift */; }; F46AAEFE2392E97200BE9131 /* SPAlertIconMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F46AAEFD2392E97200BE9131 /* SPAlertIconMessageView.swift */; }; F47D2FA6239D718400A346A5 /* SPAlertIconBoltView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F47D2FA5239D718400A346A5 /* SPAlertIconBoltView.swift */; }; F47EE19D23959ADB00B02DF2 /* SPAlertIconShuffleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F47EE19C23959ADB00B02DF2 /* SPAlertIconShuffleView.swift */; }; @@ -100,6 +101,7 @@ F42DE05523AD7D94007CCE29 /* SPAlertIconPrivacyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SPAlertIconPrivacyView.swift; sourceTree = ""; }; F45970B323A578A50092CE7C /* SPAlertIconCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SPAlertIconCardView.swift; sourceTree = ""; }; F459720123A841C00092CE7C /* SPAlertIconRotateView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SPAlertIconRotateView.swift; sourceTree = ""; }; + F45DDF2723AFFF3000CA3956 /* SPAlertIconCartView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SPAlertIconCartView.swift; sourceTree = ""; }; F46AAEFD2392E97200BE9131 /* SPAlertIconMessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SPAlertIconMessageView.swift; sourceTree = ""; }; F47D2FA5239D718400A346A5 /* SPAlertIconBoltView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SPAlertIconBoltView.swift; sourceTree = ""; }; F47EE19C23959ADB00B02DF2 /* SPAlertIconShuffleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SPAlertIconShuffleView.swift; sourceTree = ""; }; @@ -211,6 +213,7 @@ F4146EB123AAA18100AE7658 /* SPAlertIconLikeView.swift */, F42DE05323AD7D8A007CCE29 /* SPAlertIconDislikeView.swift */, F42DE05523AD7D94007CCE29 /* SPAlertIconPrivacyView.swift */, + F45DDF2723AFFF3000CA3956 /* SPAlertIconCartView.swift */, ); path = Icons; sourceTree = ""; @@ -418,6 +421,7 @@ F41204EC2382AC9B009C2AC7 /* SPAlertIconDoneView.swift in Sources */, F41204E92382AC9B009C2AC7 /* SPAlertView.swift in Sources */, F421EFF12398684E000A566D /* SPAlertIconFlagView.swift in Sources */, + F45DDF2823AFFF3000CA3956 /* SPAlertIconCartView.swift in Sources */, F47EE19D23959ADB00B02DF2 /* SPAlertIconShuffleView.swift in Sources */, F4D3CD58238DA9FE006C3DE2 /* SPAlertIconMoonView.swift in Sources */, F4D3CD5A238DAA49006C3DE2 /* SPAlertIconStarView.swift in Sources */, diff --git a/Source/SPAlert/Models/SPAlertPreset.swift b/Source/SPAlert/Models/SPAlertPreset.swift index b32e1c4..49da2c0 100644 --- a/Source/SPAlert/Models/SPAlertPreset.swift +++ b/Source/SPAlert/Models/SPAlertPreset.swift @@ -48,6 +48,7 @@ public enum SPAlertPreset { case like case dislike case privacy + case cart /** View for preset. Wrap to `UIView`. @@ -98,6 +99,8 @@ public enum SPAlertPreset { return SPAlertIconDislikeView() case .privacy: return SPAlertIconPrivacyView() + case .cart: + return SPAlertIconCartView() } } @@ -179,6 +182,14 @@ public enum SPAlertPreset { layout.iconHeight = 108 layout.bottomIconSpace = 25 return layout + case .cart: + var layout = SPAlertLayout() + layout.topSpace = 45 + layout.bottomSpace = 31 + layout.iconWidth = 108 + layout.iconHeight = 108 + layout.bottomIconSpace = 25 + return layout case .flag: var layout = SPAlertLayout() layout.topSpace = 49 @@ -335,6 +346,8 @@ public enum SPAlertPreset { return .error case .privacy: return .success + case .cart: + return .success } } } diff --git a/Source/SPAlert/Views/Icons/SPAlertIconCartView.swift b/Source/SPAlert/Views/Icons/SPAlertIconCartView.swift new file mode 100644 index 0000000..2814bea --- /dev/null +++ b/Source/SPAlert/Views/Icons/SPAlertIconCartView.swift @@ -0,0 +1,128 @@ +// The MIT License (MIT) +// Copyright © 2019 Ivan Vorobei (ivanvorobei@icloud.com) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all +// copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +// SOFTWARE. + +import UIKit + +public class SPAlertIconCartView: UIView { + + init() { + super.init(frame: .zero) + self.backgroundColor = .clear + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + public override func draw(_ rect: CGRect) { + super.draw(rect) + CartDraw.draw(frame: rect, resizing: .aspectFit, fillColor: self.tintColor) + } + + class CartDraw: NSObject { + + @objc dynamic public class func draw(frame targetFrame: CGRect = CGRect(x: 0, y: 0, width: 60, height: 56), resizing: ResizingBehavior = .aspectFit, fillColor: UIColor = UIColor(red: 0.349, green: 0.345, blue: 0.353, alpha: 1.000)) { + let context = UIGraphicsGetCurrentContext()! + context.saveGState() + let resizedFrame: CGRect = resizing.apply(rect: CGRect(x: 0, y: 0, width: 72, height: 62), target: targetFrame) + context.translateBy(x: resizedFrame.minX, y: resizedFrame.minY) + context.scaleBy(x: resizedFrame.width / 72, y: resizedFrame.height / 62) + let bezierPath = UIBezierPath() + bezierPath.move(to: CGPoint(x: 3, y: 6.12)) + bezierPath.addCurve(to: CGPoint(x: 5.09, y: 8.27), controlPoint1: CGPoint(x: 3, y: 7.28), controlPoint2: CGPoint(x: 3.96, y: 8.27)) + bezierPath.addLine(to: CGPoint(x: 14.65, y: 8.27)) + bezierPath.addLine(to: CGPoint(x: 19.18, y: 39.32)) + bezierPath.addCurve(to: CGPoint(x: 25.99, y: 45.85), controlPoint1: CGPoint(x: 19.77, y: 43.34), controlPoint2: CGPoint(x: 21.89, y: 45.85)) + bezierPath.addLine(to: CGPoint(x: 58.99, y: 45.85)) + bezierPath.addCurve(to: CGPoint(x: 61.06, y: 43.73), controlPoint1: CGPoint(x: 60.1, y: 45.85), controlPoint2: CGPoint(x: 61.06, y: 44.95)) + bezierPath.addCurve(to: CGPoint(x: 58.99, y: 41.61), controlPoint1: CGPoint(x: 61.06, y: 42.52), controlPoint2: CGPoint(x: 60.1, y: 41.61)) + bezierPath.addLine(to: CGPoint(x: 26.47, y: 41.61)) + bezierPath.addCurve(to: CGPoint(x: 23.62, y: 38.76), controlPoint1: CGPoint(x: 24.86, y: 41.61), controlPoint2: CGPoint(x: 23.87, y: 40.48)) + bezierPath.addLine(to: CGPoint(x: 23.16, y: 35.79)) + bezierPath.addLine(to: CGPoint(x: 59.05, y: 35.79)) + bezierPath.addCurve(to: CGPoint(x: 65.85, y: 29.46), controlPoint1: CGPoint(x: 63.09, y: 35.79), controlPoint2: CGPoint(x: 65.2, y: 33.35)) + bezierPath.addLine(to: CGPoint(x: 68.16, y: 14.24)) + bezierPath.addCurve(to: CGPoint(x: 68.27, y: 13.16), controlPoint1: CGPoint(x: 68.21, y: 13.87), controlPoint2: CGPoint(x: 68.27, y: 13.42)) + bezierPath.addCurve(to: CGPoint(x: 65.7, y: 10.87), controlPoint1: CGPoint(x: 68.27, y: 11.81), controlPoint2: CGPoint(x: 67.25, y: 10.87)) + bezierPath.addLine(to: CGPoint(x: 19.54, y: 10.87)) + bezierPath.addLine(to: CGPoint(x: 18.98, y: 7.28)) + bezierPath.addCurve(to: CGPoint(x: 15.02, y: 4), controlPoint1: CGPoint(x: 18.7, y: 5.1), controlPoint2: CGPoint(x: 17.9, y: 4)) + bezierPath.addLine(to: CGPoint(x: 5.09, y: 4)) + bezierPath.addCurve(to: CGPoint(x: 3, y: 6.12), controlPoint1: CGPoint(x: 3.96, y: 4), controlPoint2: CGPoint(x: 3, y: 4.99)) + bezierPath.close() + bezierPath.move(to: CGPoint(x: 23.62, y: 55.02)) + bezierPath.addCurve(to: CGPoint(x: 28.23, y: 59.6), controlPoint1: CGPoint(x: 23.62, y: 57.59), controlPoint2: CGPoint(x: 25.65, y: 59.6)) + bezierPath.addCurve(to: CGPoint(x: 32.81, y: 55.02), controlPoint1: CGPoint(x: 30.77, y: 59.6), controlPoint2: CGPoint(x: 32.81, y: 57.59)) + bezierPath.addCurve(to: CGPoint(x: 28.23, y: 50.44), controlPoint1: CGPoint(x: 32.81, y: 52.47), controlPoint2: CGPoint(x: 30.77, y: 50.44)) + bezierPath.addCurve(to: CGPoint(x: 23.62, y: 55.02), controlPoint1: CGPoint(x: 25.65, y: 50.44), controlPoint2: CGPoint(x: 23.62, y: 52.47)) + bezierPath.close() + bezierPath.move(to: CGPoint(x: 50.06, y: 55.02)) + bezierPath.addCurve(to: CGPoint(x: 54.67, y: 50.44), controlPoint1: CGPoint(x: 50.06, y: 52.47), controlPoint2: CGPoint(x: 52.12, y: 50.44)) + bezierPath.addCurve(to: CGPoint(x: 59.28, y: 55.02), controlPoint1: CGPoint(x: 57.24, y: 50.44), controlPoint2: CGPoint(x: 59.28, y: 52.47)) + bezierPath.addCurve(to: CGPoint(x: 54.67, y: 59.6), controlPoint1: CGPoint(x: 59.28, y: 57.59), controlPoint2: CGPoint(x: 57.24, y: 59.6)) + bezierPath.addCurve(to: CGPoint(x: 50.06, y: 55.02), controlPoint1: CGPoint(x: 52.12, y: 59.6), controlPoint2: CGPoint(x: 50.06, y: 57.59)) + bezierPath.close() + fillColor.setFill() + bezierPath.fill() + context.restoreGState() + } + + @objc(StyleKitNameResizingBehavior) + public enum ResizingBehavior: Int { + + case aspectFit + case aspectFill + case stretch + case center + + public func apply(rect: CGRect, target: CGRect) -> CGRect { + if rect == target || target == CGRect.zero { + return rect + } + + var scales = CGSize.zero + scales.width = abs(target.width / rect.width) + scales.height = abs(target.height / rect.height) + + switch self { + case .aspectFit: + scales.width = min(scales.width, scales.height) + scales.height = scales.width + case .aspectFill: + scales.width = max(scales.width, scales.height) + scales.height = scales.width + case .stretch: + break + case .center: + scales.width = 1 + scales.height = 1 + } + + var result = rect.standardized + result.size.width *= scales.width + result.size.height *= scales.height + result.origin.x = target.minX + (target.width - result.width) / 2 + result.origin.y = target.minY + (target.height - result.height) / 2 + return result + } + } + } +}