From 527455754494fe42b9a8e20a5195dc52ecc27eaf Mon Sep 17 00:00:00 2001 From: Carlos barros <> Date: Tue, 29 Jun 2021 13:16:04 +0100 Subject: [PATCH 1/4] updates project to swift 4. --- .../project.pbxproj | 9 +++++-- Source/CompletionObject.swift | 2 +- Source/OnboardingView.swift | 4 +-- Source/TZStackView/TZStackView.swift | 4 +-- Source/UILayoutPriority.swift | 25 +++++++++++++++++++ 5 files changed, 37 insertions(+), 7 deletions(-) create mode 100644 Source/UILayoutPriority.swift diff --git a/Example/Athlee-Onboarding/OnboardingKit Swift3.xcodeproj/project.pbxproj b/Example/Athlee-Onboarding/OnboardingKit Swift3.xcodeproj/project.pbxproj index 6f92f14..ba1bba5 100644 --- a/Example/Athlee-Onboarding/OnboardingKit Swift3.xcodeproj/project.pbxproj +++ b/Example/Athlee-Onboarding/OnboardingKit Swift3.xcodeproj/project.pbxproj @@ -29,6 +29,7 @@ 048680EA1D8E2BA9004B011E /* TZStackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 048680DC1D8E2BA9004B011E /* TZStackView.swift */; }; 048680EB1D8E2BA9004B011E /* TZStackViewAlignment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 048680DD1D8E2BA9004B011E /* TZStackViewAlignment.swift */; }; 048680EC1D8E2BA9004B011E /* TZStackViewDistribution.swift in Sources */ = {isa = PBXBuildFile; fileRef = 048680DE1D8E2BA9004B011E /* TZStackViewDistribution.swift */; }; + 45DD8E41268B452200C85E3D /* UILayoutPriority.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45DD8E40268B452200C85E3D /* UILayoutPriority.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -68,6 +69,7 @@ 048680DC1D8E2BA9004B011E /* TZStackView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TZStackView.swift; sourceTree = ""; }; 048680DD1D8E2BA9004B011E /* TZStackViewAlignment.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TZStackViewAlignment.swift; sourceTree = ""; }; 048680DE1D8E2BA9004B011E /* TZStackViewDistribution.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TZStackViewDistribution.swift; sourceTree = ""; }; + 45DD8E40268B452200C85E3D /* UILayoutPriority.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UILayoutPriority.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -185,6 +187,7 @@ 048680D81D8E2BA9004B011E /* PageItemView.swift */, 048680D91D8E2BA9004B011E /* PageView.swift */, 048680DA1D8E2BA9004B011E /* TZStackView */, + 45DD8E40268B452200C85E3D /* UILayoutPriority.swift */, ); name = Source; path = ../../Source; @@ -269,6 +272,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, ); @@ -315,6 +319,7 @@ 048680E11D8E2BA9004B011E /* CompletionObject.swift in Sources */, 048680E31D8E2BA9004B011E /* OnboardingView.swift in Sources */, 048680E21D8E2BA9004B011E /* OnboardingConfiguration.swift in Sources */, + 45DD8E41268B452200C85E3D /* UILayoutPriority.swift in Sources */, 048680E61D8E2BA9004B011E /* PageControlView.swift in Sources */, 048680DF1D8E2BA9004B011E /* Anchor.swift in Sources */, 048680671D8E204C004B011E /* AppDelegate.swift in Sources */, @@ -462,7 +467,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.athlee.OnboardingKit-Swift3"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.0; }; name = Debug; }; @@ -476,7 +481,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.athlee.OnboardingKit-Swift3"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_VERSION = 4.0; }; name = Release; }; diff --git a/Source/CompletionObject.swift b/Source/CompletionObject.swift index f45fd96..23cdf8d 100644 --- a/Source/CompletionObject.swift +++ b/Source/CompletionObject.swift @@ -13,7 +13,7 @@ internal protocol Completion { } internal final class CompletionObject: Completion { - internal var completion: ((Void) -> Void)? + internal var completion: (() -> ())? internal static let sharedInstance = CompletionObject() diff --git a/Source/OnboardingView.swift b/Source/OnboardingView.swift index b9bfc76..589fed7 100644 --- a/Source/OnboardingView.swift +++ b/Source/OnboardingView.swift @@ -166,7 +166,7 @@ public final class OnboardingView: UIView, CAAnimationDelegate { addGestureRecognizer(rightSwipeRecognizer) } - internal func didRecognizeSwipe(_ recognizer: UISwipeGestureRecognizer) { + @objc internal func didRecognizeSwipe(_ recognizer: UISwipeGestureRecognizer) { switch recognizer.direction { case UISwipeGestureRecognizerDirection.left: guard pageControlView.currentPage + 1 < pageControlView.pages else { @@ -290,7 +290,7 @@ public final class OnboardingView: UIView, CAAnimationDelegate { pageView.layer.mask = shape } - func animatePageView(_ pageView: PageView, forState state: State, completion: ((Void) -> Void)? = nil) { + func animatePageView(_ pageView: PageView, forState state: State, completion: (() -> ())? = nil) { if state == .expanded || state == .folded { if let shapeLayer = pageView.layer.mask as? CAShapeLayer { let animation = CABasicAnimation(keyPath: "path") diff --git a/Source/TZStackView/TZStackView.swift b/Source/TZStackView/TZStackView.swift index cca567c..af5168c 100755 --- a/Source/TZStackView/TZStackView.swift +++ b/Source/TZStackView/TZStackView.swift @@ -131,7 +131,7 @@ open class TZStackView: UIView { addHiddenListener(arrangedSubview) } - func hiddenAnimationStopped() { + @objc func hiddenAnimationStopped() { var queueEntriesToRemove = [TZAnimationDidStopQueueEntry]() for entry in animationDidStopQueueEntries { let view = entry.view @@ -595,7 +595,7 @@ open class TZStackView: UIView { let attribute2 = attr2 != nil ? attr2! : attr1 let constraint = NSLayoutConstraint(item: view1, attribute: attr1, relatedBy: relation, toItem: view2, attribute: attribute2, multiplier: multiplier, constant: c) - constraint.priority = priority + constraint.priority = UILayoutPriority(priority) return constraint } diff --git a/Source/UILayoutPriority.swift b/Source/UILayoutPriority.swift new file mode 100644 index 0000000..17a7098 --- /dev/null +++ b/Source/UILayoutPriority.swift @@ -0,0 +1,25 @@ +// +// UILayoutPriority.swift +// OnboardingKit Swift3 +// +// Created by Carlos barros on 29/06/2021. +// Copyright © 2021 Athlee. All rights reserved. +// +import UIKit +import Foundation + +extension UILayoutPriority { + static func +(lhs: UILayoutPriority, rhs: Float) -> UILayoutPriority { + let raw = lhs.rawValue + rhs + return UILayoutPriority(rawValue:raw) + } +} + +// MARK: - Allow to pass an integer value to the functions depending on UILayoutPriority +extension UILayoutPriority: ExpressibleByIntegerLiteral { + public typealias IntegerLiteralType = Int + + public init(integerLiteral value: Int) { + self.init(Float(value)) + } +} From 9ab60d354b8df107344f80f000bb293651523eca Mon Sep 17 00:00:00 2001 From: Carlos barros <> Date: Tue, 29 Jun 2021 13:29:42 +0100 Subject: [PATCH 2/4] migration to swift packages. --- .../xcshareddata/IDEWorkspaceChecks.plist | 8 +++++ OnboardingKit/.gitignore | 7 ++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 +++++ OnboardingKit/Package.swift | 31 ++++++++++++++++++ OnboardingKit/README.md | 3 ++ .../Sources/OnboardingKit}/Anchor.swift | 4 +-- .../Sources/OnboardingKit}/CGRect.swift | 0 .../OnboardingKit}/CompletionObject.swift | 0 .../OnboardingConfiguration.swift | 0 .../Sources/OnboardingKit/OnboardingKit.swift | 3 ++ .../OnboardingKit}/OnboardingView.swift | 10 +++--- .../OnboardingViewDataSource.swift | 0 .../OnboardingViewDelegate.swift | 0 .../OnboardingKit}/PageControlView.swift | 0 .../Sources/OnboardingKit}/PageItemView.swift | 4 +-- .../Sources/OnboardingKit}/PageView.swift | 0 .../TZStackView/TZSpacerView.swift | 0 .../TZStackView/TZStackView.swift | 12 +++---- .../TZStackView/TZStackViewAlignment.swift | 0 .../TZStackView/TZStackViewDistribution.swift | 0 .../OnboardingKit}/UILayoutPriority.swift | 0 .../OnboardingKitTests.swift | 11 +++++++ Source/.DS_Store | Bin 8196 -> 8196 bytes Source/TZStackView/.DS_Store | Bin 6148 -> 0 bytes 24 files changed, 86 insertions(+), 15 deletions(-) create mode 100644 Example/Athlee-Onboarding/OnboardingKit Swift3.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 OnboardingKit/.gitignore create mode 100644 OnboardingKit/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 OnboardingKit/Package.swift create mode 100644 OnboardingKit/README.md rename {Source => OnboardingKit/Sources/OnboardingKit}/Anchor.swift (98%) rename {Source => OnboardingKit/Sources/OnboardingKit}/CGRect.swift (100%) rename {Source => OnboardingKit/Sources/OnboardingKit}/CompletionObject.swift (100%) rename {Source => OnboardingKit/Sources/OnboardingKit}/OnboardingConfiguration.swift (100%) create mode 100644 OnboardingKit/Sources/OnboardingKit/OnboardingKit.swift rename {Source => OnboardingKit/Sources/OnboardingKit}/OnboardingView.swift (97%) rename {Source => OnboardingKit/Sources/OnboardingKit}/OnboardingViewDataSource.swift (100%) rename {Source => OnboardingKit/Sources/OnboardingKit}/OnboardingViewDelegate.swift (100%) rename {Source => OnboardingKit/Sources/OnboardingKit}/PageControlView.swift (100%) rename {Source => OnboardingKit/Sources/OnboardingKit}/PageItemView.swift (98%) rename {Source => OnboardingKit/Sources/OnboardingKit}/PageView.swift (100%) rename {Source => OnboardingKit/Sources/OnboardingKit}/TZStackView/TZSpacerView.swift (100%) rename {Source => OnboardingKit/Sources/OnboardingKit}/TZStackView/TZStackView.swift (97%) rename {Source => OnboardingKit/Sources/OnboardingKit}/TZStackView/TZStackViewAlignment.swift (100%) rename {Source => OnboardingKit/Sources/OnboardingKit}/TZStackView/TZStackViewDistribution.swift (100%) rename {Source => OnboardingKit/Sources/OnboardingKit}/UILayoutPriority.swift (100%) create mode 100644 OnboardingKit/Tests/OnboardingKitTests/OnboardingKitTests.swift delete mode 100644 Source/TZStackView/.DS_Store diff --git a/Example/Athlee-Onboarding/OnboardingKit Swift3.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Example/Athlee-Onboarding/OnboardingKit Swift3.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/Example/Athlee-Onboarding/OnboardingKit Swift3.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/OnboardingKit/.gitignore b/OnboardingKit/.gitignore new file mode 100644 index 0000000..bb460e7 --- /dev/null +++ b/OnboardingKit/.gitignore @@ -0,0 +1,7 @@ +.DS_Store +/.build +/Packages +/*.xcodeproj +xcuserdata/ +DerivedData/ +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata diff --git a/OnboardingKit/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/OnboardingKit/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/OnboardingKit/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/OnboardingKit/Package.swift b/OnboardingKit/Package.swift new file mode 100644 index 0000000..7de62ac --- /dev/null +++ b/OnboardingKit/Package.swift @@ -0,0 +1,31 @@ +// swift-tools-version:5.3 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "OnboardingKit", + platforms: [ + .iOS(.v13) + ], + products: [ + // Products define the executables and libraries a package produces, and make them visible to other packages. + .library( + name: "OnboardingKit", + targets: ["OnboardingKit"]), + ], + dependencies: [ + // Dependencies declare other packages that this package depends on. + // .package(url: /* package url */, from: "1.0.0"), + ], + targets: [ + // Targets are the basic building blocks of a package. A target can define a module or a test suite. + // Targets can depend on other targets in this package, and on products in packages this package depends on. + .target( + name: "OnboardingKit", + dependencies: []), + .testTarget( + name: "OnboardingKitTests", + dependencies: ["OnboardingKit"]), + ] +) diff --git a/OnboardingKit/README.md b/OnboardingKit/README.md new file mode 100644 index 0000000..8d989a1 --- /dev/null +++ b/OnboardingKit/README.md @@ -0,0 +1,3 @@ +# OnboardingKit + +A description of this package. diff --git a/Source/Anchor.swift b/OnboardingKit/Sources/OnboardingKit/Anchor.swift similarity index 98% rename from Source/Anchor.swift rename to OnboardingKit/Sources/OnboardingKit/Anchor.swift index 08a27c1..8f0211e 100644 --- a/Source/Anchor.swift +++ b/OnboardingKit/Sources/OnboardingKit/Anchor.swift @@ -74,9 +74,9 @@ public struct Anchors { open class LayoutAnchor { internal var item:View - internal var attribute:NSLayoutAttribute + internal var attribute:NSLayoutConstraint.Attribute - internal init(item:View, attribute:NSLayoutAttribute) { + internal init(item:View, attribute:NSLayoutConstraint.Attribute) { self.item = item self.attribute = attribute } diff --git a/Source/CGRect.swift b/OnboardingKit/Sources/OnboardingKit/CGRect.swift similarity index 100% rename from Source/CGRect.swift rename to OnboardingKit/Sources/OnboardingKit/CGRect.swift diff --git a/Source/CompletionObject.swift b/OnboardingKit/Sources/OnboardingKit/CompletionObject.swift similarity index 100% rename from Source/CompletionObject.swift rename to OnboardingKit/Sources/OnboardingKit/CompletionObject.swift diff --git a/Source/OnboardingConfiguration.swift b/OnboardingKit/Sources/OnboardingKit/OnboardingConfiguration.swift similarity index 100% rename from Source/OnboardingConfiguration.swift rename to OnboardingKit/Sources/OnboardingKit/OnboardingConfiguration.swift diff --git a/OnboardingKit/Sources/OnboardingKit/OnboardingKit.swift b/OnboardingKit/Sources/OnboardingKit/OnboardingKit.swift new file mode 100644 index 0000000..dec9445 --- /dev/null +++ b/OnboardingKit/Sources/OnboardingKit/OnboardingKit.swift @@ -0,0 +1,3 @@ +struct OnboardingKit { + var text = "Hello, World!" +} diff --git a/Source/OnboardingView.swift b/OnboardingKit/Sources/OnboardingKit/OnboardingView.swift similarity index 97% rename from Source/OnboardingView.swift rename to OnboardingKit/Sources/OnboardingKit/OnboardingView.swift index 589fed7..dd34f5f 100644 --- a/Source/OnboardingView.swift +++ b/OnboardingKit/Sources/OnboardingKit/OnboardingView.swift @@ -168,7 +168,7 @@ public final class OnboardingView: UIView, CAAnimationDelegate { @objc internal func didRecognizeSwipe(_ recognizer: UISwipeGestureRecognizer) { switch recognizer.direction { - case UISwipeGestureRecognizerDirection.left: + case UISwipeGestureRecognizer.Direction.left: guard pageControlView.currentPage + 1 < pageControlView.pages else { return } @@ -192,7 +192,7 @@ public final class OnboardingView: UIView, CAAnimationDelegate { animateSubviews(current) animatePageView(previous, forState: .fadeIn) - case UISwipeGestureRecognizerDirection.right: + case UISwipeGestureRecognizer.Direction.right: guard pageControlView.currentPage - 1 >= 0 else { return } @@ -279,7 +279,7 @@ public final class OnboardingView: UIView, CAAnimationDelegate { arcCenter: center, radius: state == .expanded ? frame.height * 2 : 0.1, startAngle: 0, - endAngle: CGFloat(M_PI) * 2, + endAngle: CGFloat(Double.pi) * 2, clockwise: false ) } @@ -297,8 +297,8 @@ public final class OnboardingView: UIView, CAAnimationDelegate { animation.toValue = pathForState(state).cgPath animation.duration = 0.7 animation.isRemovedOnCompletion = false - animation.fillMode = kCAFillModeBoth - animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseIn) + animation.fillMode = CAMediaTimingFillMode.both + animation.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeIn) if let completion = completion { animation.delegate = self diff --git a/Source/OnboardingViewDataSource.swift b/OnboardingKit/Sources/OnboardingKit/OnboardingViewDataSource.swift similarity index 100% rename from Source/OnboardingViewDataSource.swift rename to OnboardingKit/Sources/OnboardingKit/OnboardingViewDataSource.swift diff --git a/Source/OnboardingViewDelegate.swift b/OnboardingKit/Sources/OnboardingKit/OnboardingViewDelegate.swift similarity index 100% rename from Source/OnboardingViewDelegate.swift rename to OnboardingKit/Sources/OnboardingKit/OnboardingViewDelegate.swift diff --git a/Source/PageControlView.swift b/OnboardingKit/Sources/OnboardingKit/PageControlView.swift similarity index 100% rename from Source/PageControlView.swift rename to OnboardingKit/Sources/OnboardingKit/PageControlView.swift diff --git a/Source/PageItemView.swift b/OnboardingKit/Sources/OnboardingKit/PageItemView.swift similarity index 98% rename from Source/PageItemView.swift rename to OnboardingKit/Sources/OnboardingKit/PageItemView.swift index 2a7e6e1..8924098 100644 --- a/Source/PageItemView.swift +++ b/OnboardingKit/Sources/OnboardingKit/PageItemView.swift @@ -70,7 +70,7 @@ public final class PageItemView: UIView { UIView.animate( withDuration: 0.5, delay: 0, - options: UIViewAnimationOptions(), + options: UIView.AnimationOptions(), animations: animations, completion: nil ) @@ -97,7 +97,7 @@ public final class PageItemView: UIView { UIView.animate( withDuration: 0.5, delay: 0, - options: UIViewAnimationOptions(), + options: UIView.AnimationOptions(), animations: animations, completion: nil ) diff --git a/Source/PageView.swift b/OnboardingKit/Sources/OnboardingKit/PageView.swift similarity index 100% rename from Source/PageView.swift rename to OnboardingKit/Sources/OnboardingKit/PageView.swift diff --git a/Source/TZStackView/TZSpacerView.swift b/OnboardingKit/Sources/OnboardingKit/TZStackView/TZSpacerView.swift similarity index 100% rename from Source/TZStackView/TZSpacerView.swift rename to OnboardingKit/Sources/OnboardingKit/TZStackView/TZSpacerView.swift diff --git a/Source/TZStackView/TZStackView.swift b/OnboardingKit/Sources/OnboardingKit/TZStackView/TZStackView.swift similarity index 97% rename from Source/TZStackView/TZStackView.swift rename to OnboardingKit/Sources/OnboardingKit/TZStackView/TZStackView.swift index af5168c..c62a736 100755 --- a/Source/TZStackView/TZStackView.swift +++ b/OnboardingKit/Sources/OnboardingKit/TZStackView/TZStackView.swift @@ -25,7 +25,7 @@ open class TZStackView: UIView { } } - open var axis: UILayoutConstraintAxis = .horizontal { + open var axis: NSLayoutConstraint.Axis = .horizontal { didSet { setNeedsUpdateConstraints() } @@ -348,10 +348,10 @@ open class TZStackView: UIView { } var topPriority: Float = 1000 - var topRelation: NSLayoutRelation = .lessThanOrEqual + var topRelation: NSLayoutConstraint.Relation = .lessThanOrEqual var bottomPriority: Float = 1000 - var bottomRelation: NSLayoutRelation = .greaterThanOrEqual + var bottomRelation: NSLayoutConstraint.Relation = .greaterThanOrEqual if alignment == .top || alignment == .leading { topPriority = 999.5 @@ -437,7 +437,7 @@ open class TZStackView: UIView { } // Chains together the given views using Leading/Trailing or Top/Bottom - fileprivate func createFillConstraints(_ views: [UIView], priority: Float = 1000, relatedBy relation: NSLayoutRelation = .equal, constant: CGFloat) -> [NSLayoutConstraint] { + fileprivate func createFillConstraints(_ views: [UIView], priority: Float = 1000, relatedBy relation: NSLayoutConstraint.Relation = .equal, constant: CGFloat) -> [NSLayoutConstraint] { var constraints = [NSLayoutConstraint]() var previousView: UIView? @@ -567,7 +567,7 @@ open class TZStackView: UIView { return constraints } - fileprivate func equalAttributes(_ views: [UIView], attribute: NSLayoutAttribute, priority: Float = 1000) -> [NSLayoutConstraint] { + fileprivate func equalAttributes(_ views: [UIView], attribute: NSLayoutConstraint.Attribute, priority: Float = 1000) -> [NSLayoutConstraint] { var currentPriority = priority var constraints = [NSLayoutConstraint]() if views.count > 0 { @@ -590,7 +590,7 @@ open class TZStackView: UIView { } // Convenience method to help make NSLayoutConstraint in a less verbose way - fileprivate func constraint(item view1: AnyObject, attribute attr1: NSLayoutAttribute, relatedBy relation: NSLayoutRelation = .equal, toItem view2: AnyObject?, attribute attr2: NSLayoutAttribute? = nil, multiplier: CGFloat = 1, constant c: CGFloat = 0, priority: Float = 1000) -> NSLayoutConstraint { + fileprivate func constraint(item view1: AnyObject, attribute attr1: NSLayoutConstraint.Attribute, relatedBy relation: NSLayoutConstraint.Relation = .equal, toItem view2: AnyObject?, attribute attr2: NSLayoutConstraint.Attribute? = nil, multiplier: CGFloat = 1, constant c: CGFloat = 0, priority: Float = 1000) -> NSLayoutConstraint { let attribute2 = attr2 != nil ? attr2! : attr1 diff --git a/Source/TZStackView/TZStackViewAlignment.swift b/OnboardingKit/Sources/OnboardingKit/TZStackView/TZStackViewAlignment.swift similarity index 100% rename from Source/TZStackView/TZStackViewAlignment.swift rename to OnboardingKit/Sources/OnboardingKit/TZStackView/TZStackViewAlignment.swift diff --git a/Source/TZStackView/TZStackViewDistribution.swift b/OnboardingKit/Sources/OnboardingKit/TZStackView/TZStackViewDistribution.swift similarity index 100% rename from Source/TZStackView/TZStackViewDistribution.swift rename to OnboardingKit/Sources/OnboardingKit/TZStackView/TZStackViewDistribution.swift diff --git a/Source/UILayoutPriority.swift b/OnboardingKit/Sources/OnboardingKit/UILayoutPriority.swift similarity index 100% rename from Source/UILayoutPriority.swift rename to OnboardingKit/Sources/OnboardingKit/UILayoutPriority.swift diff --git a/OnboardingKit/Tests/OnboardingKitTests/OnboardingKitTests.swift b/OnboardingKit/Tests/OnboardingKitTests/OnboardingKitTests.swift new file mode 100644 index 0000000..b9cc063 --- /dev/null +++ b/OnboardingKit/Tests/OnboardingKitTests/OnboardingKitTests.swift @@ -0,0 +1,11 @@ + import XCTest + @testable import OnboardingKit + + final class OnboardingKitTests: XCTestCase { + func testExample() { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct + // results. + XCTAssertEqual(OnboardingKit().text, "Hello, World!") + } + } diff --git a/Source/.DS_Store b/Source/.DS_Store index 393f9c5bcd3f390ff7a9e18e992fa06ee5d21a93..e38428d3029435c74ddbbdf2c45ea7be3b9d9e8a 100644 GIT binary patch delta 99 zcmZp1XmQvuU4*IO#^eBDDUsZK7nh`*{3Hej1`gXBzxFJ0J?sdTNWm&GnO&5R@xWw% ZVd>3=qUV@4vrBwunfy&e9xis82>|1%BCh}d delta 106 zcmZp1XmQvuU1YMKunb>rzKcsrX-P5z!xiS)Hc+7yG@;4-qI@8!&6c9)m?k!GY-X4E d&LW=85XO+nkjhYAkYN~{oS$3300u}3Spo6mAAbM< diff --git a/Source/TZStackView/.DS_Store b/Source/TZStackView/.DS_Store deleted file mode 100644 index 3b49f082a3076adc7c6ffc9a097c8715a05adc92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKO-lnY5PefCw0NnWL=g7qN$?-6Wfgk0;=zmBT4ixTA}pmTjU0jy~p?V2V+%Sc~?C zO;kYlu8m`4=;MZ7?cZcLC?*5;>Z@^1Kl%*D8nA~;Tr>IwcNk*C9lt_Od?nM2WsV2T zd&LsR`wGXdam)k9)9(y&vBGdr!*Gg%GkC-p&z#ekYpR`2$gew5C z$>w0J>kp&mB!;PB8Ie6SiK)bxDt5(?n9laZ;!?vhVoZnF Date: Tue, 29 Jun 2021 13:43:24 +0100 Subject: [PATCH 3/4] removed. --- README.md | 100 +---------------------------------------------- Source/.DS_Store | Bin 8196 -> 0 bytes 2 files changed, 1 insertion(+), 99 deletions(-) delete mode 100644 Source/.DS_Store diff --git a/README.md b/README.md index 08f1726..8d989a1 100644 --- a/README.md +++ b/README.md @@ -1,101 +1,3 @@ # OnboardingKit -

- -

- -`OnboardingKit` is a simple and interactive framework for making iOS onboarding experience easy and fun! - -### Requirements -- Swift 3 & Xcode 8.x.x (check out v0.0.3 & [swift2](https://github.com/Athlee/OnboardingKit/tree/swift2) branch for previous version) -- iOS 8+ - -### Features -- [x] Customizable page views -- [x] Customizable background images -- [x] Customizable containers' background images -- [x] Animatable page control -- [x] Animatable transitions between pages on swipes - -# Installation -### CocoaPods - -`OnboardingKit` is available for installation using the [CocoaPods](https://cocoapods.org). - -Add the following code to your `Podfile`: -```ruby - pod 'OnboardingKit' -``` - -# Usage -Import the module. - -```swift - import OnboardingKit -``` - -Add a `UIView` instance that inherits from `OnboardingView`. Traditionally, you do this through Storyboard or manually. - -Implement `OnboardingViewDataSource` and `OnboardingViewDelegate` protocols with required methods. What you have to do is to let `OnboardingView` know how many pages it should build and provide configurations for these pages. - -```swift - extension DataModel: OnboardingViewDataSource, OnboardingViewDelegate { - func numberOfPages() -> Int { - return 1 - } - - func onboardingView(_ onboardingView: OnboardingView, configurationForPage page: Int) -> OnboardingConfiguration { - return OnboardingConfiguration( - image: UIImage(named: "DemoImage")!, - itemImage: UIImage(named: "DemoIcon")!, - pageTitle: "Demo Title", - pageDescription: "Demo Description Text!", - backgroundImage: UIImage(named: "DemoBackground"), - topBackgroundImage: nil, // your image here - bottomBackgroundImage: nil // your image here - ) - } -``` - -`OnboardingConfiguration` is implemented this way: - -```swift - public struct OnboardingConfiguration { - let image: UIImage - let itemImage: UIImage - let pageTitle: String - let pageDescription: String - - let backgroundImage: UIImage? - let topBackgroundImage: UIImage? - let bottomBackgroundImage: UIImage? - } -``` - -If you need a custom configuration for a `PageView` this is possible with a delegate's method `onboardingView(_:, configurePageView _:, atPage _:)`. - -```swift - func onboardingView(_ onboardingView: OnboardingView, configurePageView pageView: PageView, atPage page: Int) { - pageView.titleLabel.textColor = UIColor.white - pageView.titleLabel.layer.shadowOpacity = 0.6 - pageView.titleLabel.layer.shadowColor = UIColor.black.cgColor - pageView.titleLabel.layer.shadowOffset = CGSize(width: 0, height: 1) - pageView.titleLabel.layer.shouldRasterize = true - pageView.titleLabel.layer.rasterizationScale = UIScreen.main.scale - - if DeviceTarget.IS_IPHONE_4 { - pageView.titleLabel.font = UIFont.boldSystemFont(ofSize: 30) - pageView.descriptionLabel.font = UIFont.systemFont(ofSize: 15) - } - } -``` - -That's it. :] - -# Community -* For help & feedback please use [issues](https://github.com/Athlee/OnboardingKit/issues). -* Got a new feature? Please submit a [pull request](https://github.com/Athlee/OnboardingKit/pulls). -* Email us with urgent queries. - -# License -`OnboardingKit` is available under the MIT license, see the [LICENSE](https://github.com/Athlee/OnboardingKit/blob/master/LICENSE) file for more information. +A description of this package. diff --git a/Source/.DS_Store b/Source/.DS_Store deleted file mode 100644 index e38428d3029435c74ddbbdf2c45ea7be3b9d9e8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 zcmeHMO-~a+7=8y(7cizG7!p6SM@51q9=a<{uI67GaoctU@2aVgqddMozA|`Gc(WZ?DX9d5zEw_Nup6AGLX4V z4Wc+A@#{PvNS^=$qRzNGD70?R&4+`MS=E+Dn_vKYx zY6Y|cXHo(Fd@zx@O)J}yRy;aTh!6m_56vQ>jyOPIOl8x`wxktMaLVX`DJWAR29t1H zH@Q1(TG^Jg5>8CQiK(8Micpy79XM0C6H800ORa!b;IINbcJHTg$|80z#N+p{X#1g! ztJqL%7j_Go?d_o?x=3>rP?5?a+8?JHHOQkE6fOF39NmZStv!(xZk`^{61l)e=rsxV z;{fg|&7-Gvs*n$CguX)b|A=gQ*^P@W9pJhFTmWQ97T#1i;0mZD_yf$qL%oi6tKCcD zD1|EV*$p4byaG-a`XurQm9}Ck-8_~jE5>GFtwJ%s`2Ap>Rp`aSX3e zHO@OiIbcc{3ty=K>Q!NVI??Qz5u5!`n`sd&E>^ue2WHv9ajDJG70YMRfgPk}dLnj$ zg}e0Ce(#-kHeY*j zwY9wDTlJi%Tu6=Ns_q7$IV*5iyqafwz8AeV`uV4j8r|HSnVudqr|wQQ$IQ*y*$LF| z%ru*+&xUdB_VnDt$Cc)r?YHmVfB5)m=bPBt#MH@5SLFA0`5mF{|m|Q|4-q}^pLdzT7i=)!1}WJYzE#*XBv;SP2}guJaNC4v;u-cgyXOx9EWZH kVTig3SB^<5+maS7NdNvt0RNM+ Date: Tue, 29 Jun 2021 13:47:27 +0100 Subject: [PATCH 4/4] Moved to root folder --- .DS_Store | Bin 10244 -> 8196 bytes .../contents.xcworkspacedata | 7 +++++ .../xcshareddata/IDEWorkspaceChecks.plist | 0 OnboardingKit.podspec | 27 ------------------ OnboardingKit/.gitignore | 7 ----- OnboardingKit/README.md | 3 -- OnboardingKit/Package.swift => Package.swift | 0 .../OnboardingKit/Anchor.swift | 0 .../OnboardingKit/CGRect.swift | 0 .../OnboardingKit/CompletionObject.swift | 0 .../OnboardingConfiguration.swift | 0 .../OnboardingKit/OnboardingKit.swift | 0 .../OnboardingKit/OnboardingView.swift | 0 .../OnboardingViewDataSource.swift | 0 .../OnboardingViewDelegate.swift | 0 .../OnboardingKit/PageControlView.swift | 0 .../OnboardingKit/PageItemView.swift | 0 .../OnboardingKit/PageView.swift | 0 .../TZStackView/TZSpacerView.swift | 0 .../TZStackView/TZStackView.swift | 0 .../TZStackView/TZStackViewAlignment.swift | 0 .../TZStackView/TZStackViewDistribution.swift | 0 .../OnboardingKit/UILayoutPriority.swift | 0 .../OnboardingKitTests.swift | 0 24 files changed, 7 insertions(+), 37 deletions(-) create mode 100644 .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata rename {OnboardingKit/.swiftpm => .swiftpm}/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (100%) delete mode 100644 OnboardingKit.podspec delete mode 100644 OnboardingKit/.gitignore delete mode 100644 OnboardingKit/README.md rename OnboardingKit/Package.swift => Package.swift (100%) rename {OnboardingKit/Sources => Sources}/OnboardingKit/Anchor.swift (100%) rename {OnboardingKit/Sources => Sources}/OnboardingKit/CGRect.swift (100%) rename {OnboardingKit/Sources => Sources}/OnboardingKit/CompletionObject.swift (100%) rename {OnboardingKit/Sources => Sources}/OnboardingKit/OnboardingConfiguration.swift (100%) rename {OnboardingKit/Sources => Sources}/OnboardingKit/OnboardingKit.swift (100%) rename {OnboardingKit/Sources => Sources}/OnboardingKit/OnboardingView.swift (100%) rename {OnboardingKit/Sources => Sources}/OnboardingKit/OnboardingViewDataSource.swift (100%) rename {OnboardingKit/Sources => Sources}/OnboardingKit/OnboardingViewDelegate.swift (100%) rename {OnboardingKit/Sources => Sources}/OnboardingKit/PageControlView.swift (100%) rename {OnboardingKit/Sources => Sources}/OnboardingKit/PageItemView.swift (100%) rename {OnboardingKit/Sources => Sources}/OnboardingKit/PageView.swift (100%) rename {OnboardingKit/Sources => Sources}/OnboardingKit/TZStackView/TZSpacerView.swift (100%) rename {OnboardingKit/Sources => Sources}/OnboardingKit/TZStackView/TZStackView.swift (100%) rename {OnboardingKit/Sources => Sources}/OnboardingKit/TZStackView/TZStackViewAlignment.swift (100%) rename {OnboardingKit/Sources => Sources}/OnboardingKit/TZStackView/TZStackViewDistribution.swift (100%) rename {OnboardingKit/Sources => Sources}/OnboardingKit/UILayoutPriority.swift (100%) rename {OnboardingKit/Tests => Tests}/OnboardingKitTests/OnboardingKitTests.swift (100%) diff --git a/.DS_Store b/.DS_Store index 8545bbfd5752de9514b8ef6f9be97c32f369f808..a2570cb1187826c4235bb4d38a4acf05d7b5f67e 100644 GIT binary patch delta 636 zcmZn(XmOBWU|?W$DortDU;r^WfEYvza8E20+o;DTHn~pBsGgl6m?58`l%a?rnIV;- zI49jOI5|JJ0H_YAS(FP%qN&KucX3I|$xi~xa73KFzHpiAVMlDLQixDhkWr6p-2 + + + + diff --git a/OnboardingKit/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from OnboardingKit/.swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to .swiftpm/xcode/package.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/OnboardingKit.podspec b/OnboardingKit.podspec deleted file mode 100644 index 929a7ca..0000000 --- a/OnboardingKit.podspec +++ /dev/null @@ -1,27 +0,0 @@ -# -# Be sure to run `pod spec lint OnboardingKit.podspec' to ensure this is a -# valid spec and to remove all comments including this before submitting the spec. -# -# To learn more about Podspec attributes see http://docs.cocoapods.org/specification.html -# To see working Podspecs in the CocoaPods repo see https://github.com/CocoaPods/Specs/ -# - -Pod::Spec.new do |s| - - s.name = "OnboardingKit" - s.version = "0.0.5" - s.summary = "A simple and interactive framework for making iOS onboarding experience easy and fun!" - s.homepage = "https://github.com/Athlee/OnboardingKit" - s.license = { :type => "MIT", :file => "LICENSE" } - s.author = { "Eugene Mozharovsky" => "mozharovsky@live.com" } - s.social_media_url = "http://twitter.com/dottieyottie" - s.platform = :ios, "10.0" - s.ios.deployment_target = "8.0" - s.source = { :git => "https://github.com/Athlee/OnboardingKit.git", :tag => s.version } - s.source_files = "Source/**/*.swift" - s.requires_arc = true - - # Waiting for Swift 3 support - # s.dependency 'TZStackView' - -end diff --git a/OnboardingKit/.gitignore b/OnboardingKit/.gitignore deleted file mode 100644 index bb460e7..0000000 --- a/OnboardingKit/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -.DS_Store -/.build -/Packages -/*.xcodeproj -xcuserdata/ -DerivedData/ -.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata diff --git a/OnboardingKit/README.md b/OnboardingKit/README.md deleted file mode 100644 index 8d989a1..0000000 --- a/OnboardingKit/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# OnboardingKit - -A description of this package. diff --git a/OnboardingKit/Package.swift b/Package.swift similarity index 100% rename from OnboardingKit/Package.swift rename to Package.swift diff --git a/OnboardingKit/Sources/OnboardingKit/Anchor.swift b/Sources/OnboardingKit/Anchor.swift similarity index 100% rename from OnboardingKit/Sources/OnboardingKit/Anchor.swift rename to Sources/OnboardingKit/Anchor.swift diff --git a/OnboardingKit/Sources/OnboardingKit/CGRect.swift b/Sources/OnboardingKit/CGRect.swift similarity index 100% rename from OnboardingKit/Sources/OnboardingKit/CGRect.swift rename to Sources/OnboardingKit/CGRect.swift diff --git a/OnboardingKit/Sources/OnboardingKit/CompletionObject.swift b/Sources/OnboardingKit/CompletionObject.swift similarity index 100% rename from OnboardingKit/Sources/OnboardingKit/CompletionObject.swift rename to Sources/OnboardingKit/CompletionObject.swift diff --git a/OnboardingKit/Sources/OnboardingKit/OnboardingConfiguration.swift b/Sources/OnboardingKit/OnboardingConfiguration.swift similarity index 100% rename from OnboardingKit/Sources/OnboardingKit/OnboardingConfiguration.swift rename to Sources/OnboardingKit/OnboardingConfiguration.swift diff --git a/OnboardingKit/Sources/OnboardingKit/OnboardingKit.swift b/Sources/OnboardingKit/OnboardingKit.swift similarity index 100% rename from OnboardingKit/Sources/OnboardingKit/OnboardingKit.swift rename to Sources/OnboardingKit/OnboardingKit.swift diff --git a/OnboardingKit/Sources/OnboardingKit/OnboardingView.swift b/Sources/OnboardingKit/OnboardingView.swift similarity index 100% rename from OnboardingKit/Sources/OnboardingKit/OnboardingView.swift rename to Sources/OnboardingKit/OnboardingView.swift diff --git a/OnboardingKit/Sources/OnboardingKit/OnboardingViewDataSource.swift b/Sources/OnboardingKit/OnboardingViewDataSource.swift similarity index 100% rename from OnboardingKit/Sources/OnboardingKit/OnboardingViewDataSource.swift rename to Sources/OnboardingKit/OnboardingViewDataSource.swift diff --git a/OnboardingKit/Sources/OnboardingKit/OnboardingViewDelegate.swift b/Sources/OnboardingKit/OnboardingViewDelegate.swift similarity index 100% rename from OnboardingKit/Sources/OnboardingKit/OnboardingViewDelegate.swift rename to Sources/OnboardingKit/OnboardingViewDelegate.swift diff --git a/OnboardingKit/Sources/OnboardingKit/PageControlView.swift b/Sources/OnboardingKit/PageControlView.swift similarity index 100% rename from OnboardingKit/Sources/OnboardingKit/PageControlView.swift rename to Sources/OnboardingKit/PageControlView.swift diff --git a/OnboardingKit/Sources/OnboardingKit/PageItemView.swift b/Sources/OnboardingKit/PageItemView.swift similarity index 100% rename from OnboardingKit/Sources/OnboardingKit/PageItemView.swift rename to Sources/OnboardingKit/PageItemView.swift diff --git a/OnboardingKit/Sources/OnboardingKit/PageView.swift b/Sources/OnboardingKit/PageView.swift similarity index 100% rename from OnboardingKit/Sources/OnboardingKit/PageView.swift rename to Sources/OnboardingKit/PageView.swift diff --git a/OnboardingKit/Sources/OnboardingKit/TZStackView/TZSpacerView.swift b/Sources/OnboardingKit/TZStackView/TZSpacerView.swift similarity index 100% rename from OnboardingKit/Sources/OnboardingKit/TZStackView/TZSpacerView.swift rename to Sources/OnboardingKit/TZStackView/TZSpacerView.swift diff --git a/OnboardingKit/Sources/OnboardingKit/TZStackView/TZStackView.swift b/Sources/OnboardingKit/TZStackView/TZStackView.swift similarity index 100% rename from OnboardingKit/Sources/OnboardingKit/TZStackView/TZStackView.swift rename to Sources/OnboardingKit/TZStackView/TZStackView.swift diff --git a/OnboardingKit/Sources/OnboardingKit/TZStackView/TZStackViewAlignment.swift b/Sources/OnboardingKit/TZStackView/TZStackViewAlignment.swift similarity index 100% rename from OnboardingKit/Sources/OnboardingKit/TZStackView/TZStackViewAlignment.swift rename to Sources/OnboardingKit/TZStackView/TZStackViewAlignment.swift diff --git a/OnboardingKit/Sources/OnboardingKit/TZStackView/TZStackViewDistribution.swift b/Sources/OnboardingKit/TZStackView/TZStackViewDistribution.swift similarity index 100% rename from OnboardingKit/Sources/OnboardingKit/TZStackView/TZStackViewDistribution.swift rename to Sources/OnboardingKit/TZStackView/TZStackViewDistribution.swift diff --git a/OnboardingKit/Sources/OnboardingKit/UILayoutPriority.swift b/Sources/OnboardingKit/UILayoutPriority.swift similarity index 100% rename from OnboardingKit/Sources/OnboardingKit/UILayoutPriority.swift rename to Sources/OnboardingKit/UILayoutPriority.swift diff --git a/OnboardingKit/Tests/OnboardingKitTests/OnboardingKitTests.swift b/Tests/OnboardingKitTests/OnboardingKitTests.swift similarity index 100% rename from OnboardingKit/Tests/OnboardingKitTests/OnboardingKitTests.swift rename to Tests/OnboardingKitTests/OnboardingKitTests.swift