diff --git a/.gitignore b/.gitignore index 93c86d3..f8b5717 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,14 @@ -# OS X -.DS_Store - # Xcode +# +# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore + +## Build generated build/ +DerivedData/ + +## Various settings +*.xcuserstate +*.DS_Store *.pbxuser !default.pbxuser *.mode1v3 @@ -12,26 +18,64 @@ build/ *.perspectivev3 !default.perspectivev3 xcuserdata/ -*.xccheckout -profile + +## Other *.moved-aside -DerivedData +*.xccheckout +*.xcscmblueprint + +### Xcode Patch ### +*.xcodeproj/* +!*.xcodeproj/project.pbxproj +!*.xcodeproj/xcshareddat +!*/xcuserdata/admin.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlista/ +!*.xcworkspace/contents.xcworkspacedata +/*.gcno + +## Obj-C/Swift specific *.hmap *.ipa +*.dSYM.zip +*.dSYM -# Bundler -.bundle +# CocoaPods +# +# We recommend against adding the Pods directory to your .gitignore. However +# you should judge for yourself, the pros and cons are mentioned at: +# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control +# +Pods/ +Podfile.lock +.DS_Store +# +# Add this line if you want to avoid checking in source code from the Xcode workspace +# *.xcworkspace +# Carthage +# # Add this line if you want to avoid checking in source code from Carthage dependencies. # Carthage/Checkouts Carthage/Build -# We recommend against adding the Pods directory to your .gitignore. However -# you should judge for yourself, the pros and cons are mentioned at: -# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control -# -# Note: if you ignore the Pods directory, make sure to uncomment -# `pod install` in .travis.yml +# swiftpm +Package.resolved + +# fastlane +# +# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the +# screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/#source-control + +fastlane/report.xml +fastlane/Preview.html +# fastlane/screenshots/**/*.png +fastlane/test_output + +# Code Injection # -# Pods/ +# After new code Injection tools there's a generated folder /iOSInjectionProject +# https://github.com/johnno1962/injectionforxcode + +iOSInjectionProject/ diff --git a/Example/JXBanner.xcodeproj/project.pbxproj b/Example/JXBanner.xcodeproj/project.pbxproj index 08569d8..6761992 100644 --- a/Example/JXBanner.xcodeproj/project.pbxproj +++ b/Example/JXBanner.xcodeproj/project.pbxproj @@ -450,8 +450,6 @@ buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - ); inputPaths = ( "${PODS_ROOT}/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example-frameworks.sh", "${BUILT_PRODUCTS_DIR}/JXBanner/JXBanner.framework", @@ -459,8 +457,6 @@ "${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework", ); name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - ); outputPaths = ( "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JXBanner.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JXPageControl.framework", @@ -566,7 +562,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -612,7 +608,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; @@ -629,7 +625,7 @@ CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = 29HA8N9RQ5; INFOPLIST_FILE = JXBanner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MODULE_NAME = ExampleApp; PRODUCT_BUNDLE_IDENTIFIER = com.tanjx.jxbanner; @@ -649,7 +645,7 @@ CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = 29HA8N9RQ5; INFOPLIST_FILE = JXBanner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MODULE_NAME = ExampleApp; PRODUCT_BUNDLE_IDENTIFIER = com.tanjx.jxbanner; diff --git a/Example/Podfile b/Example/Podfile index 2ba66b7..d7d549d 100644 --- a/Example/Podfile +++ b/Example/Podfile @@ -1,4 +1,5 @@ use_frameworks! +platform :ios, '11.0' target 'JXBanner_Example' do pod 'JXBanner', :path => '../' @@ -6,3 +7,21 @@ target 'JXBanner_Example' do pod 'SnapKit' end + +#---hooks--- +$iOSVersion = '11.0' +post_install do |installer| + installer.pods_project.targets.each do |target| + target.build_configurations.each do |config| + # Pod Architectures For Simulators + # Needed for building for simulator on M1 Macs + config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO' + # 避免pod中bundle target need sign + config.build_settings['CODE_SIGN_IDENTITY'] = '' + # Hook Pod target deployment version for xcode13 + if Gem::Version.new($iOSVersion) > Gem::Version.new(config.build_settings['IPHONEOS_DEPLOYMENT_TARGET']) + config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = $iOSVersion + end + end + end +end diff --git a/Example/Podfile.lock b/Example/Podfile.lock deleted file mode 100644 index d014281..0000000 --- a/Example/Podfile.lock +++ /dev/null @@ -1,55 +0,0 @@ -PODS: - - JXBanner (0.1.0): - - JXBanner/Banner (= 0.1.0) - - JXBanner/PageControl (= 0.1.0) - - JXBanner/Banner (0.1.0): - - JXBanner/Banner/API (= 0.1.0) - - JXBanner/Banner/Banner (= 0.1.0) - - JXBanner/Banner/Cell (= 0.1.0) - - JXBanner/Banner/Common (= 0.1.0) - - JXBanner/Banner/Transform (= 0.1.0) - - JXBanner/Banner/API (0.1.0): - - JXBanner/Banner/Cell - - JXBanner/PageControl - - JXBanner/Banner/Banner (0.1.0): - - JXBanner/Banner/API - - JXBanner/Banner/Common - - JXBanner/Banner/Transform - - JXBanner/Banner/Cell (0.1.0) - - JXBanner/Banner/Common (0.1.0) - - JXBanner/Banner/Transform (0.1.0): - - JXBanner/Banner/API - - JXBanner/PageControl (0.1.0): - - JXPageControl - - JXPageControl (0.1.3): - - JXPageControl/Common (= 0.1.3) - - JXPageControl/Jump (= 0.1.3) - - JXPageControl/Transform (= 0.1.3) - - JXPageControl/Common (0.1.3) - - JXPageControl/Jump (0.1.3): - - JXPageControl/Common - - JXPageControl/Transform (0.1.3): - - JXPageControl/Common - - SnapKit (4.2.0) - -DEPENDENCIES: - - JXBanner (from `../`) - - SnapKit - -SPEC REPOS: - https://github.com/cocoapods/specs.git: - - JXPageControl - - SnapKit - -EXTERNAL SOURCES: - JXBanner: - :path: "../" - -SPEC CHECKSUMS: - JXBanner: d32dbf30f1d4fb014aad26f65e69b0ea32e32efe - JXPageControl: eea52838699a4949063e600b25eb9e8b6e20ae3f - SnapKit: fe8a619752f3f27075cc9a90244d75c6c3f27e2a - -PODFILE CHECKSUM: 55a2f798d49bb61948e4d464dc12db95c3ea531b - -COCOAPODS: 1.6.1 diff --git a/Example/Pods/JXBanner/JXBanner/Classes/Banner/API/JXBannerDataSource.swift b/Example/Pods/JXBanner/JXBanner/Classes/Banner/API/JXBannerDataSource.swift deleted file mode 100644 index 4d101cf..0000000 --- a/Example/Pods/JXBanner/JXBanner/Classes/Banner/API/JXBannerDataSource.swift +++ /dev/null @@ -1,131 +0,0 @@ -// -// JXBannerDataSource.swift -// JXBanner_Example -// -// Created by Code_JX on 2019/6/1. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - -public protocol JXBannerDataSource: class { - - /** - Use reuseIdentifier to register bannerCell for reuse. - - - parameter banner: An instance of JXBannerType. - - returns: the JXBannerCellRegister instance - */ - - func jxBanner(_ banner: JXBannerType) - -> (JXBannerCellRegister) - - /** - How many pages does banner View have? - - - parameter banner: An instance of JXBannerType. - - returns: Number Of Items - */ - - func jxBanner(numberOfItems banner: JXBannerType) - -> Int - - /** - This callback changes the banner item - by setting the JXBannerCell - - - parameters: - - banner: An instance of JXBannerType. - - index: index that the cell will display - - cell: XBannerBaseCell or a subclass of JXBannerBaseCell - - - returns: XBannerBaseCell or a subclass of JXBannerBaseCell - */ - func jxBanner(_ banner: JXBannerType, - cellForItemAt index: Int, - cell: JXBannerBaseCell) - -> JXBannerBaseCell - - /** - This callback changes the banner - by setting Params - - - parameters: - - banner: An instance of JXBannerType. - - params: JXBannerParams is a collection of properties that banner can set - - - returns: JXBannerParams - */ - func jxBanner(_ banner: JXBannerType, - params: JXBannerParams) - -> JXBannerParams - - /** - This callback changes the banner layout - by setting "JXBannerLayoutParams" - - - parameters: - - banner: An instance of JXBannerType. - - params: JXBannerLayoutParams is a collection of properties that banner layout can set - - - returns: JXBannerLayoutParams - */ - func jxBanner(_ banner: JXBannerType, - layoutParams: JXBannerLayoutParams) - -> JXBannerLayoutParams - - /** - This callback function changes the banner default pageControl - by creating "JXBannerPageControlBuilder" - - - parameters: - - banner: An instance of JXBannerType. - - numberOfPages: page count - - coverView: The uppermost UIView covered - - builder: "JXBannerPageControlBuilder" - - - returns: JXBannerPageControlBuilder - */ - func jxBanner(pageControl banner: JXBannerType, - numberOfPages: Int, - coverView: UIView, - builder: JXBannerPageControlBuilder) -> JXBannerPageControlBuilder -} - -/// The default implementation -public extension JXBannerDataSource { - - /// Default JXBannerParams - func jxBanner(_ banner: JXBannerType, - params: JXBannerParams) - -> JXBannerParams { - return params - } - - /// Default JXBannerLayoutParams - func jxBanner(_ banner: JXBannerType, - layoutParams: JXBannerLayoutParams) - -> JXBannerLayoutParams { - return layoutParams - } - - /// Default pageControl - func jxBanner(pageControl banner: JXBannerType, - numberOfPages: Int, - coverView: UIView, - builder: JXBannerPageControlBuilder) -> JXBannerPageControlBuilder { - let pageControl = JXBannerPageControlDefault() - pageControl.frame = CGRect(x: 0, - y: coverView.bounds.height - 24, - width: coverView.bounds.width, - height: 24) - pageControl.autoresizingMask = [ - .flexibleWidth, - .flexibleTopMargin - ] - builder.pageControl = pageControl - - return builder - } - -} diff --git a/Example/Pods/JXBanner/JXBanner/Classes/Banner/API/JXBannerDelegate.swift b/Example/Pods/JXBanner/JXBanner/Classes/Banner/API/JXBannerDelegate.swift deleted file mode 100644 index 1008f43..0000000 --- a/Example/Pods/JXBanner/JXBanner/Classes/Banner/API/JXBannerDelegate.swift +++ /dev/null @@ -1,59 +0,0 @@ -// -// JXBannerDelegate.swift -// Alamofire -// -// Created by Code_JX on 2019/6/1. -// - -import UIKit - -public protocol JXBannerDelegate: class { - - /** - Called when the cell is clicked - - - parameters: - - banner: An instance of JXBannerType. - - index: The index of the cell is clicked - */ - - func jxBanner(_ banner: JXBannerType, - didSelectItemAt index: Int) - - /** - Returns the index of the item in the middle of the bannerview - - - parameters: - - banner: An instance of JXBannerType. - - index: the index of the item in the middle of the bannerview - */ - - func jxBanner(_ banner: JXBannerType, - center index: Int) - - /** - This is a view to add mask subview - - - parameters: - - banner: An instance of JXBannerType. - - coverView: This is a view to add mask subview - */ - - func jxBanner(_ banner: JXBannerType, - coverView: UIView) -} - -/// The default implementation -public extension JXBannerDelegate { - - func jxBanner(_ banner: JXBannerType, - didSelectItemAt index: Int) { - print(" -- jxBanner select item -- \(index) -- ") - } - - func jxBanner(_ banner: JXBannerType, - center index: Int) {} - - func jxBanner(_ banner: JXBannerType, - coverView: UIView) {} -} diff --git a/Example/Pods/JXBanner/JXBanner/Classes/Banner/API/JXBannerLayoutParams.swift b/Example/Pods/JXBanner/JXBanner/Classes/Banner/API/JXBannerLayoutParams.swift deleted file mode 100644 index 9709e29..0000000 --- a/Example/Pods/JXBanner/JXBanner/Classes/Banner/API/JXBannerLayoutParams.swift +++ /dev/null @@ -1,70 +0,0 @@ -// -// JXBannerLayoutParams.swift -// JXBanner_Example -// -// Created by Code_JX on 2019/5/18. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - -public class JXBannerLayoutParams { - - // base - public var itemSize: CGSize? - public var itemSpacing: CGFloat = 0.0 - public var layoutType: JXBannerTransformable? - - // JXBannerTransformable - public var minimumScale: CGFloat = 0.8 - public var minimumAlpha: CGFloat = 1.0 - public var maximumAngle: CGFloat = 0.2 - public var rateOfChange: CGFloat = 0.4 - public var rateHorisonMargin: CGFloat = 0.2 - -} - -// MARK: - Set function -public extension JXBannerLayoutParams { - - func itemSize(_ itemSize: CGSize) -> JXBannerLayoutParams { - self.itemSize = itemSize - return self - } - - func itemSpacing(_ itemSpacing: CGFloat) -> JXBannerLayoutParams { - self.itemSpacing = itemSpacing - return self - } - - func layoutType(_ layoutType: JXBannerTransformable?) -> JXBannerLayoutParams { - self.layoutType = layoutType - return self - } - - func minimumScale(_ minimumScale: CGFloat) -> JXBannerLayoutParams { - self.minimumScale = minimumScale - return self - } - - func minimumAlpha(_ minimumAlpha: CGFloat) -> JXBannerLayoutParams { - self.minimumAlpha = minimumAlpha - return self - } - - func maximumAngle(_ maximumAngle: CGFloat) -> JXBannerLayoutParams { - self.maximumAngle = maximumAngle - return self - } - - func rateOfChange(_ rateOfChange: CGFloat) -> JXBannerLayoutParams { - self.rateOfChange = rateOfChange - return self - } - - func rateHorisonMargin(_ rateHorisonMargin: CGFloat) -> JXBannerLayoutParams { - self.rateHorisonMargin = rateHorisonMargin - return self - } - -} diff --git a/Example/Pods/JXBanner/JXBanner/Classes/Banner/API/JXBannerParams.swift b/Example/Pods/JXBanner/JXBanner/Classes/Banner/API/JXBannerParams.swift deleted file mode 100644 index 304aa52..0000000 --- a/Example/Pods/JXBanner/JXBanner/Classes/Banner/API/JXBannerParams.swift +++ /dev/null @@ -1,108 +0,0 @@ -// -// JXBannerParams.swift -// JXBanner_Example -// -// Created by Code_JX on 2019/5/30. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - -// MARK: - Property list -public class JXBannerParams { - - public var isAutoPlay: Bool = true - - public var isBounces: Bool = true - - public var isShowPageControl: Bool = true - - public var timeInterval: TimeInterval = 5.0 - - public var cycleWay: CycleWay = .forward - - public var edgeTransitionType: JXBannerTransitionType? = .fade - - public var edgeTransitionSubtype: CATransitionSubtype = .fromRight - - internal var currentRollingDirection: RollingDirection = .right -} - -// MARK: - Public enum -public extension JXBannerParams { - - enum JXBannerTransitionType : String { - case fade - case push - case reveal - case moveIn - case cube - case suckEffect - case oglFlip - case rippleEffect - case pageCurl - case pageUnCurl - case cameraIrisHollowOpen - case cameraIrisHollowClose - case curlDown - case curlUp - case flipFromLeft - case flipFromRight - } - - enum CycleWay { - case forward - case skipEnd - case rollingBack - } - - enum RollingDirection { - case right - case left - } -} - -// MARK: - Set function -public extension JXBannerParams { - - func isAutoPlay(_ isAutoPlay: Bool) -> JXBannerParams { - self.isAutoPlay = isAutoPlay - return self - } - - func isBounces(_ isBounces: Bool) -> JXBannerParams { - self.isBounces = isBounces - return self - } - - func isShowPageControl(_ isShowPageControl: Bool) -> JXBannerParams { - self.isShowPageControl = isShowPageControl - return self - } - - func timeInterval(_ timeInterval: TimeInterval) -> JXBannerParams { - self.timeInterval = timeInterval - return self - } - - func cycleWay(_ cycleWay: CycleWay) -> JXBannerParams { - self.cycleWay = cycleWay - return self - } - - func edgeTransitionType(_ edgeTransitionType: JXBannerTransitionType?) -> JXBannerParams { - self.edgeTransitionType = edgeTransitionType - return self - } - - func edgeTransitionSubtype(_ edgeTransitionSubtype: CATransitionSubtype) -> JXBannerParams { - self.edgeTransitionSubtype = edgeTransitionSubtype - return self - } - - internal func currentRollingDirection(_ currentRollingDirection: RollingDirection) -> JXBannerParams { - self.currentRollingDirection = currentRollingDirection - return self - } - -} diff --git a/Example/Pods/JXBanner/JXBanner/Classes/Banner/API/JXBannerTransformable.swift b/Example/Pods/JXBanner/JXBanner/Classes/Banner/API/JXBannerTransformable.swift deleted file mode 100644 index 10b4040..0000000 --- a/Example/Pods/JXBanner/JXBanner/Classes/Banner/API/JXBannerTransformable.swift +++ /dev/null @@ -1,22 +0,0 @@ -// -// JXBannerTransformable.swift -// JXBanner_Example -// -// Created by Code_JX on 2019/5/14. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - -public protocol JXBannerTransformable { - - /** - This callback will provide all the UICollectionViewLayoutAttributes, - you can change his "transform" change the presentation - - */ - - func transformToAttributes(collectionView: UICollectionView, - params: JXBannerLayoutParams, - attributes: UICollectionViewLayoutAttributes) -} diff --git a/Example/Pods/JXBanner/JXBanner/Classes/Banner/API/JXBannerType.swift b/Example/Pods/JXBanner/JXBanner/Classes/Banner/API/JXBannerType.swift deleted file mode 100644 index b6d9da0..0000000 --- a/Example/Pods/JXBanner/JXBanner/Classes/Banner/API/JXBannerType.swift +++ /dev/null @@ -1,38 +0,0 @@ -// -// JXBaseBanner.swift -// JXBanner_Example -// -// Created by Code_JX on 2019/5/11. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - -public protocol JXBannerType: UIView { - - /// Data source protocol for JXBannerType - var dataSource: JXBannerDataSource? { get set } - - /// Delegate protocol for JXBannerType - var delegate: JXBannerDelegate? { get set } - - /// Distinguish the banner - var indentify: String? { get set } - - /// The refresh UI - func reloadView() - -} - -/// A structure that registers cells so that -/// we can distinguish and retrieve reused cells from the cache pool -public struct JXBannerCellRegister { - - var type: JXBannerBaseCell.Type - var reuseIdentifier: String - - public init(type: JXBannerBaseCell.Type, reuseIdentifier: String) { - self.type = type - self.reuseIdentifier = reuseIdentifier - } -} diff --git a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Banner/JXBanner.swift b/Example/Pods/JXBanner/JXBanner/Classes/Banner/Banner/JXBanner.swift deleted file mode 100644 index e149f1f..0000000 --- a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Banner/JXBanner.swift +++ /dev/null @@ -1,342 +0,0 @@ -// -// JXBanner.swift -// JXBanner_Example -// -// Created by Coder_TanJX on 2019/6/6. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit -import JXPageControl - -// MARK: - JXBannerType -public class JXBanner: JXBaseBanner, JXBannerType { - - public var indentify: String? = "JXBaseBanner" - - public required init?(coder aDecoder: NSCoder) { - super.init(coder: aDecoder) - setupBase() - } - - public override init(frame: CGRect) { - super.init(frame: frame) - setupBase() - } - - private func setupBase() { - collectionView.dataSource = self - collectionView.delegate = self - } - - public weak var dataSource: JXBannerDataSource? { didSet { reloadView() }} - - public weak var delegate: JXBannerDelegate? - - /// Outside of pageControl - internal var pageControl: (UIView & JXPageControlType)? - - override func setCurrentIndex() { - let point = CGPoint(x: collectionView.contentOffset.x + collectionView.frame.width * 0.5, - y: collectionView.contentOffset.y + collectionView.frame.height * 0.5) - if let indexPath = collectionView.indexPathForItem(at: point) { - let currentPage = indexOfIndexPath(indexPath) - pageControl?.currentPage = currentPage - delegate?.jxBanner(self, center: currentPage) - } - } - - /// The refresh UI, get data from - public func reloadView() { - - // Stop Animation - stop() - - // refresh - refreshDataSource() - refreshDelegate() - refreshData() - - // Start Animation - start() - } -} - -// MARK: - Private mothod -extension JXBanner { - - private func refreshDataSource() { - - // DataSource - if let _ = dataSource?.jxBanner(numberOfItems: self), - let tempDataSource = dataSource { - - // Register cell - if let register = dataSource?.jxBanner(self) { - collectionView.register( - register.type, - forCellWithReuseIdentifier: register.reuseIdentifier) - cellRegister = register - } - - // numberOfItems - pageCount = tempDataSource.jxBanner(numberOfItems: self) - - // params - params = dataSource?.jxBanner(self, - params: params) ?? params - - // layoutParams - layout.params = tempDataSource.jxBanner(self, - layoutParams: layout.params!) - - // PageControl - refreshPageControl() - } - } - - - private func refreshPageControl() { - self.pageControl?.removeFromSuperview() - self.pageControl = nil - if params.isShowPageControl { - let pBuilder = dataSource?.jxBanner(pageControl: self, - numberOfPages: pageCount, - coverView: coverView, - builder: JXBannerPageControlBuilder()) - if let tempPageControl = pBuilder?.pageControl{ - pageControl = tempPageControl - pageControl?.numberOfPages = pageCount - coverView.addSubview(tempPageControl) - } - if let layout = pBuilder?.layout { - layout() - } - } - } - - private func refreshDelegate() { - // Dalegate - if let tempDelegate = delegate { - tempDelegate.jxBanner(self, coverView: coverView) - } - } - - private func refreshData() { - - // Reinitialize data - params.currentRollingDirection = .right - collectionView.setCollectionViewLayout(layout, animated: true) - collectionView.bounces = params.isBounces - collectionView.reloadData() - if pageCount == 1, - params.cycleWay == .forward { - params.cycleWay = .skipEnd - } - placeholderImgView.isHidden = pageCount > 0 - placeholderImgView.backgroundColor = UIColor.red - reinitializeIndexPath() - } - - /// Reload current indexpath - private func reinitializeIndexPath() { - if pageCount > 0, - params.cycleWay == .forward { - // Take the middle group and show it - currentIndexPath = IndexPath(row: (kMultiplier * pageCount / 2), - section: 0) - }else { - currentIndexPath = IndexPath(row: 0, section: 0) - } - if pageCount > 0 { - scrollToIndexPath(currentIndexPath, animated: false) - } - } - - @objc internal override func autoScroll() { - - // Determine if it's on screen - guard isShowingOnWindow() != false, - pageCount > 1 else { return } - - switch params.cycleWay { - - case .forward: - - currentIndexPath = currentIndexPath + 1 - scrollToIndexPath(currentIndexPath, - animated: true) - case .skipEnd: - - if currentIndexPath.row == pageCount - 1 { - currentIndexPath = IndexPath(row: 0, section: 0) - - scrollToIndexPath(currentIndexPath, animated: false) - scrollViewDidEndScrollingAnimation(collectionView) - if let transitionType = params.edgeTransitionType?.rawValue { - let transition = CATransition() - transition.duration = CFTimeInterval(0.3) - transition.subtype = params.edgeTransitionSubtype - transition.type = CATransitionType(rawValue: transitionType) - transition.isRemovedOnCompletion = true - collectionView.layer.add(transition, forKey: nil) - } - - } else { - currentIndexPath = currentIndexPath + 1 - scrollToIndexPath(currentIndexPath, animated: true) - } - - case .rollingBack: - - - switch params.currentRollingDirection { - - case .right: - - if currentIndexPath.row == pageCount - 1 { - currentIndexPath = currentIndexPath - 1 - params.currentRollingDirection = .left - }else { - currentIndexPath = currentIndexPath + 1 - } - scrollToIndexPath(currentIndexPath, animated: true) - - case .left: - - if currentIndexPath.row == 0 { - currentIndexPath = currentIndexPath + 1 - params.currentRollingDirection = .right - }else { - currentIndexPath = currentIndexPath - 1 - } - scrollToIndexPath(currentIndexPath, animated: true) - } - } - } - - /// UICollectionCell rolling error detection - private func indexPathErrorDetection() { - let indexPaths = collectionView.indexPathsForVisibleItems - var attriArr = [UICollectionViewLayoutAttributes?]() - for indexPath in indexPaths { - let attri = collectionView.layoutAttributesForItem(at: indexPath) - attriArr.append(attri) - } - let centerX: CGFloat = collectionView.contentOffset.x + collectionView.frame.width * 0.5 - var minSpace = CGFloat(MAXFLOAT) - var shouldSet = true - if layout.params?.layoutType != nil && indexPaths.count <= 2 { - shouldSet = false - } - for atr in attriArr { - if let obj = atr, shouldSet { - obj.zIndex = 0; - if(abs(minSpace) > abs(obj.center.x - centerX)) { - minSpace = obj.center.x - centerX; - currentIndexPath = obj.indexPath; - } - } - } - scrollViewWillBeginDecelerating(collectionView) - } -} - -// MARK: - UIScrollViewDelegate -extension JXBanner { - - /// Began to drag and drop - public func scrollViewWillBeginDragging( - _ scrollView: UIScrollView) { pause() } - - /// The drag is about to end - public func scrollViewWillEndDragging( - _ scrollView: UIScrollView, - withVelocity velocity: CGPoint, - targetContentOffset: UnsafeMutablePointer) { - - pause() - - if params.cycleWay != .forward { - if velocity.x >= 0 , - currentIndexPath.row == pageCount - 1 { return } - if velocity.x <= 0 , - currentIndexPath.row == 0 { return } - } - - if velocity.x > 0 { - // Slide left. Next slide - currentIndexPath = currentIndexPath + 1 - }else if velocity.x < 0 { - // Slide right. Go ahead - currentIndexPath = currentIndexPath - 1 - }else { - // Error detection - indexPathErrorDetection() - } - } - - /// It's going to start slowing down - public func scrollViewWillBeginDecelerating( - _ scrollView: UIScrollView) { - scrollToIndexPath(currentIndexPath, - animated: true) - } - - /// End to slow down - public func scrollViewDidEndDecelerating( - _ scrollView: UIScrollView) {} - - /// Scroll animation complete - public func scrollViewDidEndScrollingAnimation( - _ scrollView: UIScrollView) { - start() - setCurrentIndex() - } - - /// Rolling in the - public func scrollViewDidScroll( - _ scrollView: UIScrollView) {} -} - -// MARK:- UICollectionViewDataSource, UICollectionViewDelegate -extension JXBanner: - UICollectionViewDataSource, -UICollectionViewDelegate { - - public func collectionView(_ collectionView: UICollectionView, - numberOfItemsInSection section: Int) - -> Int { - return params.cycleWay == .forward ? kMultiplier * pageCount : pageCount - } - - public func collectionView(_ collectionView: UICollectionView, - cellForItemAt indexPath: IndexPath) - -> UICollectionViewCell { - - let cell = collectionView.dequeueReusableCell( - withReuseIdentifier: cellRegister.reuseIdentifier, - for: indexPath) - - if let bannerViewCell = cell as? JXBannerBaseCell { - return dataSource?.jxBanner(self, - cellForItemAt: indexOfIndexPath(indexPath), - cell: bannerViewCell) ?? bannerViewCell - } - - return cell - } - - - public func collectionView(_ collectionView: UICollectionView, - didSelectItemAt indexPath: IndexPath) { - delegate?.jxBanner(self, - didSelectItemAt: indexOfIndexPath(indexPath)) - indexPathErrorDetection() - } - - func indexOfIndexPath(_ indexPath : IndexPath) - -> Int { - return Int(indexPath.item % pageCount) - } -} diff --git a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Banner/JXBannerLayout.swift b/Example/Pods/JXBanner/JXBanner/Classes/Banner/Banner/JXBannerLayout.swift deleted file mode 100644 index 1141a66..0000000 --- a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Banner/JXBannerLayout.swift +++ /dev/null @@ -1,82 +0,0 @@ -// -// JXBannerLayout.swift -// NewBanner -// -// Created by Code_JX on 2019/5/12. -// Copyright © 2019 China. All rights reserved. -// - -import UIKit - -class JXBannerLayout: UICollectionViewFlowLayout { - - override init() { - super.init() - } - - required init?(coder aDecoder: NSCoder) { - super.init(coder: aDecoder) - } - - var params: JXBannerLayoutParams? { - didSet { - if let params = params { - itemSize = params.itemSize ?? collectionView?.bounds.size ?? CGSize(width: 2, height: 2) - minimumLineSpacing = params.itemSpacing - minimumInteritemSpacing = params.itemSpacing - } - } - } - - override func shouldInvalidateLayout(forBoundsChange newBounds: CGRect) -> - Bool { - if let _ = params?.layoutType { return true } - return super.shouldInvalidateLayout(forBoundsChange: newBounds) - } - - override func prepare() { - super.prepare() - scrollDirection = .horizontal - - // Set the margins - let inset: CGFloat = (collectionView!.frame.width - itemSize.width) * 0.5 - sectionInset = UIEdgeInsets(top: 0, - left: inset, - bottom: 0, - right: inset) - } - - override func layoutAttributesForElements(in rect: CGRect) -> - [UICollectionViewLayoutAttributes]? { - - if let layoutType = params?.layoutType { - - let attributesArray: [UICollectionViewLayoutAttributes] = - NSArray(array: super.layoutAttributesForElements(in: rect) ?? [], - copyItems: true) as! [UICollectionViewLayoutAttributes] - let visibleRect = CGRect(origin: collectionView!.contentOffset, - size: collectionView!.bounds.size) - - for attributes in attributesArray { - if !visibleRect.intersects(attributes.frame) { continue } - applyTransformToAttributes(attributes: attributes, - layoutType: layoutType) - } - return attributesArray - - } - return super.layoutAttributesForElements(in: rect) - } - - //MARK:- Transform - func applyTransformToAttributes(attributes: UICollectionViewLayoutAttributes, - layoutType: JXBannerTransformable) -> Void { - let transformContext: JXBannerTransformContext = JXBannerTransformContext(transform: layoutType) - transformContext.transformToAttributes(collectionView: collectionView!, - params: params!, - attributes: attributes) - } - -} - - diff --git a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Banner/JXBaseBanner.swift b/Example/Pods/JXBanner/JXBanner/Classes/Banner/Banner/JXBaseBanner.swift deleted file mode 100644 index 24b6140..0000000 --- a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Banner/JXBaseBanner.swift +++ /dev/null @@ -1,221 +0,0 @@ -// -// JXBaseBanner.swift -// JXBanner_Example -// -// Created by Coder_TanJX on 2019/6/6. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - -let kMultiplier = 1000 - -public class JXBaseBanner: UIView { - - required init?(coder aDecoder: NSCoder) { - super.init(coder: aDecoder) - self.autoresizingMask = [] - installNotifications() - setupSubViews() - } - - override init(frame: CGRect) { - super.init(frame: frame) - installNotifications() - setupSubViews() - } - - /// Setup UI - func setupSubViews() { - self.addSubview(placeholderImgView) - self.addSubview(collectionView) - self.addSubview(coverView) - } - - func installNotifications() { - NotificationCenter.default.addObserver( - self, - selector: #selector(applicationDidEnterBackground(_:)), - name: UIApplication.didEnterBackgroundNotification, - object: nil - ) - NotificationCenter.default.addObserver( - self, - selector: #selector(applicationDidBecomeActive(_:)), - name: UIApplication.didBecomeActiveNotification, - object: nil - ) - } - - deinit { - stop() - NotificationCenter.default.removeObserver(self) - print("\(#function) ----------> \(self)") - } - - //MARK: - override - override public func layoutSubviews() { - super.layoutSubviews() - if let itemSize = layout.params?.itemSize { - let x = (bounds.size.width - itemSize.width) * 0.5 - let y = (bounds.size.height - itemSize.height) * 0.5 - placeholderImgView.frame = CGRect(x: x, y: y, width: itemSize.width, height: itemSize.height) - }else { - placeholderImgView.frame = bounds - layout.params = layout.params - } - if pageCount > 0 { - scrollToIndexPath(currentIndexPath, animated: false) - } - } - - override public func removeFromSuperview() { - stop() - super.removeFromSuperview() - } - - // MARK: - The property list of the banner - var timer: Timer? - - lazy var layout: JXBannerLayout = { - let layout = JXBannerLayout() - layout.params = JXBannerLayoutParams() - return layout - }() - - public lazy var placeholderImgView: UIImageView = { - let placeholder = UIImageView() - return placeholder - }() - - lazy var collectionView: UICollectionView = { - let collectionView: UICollectionView = - UICollectionView(frame: self.bounds, - collectionViewLayout: self.layout) - collectionView.backgroundColor = UIColor.clear - collectionView.isPagingEnabled = false - collectionView.showsVerticalScrollIndicator = false - collectionView.showsHorizontalScrollIndicator = false - collectionView.decelerationRate = UIScrollView.DecelerationRate(rawValue: 0.01) - collectionView.autoresizingMask = [ - .flexibleWidth, - .flexibleHeight - ] - return collectionView - }() - - lazy var coverView: UIView = { - let coverView: UIView = UIView() - coverView.frame = self.bounds - coverView.isUserInteractionEnabled = false - coverView.autoresizingMask = [ - .flexibleWidth, - .flexibleHeight - ] - return coverView - }() - - var pageCount: Int = 0 - - var params: JXBannerParams = JXBannerParams() - - /// Current shows indexpath of cell - var currentIndexPath: IndexPath = IndexPath(row: 0, section: 0) - - var cellRegister: JXBannerCellRegister = JXBannerCellRegister(type: JXBannerCell.self, - reuseIdentifier: "JXBannerCell") - func setCurrentIndex(){} -} - -// MARK: - Method of timer animation -extension JXBaseBanner { - - func pause() { - if let timer = self.timer { - timer.fireDate = Date.distantFuture - } - } - - func resume() { - timer?.fireDate = Date(timeIntervalSinceNow: params.timeInterval) - } - - func start() { - if params.timeInterval > 0, - params.isAutoPlay, - pageCount > 1 { - if timer == nil { - timer = Timer.jx_scheduledTimer( - withTimeInterval: params.timeInterval, - repeats: true, - block: {(timer) in - self.autoScroll() - }) - RunLoop.current.add(timer!, forMode: .common) - } - resume() - } - } - - func stop() { - timer?.invalidate() - timer = nil - } - - @objc func autoScroll() {} - - func scrollToIndexPath( - _ indexPath: IndexPath, animated: Bool) { - - // Handle indexpath bounds - if params.cycleWay == .forward { - - if indexPath.row >= kMultiplier * pageCount - pageCount{ - currentIndexPath = IndexPath(row: (kMultiplier * pageCount / 2), - section: 0) - scrollToIndexPath(currentIndexPath, animated: false) - setCurrentIndex() - start() - return - - }else if indexPath.row == -1 + pageCount { - currentIndexPath = IndexPath(row: (kMultiplier * pageCount / 2) + (pageCount - 1), - section: 0) - scrollToIndexPath(currentIndexPath, animated: false) - - setCurrentIndex() - start() - return - } - } - - - collectionView.scrollToItem(at: indexPath, - at: .centeredHorizontally, - animated: animated) - collectionView.scrollToItem(at: indexPath, - at: .centeredHorizontally, - animated: animated) - } - - override public func willMove(toSuperview newSuperview: UIView?) { - super.willMove(toSuperview: newSuperview) - if newSuperview == nil { - stop() - } - } - - @objc func applicationDidEnterBackground( - _ notification: Notification) { - pause() - } - - @objc func applicationDidBecomeActive( - _ notification: Notification) { - // Determine if it's on screen - guard isShowingOnWindow() != false, - pageCount > 1 else { return } - resume() - } - -} diff --git a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Cell/JXBannerBaseCell.swift b/Example/Pods/JXBanner/JXBanner/Classes/Banner/Cell/JXBannerBaseCell.swift deleted file mode 100644 index abee08b..0000000 --- a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Cell/JXBannerBaseCell.swift +++ /dev/null @@ -1,38 +0,0 @@ -// -// JXBannerBaseCell.swift -// JXBanner_Example -// -// Created by Code_JX on 2019/5/18. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - -open class JXBannerBaseCell: UICollectionViewCell { - - public override init(frame: CGRect) { - super.init(frame: frame) - jx_addSubviews() - } - - required public init?(coder aDecoder: NSCoder) { - super.init(coder: aDecoder) - jx_addSubviews() - } - - open func jx_addSubviews() { - contentView.addSubview(imageView) - } - - // MARK:- Lazy loading Cell subView - public lazy var imageView: UIImageView = { - let imageView = UIImageView() - imageView.frame = self.contentView.bounds - imageView.autoresizingMask = [ - .flexibleWidth, - .flexibleHeight - ] - return imageView - }() - -} diff --git a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Cell/JXBannerCell.swift b/Example/Pods/JXBanner/JXBanner/Classes/Banner/Cell/JXBannerCell.swift deleted file mode 100644 index 7993799..0000000 --- a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Cell/JXBannerCell.swift +++ /dev/null @@ -1,51 +0,0 @@ -// -// JXBannerCell.swift -// JXBanner_Example -// -// Created by Code_JX on 2019/5/18. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - -open class JXBannerCell: JXBannerBaseCell { - - private let msgBGViewH: CGFloat = 24 - private let msgMargin: CGFloat = 10 - - open override func jx_addSubviews() { - super.jx_addSubviews() - contentView.addSubview(msgBgView) - msgBgView.addSubview(msgLabel) - } - - public lazy var msgLabel: UILabel = { - let label = UILabel() - label.frame = CGRect(x: msgMargin, - y: 0, - width: msgBgView.bounds.width - 2*msgMargin, - height: msgBgView.bounds.height) - label.textColor = UIColor.white - label.textAlignment = .center - label.font = UIFont.systemFont(ofSize: 12) - label.autoresizingMask = [ - .flexibleWidth, - .flexibleHeight - ] - return label - }() - - public lazy var msgBgView: UIView = { - let view = UIView() - view.frame = CGRect(x: 0, - y: self.contentView.bounds.height - msgBGViewH, - width: self.contentView.bounds.width, - height: msgBGViewH) - view.backgroundColor = UIColor.black.withAlphaComponent(0.4) - view.autoresizingMask = [ - .flexibleWidth, - .flexibleTopMargin - ] - return view - }() -} diff --git a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Common/IndexPath+JXCalculate.swift b/Example/Pods/JXBanner/JXBanner/Classes/Banner/Common/IndexPath+JXCalculate.swift deleted file mode 100644 index 10812ed..0000000 --- a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Common/IndexPath+JXCalculate.swift +++ /dev/null @@ -1,28 +0,0 @@ -// -// IndexPath+JXCalculate.swift -// JXBanner_Example -// -// Created by Code_JX on 2019/6/1. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - -extension IndexPath { - /// Reload the "+" operator - static func + (left: IndexPath, - right: Int) - -> IndexPath { - return IndexPath.init(row: left.row + right, - section: left.section) - } - - /// Reload the "-" operator - static func - (left: IndexPath, - right: Int) - -> IndexPath { - return IndexPath.init(row: left.row - right, - section: left.section) - } -} - diff --git a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Common/Timer+JXBExtension.swift b/Example/Pods/JXBanner/JXBanner/Classes/Banner/Common/Timer+JXBExtension.swift deleted file mode 100644 index 0c396dc..0000000 --- a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Common/Timer+JXBExtension.swift +++ /dev/null @@ -1,48 +0,0 @@ -// -// Timer+JXBExtension.swift -// JXBanner_Example -// -// Created by Coder_TanJX on 2019/8/1. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - -class Block { - let f : T - init(_ f: T) { - self.f = f - } -} - -extension Timer { - - class func jx_scheduledTimer( - withTimeInterval interval: TimeInterval, - repeats: Bool, - block: @escaping (Timer) -> Swift.Void) -> Timer { - - if #available(iOS 10.0, *) { - - return Timer.scheduledTimer(withTimeInterval: interval, - repeats: repeats, - block: block) - } - - return Timer.scheduledTimer(timeInterval: interval, - target: self, - selector: #selector(jx_timerAction), - userInfo: Block(block), - repeats: repeats) - } - - - - @objc class func jx_timerAction(_ sender: Timer) { - if let block = sender.userInfo as? Block<(Timer) -> Swift.Void> { - block.f(sender) - } - - } - -} diff --git a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Common/View+JXExtension.swift b/Example/Pods/JXBanner/JXBanner/Classes/Banner/Common/View+JXExtension.swift deleted file mode 100644 index 9f2fad3..0000000 --- a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Common/View+JXExtension.swift +++ /dev/null @@ -1,48 +0,0 @@ -// -// View+JXExtension.swift -// JXBanner_Example -// -// Created by Coder_TanJX on 2019/8/3. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - -extension UIView { - - // Determine if it's on screen - func isShowingOnWindow() -> Bool { - - guard self.window != nil, - isHidden != true, - alpha > 0.01, - superview != nil - else { - return false - } - - // convert self to window's Rect - var rect: CGRect = superview!.convert(frame, to: nil) - - // if size is CGrectZero - if rect.isEmpty || rect.isNull || rect.size.equalTo(CGSize.zero) { - return false - } - - // set offset - if let scorllView = self as? UIScrollView { - rect.origin.x += scorllView.contentOffset.x - rect.origin.y += scorllView.contentOffset.y - } - - // get the Rect that intersects self and window - let screenRect: CGRect = UIScreen.main.bounds - let intersectionRect: CGRect = rect.intersection(screenRect) - if intersectionRect.isEmpty || intersectionRect.isNull { - return false - } - - return true - - } -} diff --git a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Transform/JXBannerTransformContext.swift b/Example/Pods/JXBanner/JXBanner/Classes/Banner/Transform/JXBannerTransformContext.swift deleted file mode 100644 index 7cf4faf..0000000 --- a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Transform/JXBannerTransformContext.swift +++ /dev/null @@ -1,29 +0,0 @@ -// -// JXBannerTransformContext.swift -// JXBanner_Example -// -// Created by Code_JX on 2019/5/14. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - -struct JXBannerTransformContext: JXBannerTransformable { - - var transform: JXBannerTransformable? - - init() {} - - init(transform: JXBannerTransformable) { - self.transform = transform - } - - func transformToAttributes(collectionView: UICollectionView, - params: JXBannerLayoutParams, - attributes: UICollectionViewLayoutAttributes) { - transform?.transformToAttributes(collectionView: collectionView, - params: params, - attributes: attributes) - } - -} diff --git a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Transform/JXBannerTransformCoverflow.swift b/Example/Pods/JXBanner/JXBanner/Classes/Banner/Transform/JXBannerTransformCoverflow.swift deleted file mode 100644 index e123097..0000000 --- a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Transform/JXBannerTransformCoverflow.swift +++ /dev/null @@ -1,65 +0,0 @@ -// -// JXBannerTransformCoverflow.swift -// JXBanner_Example -// -// Created by Code_JX on 2019/5/14. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - -public struct JXBannerTransformCoverflow: JXBannerTransformable { - - public init() {} - - public func transformToAttributes(collectionView: UICollectionView, - params: JXBannerLayoutParams, - attributes: UICollectionViewLayoutAttributes) { - - let collectionViewWidth = collectionView.frame.width - if collectionViewWidth <= 0 { return } - - let centetX = collectionView.contentOffset.x + collectionViewWidth * 0.5; - let delta = abs(attributes.center.x - centetX) - let angle = min(delta / collectionViewWidth * (1 - params.rateOfChange), params.maximumAngle) - let alpha = max(1 - delta / collectionViewWidth, params.minimumAlpha) - - applyCoverflowTransformToAttributes(viewCentetX: centetX, - attributes: attributes, - params: params, - angle: angle, - alpha: alpha) - } - - func applyCoverflowTransformToAttributes(viewCentetX: CGFloat, - attributes: UICollectionViewLayoutAttributes, - params: JXBannerLayoutParams, - angle: CGFloat, - alpha: CGFloat) -> Void { - var transform3D: CATransform3D = CATransform3DIdentity - transform3D.m34 = -0.002 - var _angle: CGFloat = angle - var _alpha: CGFloat = alpha - let location = JXBannerTransfrom.itemLocation(viewCentetX: viewCentetX, - itemCenterX: attributes.center.x) - - var translate: CGFloat = 0.0 - switch location { - case .left: - _angle = angle - translate = (1.0 - cos(_angle * (1 + params.rateHorisonMargin) * CGFloat.pi)) * attributes.size.width - case .right: - _angle = -angle - translate = -(1.0 - cos(_angle * (1 + params.rateHorisonMargin) * CGFloat.pi)) * attributes.size.width - case .center: - _angle = 0 - _alpha = 1 - } - attributes.alpha = _alpha - transform3D = CATransform3DRotate(transform3D, - CGFloat.pi * _angle, - 0, 1, 0) - attributes.transform3D = CATransform3DTranslate(transform3D, - translate, 0, 0) - } -} diff --git a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Transform/JXBannerTransformLinear.swift b/Example/Pods/JXBanner/JXBanner/Classes/Banner/Transform/JXBannerTransformLinear.swift deleted file mode 100644 index f6225d2..0000000 --- a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Transform/JXBannerTransformLinear.swift +++ /dev/null @@ -1,52 +0,0 @@ -// -// JXBannerTransformLinear.swift -// JXBanner_Example -// -// Created by Code_JX on 2019/5/14. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - -public struct JXBannerTransformLinear: JXBannerTransformable { - - public init() {} - - public func transformToAttributes(collectionView: UICollectionView, - params: JXBannerLayoutParams, - attributes: UICollectionViewLayoutAttributes) { - - let collectionViewWidth = collectionView.frame.width - if collectionViewWidth <= 0 { return } - let centetX = collectionView.contentOffset.x + collectionViewWidth * 0.5 - let delta = abs(attributes.center.x - centetX) - let scale = max(1 - delta / collectionViewWidth * params.rateOfChange, params.minimumScale) - let alpha = max(1 - delta / collectionViewWidth, params.minimumAlpha) - - var transform: CGAffineTransform = CGAffineTransform(scaleX: scale, y: scale) - var _alpha = alpha - - // Adjust spacing When Scroling - let location = JXBannerTransfrom.itemLocation(viewCentetX: centetX, - itemCenterX: attributes.center.x) - let rate = 1.05 + params.rateHorisonMargin - var translate: CGFloat = 0 - switch location { - case .left: - translate = rate * attributes.size.width * (1 - scale) / 2 - case .right: - translate = -rate * attributes.size.width * (1 - scale) / 2 - case .center: - _alpha = 1.0 - } - transform = transform.translatedBy(x: translate, y: 0) - - // Set transform - attributes.transform = transform; - attributes.alpha = _alpha; - } -} - - - - diff --git a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Transform/JXBannerTransfrom.swift b/Example/Pods/JXBanner/JXBanner/Classes/Banner/Transform/JXBannerTransfrom.swift deleted file mode 100644 index 75eeb45..0000000 --- a/Example/Pods/JXBanner/JXBanner/Classes/Banner/Transform/JXBannerTransfrom.swift +++ /dev/null @@ -1,29 +0,0 @@ -// -// JXBannerTransfrom.swift -// JXBanner_Example -// -// Created by Coder_TanJX on 2019/6/6. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - -public struct JXBannerTransfrom { - - public enum JXTransformLocation { - case left - case center - case right - } - - public static func itemLocation(viewCentetX: CGFloat, - itemCenterX: CGFloat) -> JXTransformLocation { - var location: JXTransformLocation = .right - if abs(itemCenterX - viewCentetX) < 0.5 { - location = .center - }else if (itemCenterX - viewCentetX) < 0 { - location = .left - } - return location - } -} diff --git a/Example/Pods/JXBanner/JXBanner/Classes/PageControl/JXBannerPageControlBuilder.swift b/Example/Pods/JXBanner/JXBanner/Classes/PageControl/JXBannerPageControlBuilder.swift deleted file mode 100644 index 4b3eec0..0000000 --- a/Example/Pods/JXBanner/JXBanner/Classes/PageControl/JXBannerPageControlBuilder.swift +++ /dev/null @@ -1,19 +0,0 @@ -// -// JXBannerPageControlBuilder.swift -// JXBanner_Example -// -// Created by Coder_TanJX on 2019/7/29. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit -import JXPageControl - -public class JXBannerPageControlBuilder { - - // The JXPageControlType is the default indicator - public var pageControl: (UIView & JXPageControlType)? - - /// Layout of the callback - public var layout: (() -> ())? -} diff --git a/Example/Pods/JXBanner/JXBanner/Classes/PageControl/JXBannerPageControlDefault.swift b/Example/Pods/JXBanner/JXBanner/Classes/PageControl/JXBannerPageControlDefault.swift deleted file mode 100644 index b274587..0000000 --- a/Example/Pods/JXBanner/JXBanner/Classes/PageControl/JXBannerPageControlDefault.swift +++ /dev/null @@ -1,22 +0,0 @@ -// -// JXBannerPageControlDefault.swift -// JXBanner_Example -// -// Created by Coder_TanJX on 2019/7/29. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit -import JXPageControl - -class JXBannerPageControlDefault: JXPageControlJump { - - override func setBase() { - super.setBase() - - activeSize = CGSize(width: 15, height: 6) - inactiveSize = CGSize(width: 6, height: 6) - columnSpacing = 0 - contentMode = .right - } -} diff --git a/Example/Pods/JXBanner/LICENSE b/Example/Pods/JXBanner/LICENSE deleted file mode 100644 index 175cfbd..0000000 --- a/Example/Pods/JXBanner/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2019 Code_TanJX - -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. diff --git a/Example/Pods/JXBanner/README.md b/Example/Pods/JXBanner/README.md deleted file mode 100644 index 4e650ad..0000000 --- a/Example/Pods/JXBanner/README.md +++ /dev/null @@ -1,553 +0,0 @@ -# JXBanner - -[![CI Status](https://img.shields.io/travis/Code_TanJX/JXBanner.svg?style=flat)](https://travis-ci.org/Code_TanJX/JXBanner) -[![Version](https://img.shields.io/cocoapods/v/JXBanner.svg?style=flat)](https://cocoapods.org/pods/JXBanner) -[![License](https://img.shields.io/cocoapods/l/JXBanner.svg?style=flat)](https://cocoapods.org/pods/JXBanner) -[![Platform](https://img.shields.io/cocoapods/p/JXBanner.svg?style=flat)](https://cocoapods.org/pods/JXBanner) - - -##### (JXBanner supports a variety of animation transformations, including pure code layout and Xib layout) - -JXBanner relies on JXPageConytrol and includes many custom interfaces, such as transformation animation, view structure, and Settings - ---- - -##### - -* Development environment: Xcode 7 -* Running condition: iOS(8.0+) -* Open source framework :[github地址](https://github.com/Coder-TanJX/JXBanner) -* [ Chinese is introduced [ 中文介绍 ]](https://blog.csdn.net/TanJiaXiang/article/details/98484390) - -  - -(If there is any problem, you can leave a message, welcome to study together, welcome star ) - ---- - -### Installation -To install, simply add the following code to your Podfile : - -```ruby - -platform :ios, '8.0' - -target 'TargetName' do -pod 'JXBanner' -end - -``` - ---- - - -### The UI effect - -* default - -You don't need to set JXBanner -> JXBannerLayoutParams - - - ---- - -* JXBannerTransformLinear - - ---- - -* JXBannerTransformCoverflow - - ---- - -* custom - -Need to implement JXBannerTransformable agreement, modify UICollectionViewLayoutAttributes - > the "transform3D" or "transform" properties - - ---- - -### Frame set - -  - -###### Banner 【Public class file of the graph framework in rotation】 -* API ---> All interfaces that developers can call -* Cell ---> The framework provides cell base class (if you want to customize cell content, create a new cell that inherits from JXBannerBaseCell) -* Common ---> Framework common class files -* Transform ---> Animation class files (if the framework provided by the animation effect can't meet the demand of the developer, can achieve new [JXBannerTransformable]() agreement struct/class , modified UICollectionViewLayoutAttributes - > the transform3D or transform properties) - -###### PageControl -- Indicator class file -* JXBannerPageControlBuilder ---> Builder class for pageControl -* JXBannerPageControlDefault ---> Framework of the default pageControl style (can be implemented through JXBannerDataSource - > 【 jxBanner (pageControl banner: numberOfPages: coverView: builder:) - > JXBannerPageControlBuilder 】 protocol method modify the style) - ---- - -### JXBanner : Introduction to important documents - -  - -##### JXBannerParams 【Banner basic properties】 - -* isAutoPlay ---> Automatically play -* isBounces ---> Whether the boundary can slip beyond the boundary -* timeInterval ---> Play scheduling interval -* isShowPageControl ---> Whether internal load indicator ( [JXPageControl(Framework features)](https://github.com/Coder-TanJX/JXPageControl) ) -* cycleWay ---> [Loop mode(Framework features)]() (Forward: wireless right play, skipEnd: end-to-end custom animation jump, rollingBack: left-right rollback mode) -* edgeTransitionType ---> CycleWay uses skipEnd to choose how to animate -* edgeTransitionSubtype ---> CycleWay uses skipEnd to choose how to animate - ---- - -##### JXBannerLayoutParams 【Banner layout, animation properties】 - -* itemSize ---> The cell size。 -* itemSpacing ---> Cell margins left and right。 -* layoutType ---> Animation effects[JXBannerTransformable(Framework features)]() -* minimumScale ---> Cell scaling factor。 -* minimumAlpha ---> Cell transparency coefficient。 -* maximumAngle ---> Cell rotation coefficient。 -* rateOfChange ---> Cell variation coefficient。 -* rateHorisonMargin ---> Cell horizontal spacing adjustment factor。 - ---- - -##### JXBannerCellRegister 【Cell registers builders】 - -* type ---> To register the cell type, you must be a subclass of JXBannerBaseCell -* reuseIdentifier ---> Cell reuse identity - -var type: JXBannerBaseCell.Type -var reuseIdentifier: String - ---- -### JXBanner use - -  - -##### Example 1 - -* Default implementation example - -  - -``` - -import SnapKit -import JXBanner - -class JXDefaultVC: UIViewController { - - var pageCount = 5 - - lazy var banner: JXBanner = { - let banner = JXBanner() - banner.backgroundColor = UIColor.black - banner.placeholderImgView.image = UIImage(named: "banner_placeholder") - banner.delegate = self - banner.dataSource = self - return banner - }() - - override func viewDidLoad() { - super.viewDidLoad() - view.addSubview(banner) - banner.snp.makeConstraints { (maker) in - maker.left.right.equalTo(view) - maker.height.equalTo(250) - maker.top.equalTo(view.snp_top).offset(100) - } - self.automaticallyAdjustsScrollViewInsets = false - } - - deinit { - print("\(#function) ----------> \(#file.components(separatedBy: "/").last?.components(separatedBy: ".").first ?? #file)") - } -} - -//MARK:- JXBannerDataSource -extension JXDefaultVC: JXBannerDataSource { - - // 注册重用Cell标识 - func jxBanner(_ banner: JXBannerType) - -> (JXBannerCellRegister) { - return JXBannerCellRegister(type: JXBannerCell.self, - reuseIdentifier: "JXDefaultVCCell") - } - - // 轮播总数 - func jxBanner(numberOfItems banner: JXBannerType) - -> Int { return pageCount } - - // 轮播cell内容设置 - func jxBanner(_ banner: JXBannerType, - cellForItemAt index: Int, - cell: JXBannerBaseCell) - -> JXBannerBaseCell { - let tempCell: JXBannerCell = cell as! JXBannerCell - tempCell.layer.cornerRadius = 8 - tempCell.layer.masksToBounds = true - tempCell.imageView.image = UIImage(named: "banner_placeholder") - tempCell.msgLabel.text = String(index) + "---来喽来喽,他真的来喽~" - return tempCell - } - - // banner基本设置(可选) - func jxBanner(_ banner: JXBannerType, - layoutParams: JXBannerLayoutParams) - -> JXBannerLayoutParams { - return layoutParams - .itemSize(CGSize(width: UIScreen.main.bounds.width - 40, height: 200)) - .itemSpacing(20) - } -} - -//MARK:- JXBannerDelegate -extension JXDefaultVC: JXBannerDelegate { - - // 点击cell回调 - public func jxBanner(_ banner: JXBannerType, - didSelectItemAt index: Int) { - print(index) - } - -} - - -``` - ---- - -##### Example 2 - -  - -* personalization - -``` - -import SnapKit -import JXBanner -import JXPageControl - -class JXCustomVC: UIViewController { - - var pageCount = 5 - - lazy var linearBanner: JXBanner = {[weak self] in - let banner = JXBanner() - banner.placeholderImgView.image = UIImage(named: "banner_placeholder") - banner.backgroundColor = UIColor.black - banner.indentify = "linearBanner" - banner.delegate = self - banner.dataSource = self - return banner - }() - - lazy var converflowBanner: JXBanner = { - let banner = JXBanner() - banner.placeholderImgView.image = UIImage(named: "banner_placeholder") - banner.backgroundColor = UIColor.black - banner.indentify = "converflowBanner" - banner.delegate = self - banner.dataSource = self - return banner - }() - - override func viewDidLoad() { - super.viewDidLoad() - view.addSubview(linearBanner) - view.addSubview(converflowBanner) - linearBanner.snp.makeConstraints {(maker) in - maker.left.right.equalTo(view) - maker.height.equalTo(200) - maker.top.equalTo(view.snp_top).offset(100) - } - - converflowBanner.snp.makeConstraints {(maker) in - maker.left.right.height.equalTo(linearBanner) - maker.top.equalTo(linearBanner.snp_bottom).offset(100) - } - - self.automaticallyAdjustsScrollViewInsets = false - } - - deinit { - print("\(#function) ----------> \(#file.components(separatedBy: "/").last?.components(separatedBy: ".").first ?? #file)") - } -} - -//MARK:- JXBannerDataSource -extension JXCustomVC: JXBannerDataSource { - - // 注册重用Cell标识 - func jxBanner(_ banner: JXBannerType) - -> (JXBannerCellRegister) { - - if banner.indentify == "linearBanner" { - return JXBannerCellRegister(type: JXBannerCell.self, - reuseIdentifier: "LinearBannerCell") - }else { - return JXBannerCellRegister(type: JXBannerCell.self, - reuseIdentifier: "ConverflowBannerCell") - } - } - - // 轮播总数 - func jxBanner(numberOfItems banner: JXBannerType) - -> Int { return pageCount } - - // 轮播cell内容设置 - func jxBanner(_ banner: JXBannerType, - cellForItemAt index: Int, - cell: JXBannerBaseCell) - -> JXBannerBaseCell { - let tempCell: JXBannerCell = cell as! JXBannerCell - tempCell.layer.cornerRadius = 8 - tempCell.layer.masksToBounds = true - tempCell.imageView.image = UIImage(named: "banner_placeholder") - tempCell.msgLabel.text = String(index) + "---来喽来喽,他真的来喽~" - return tempCell - } - - // banner基本设置(可选) - func jxBanner(_ banner: JXBannerType, - params: JXBannerParams) - -> JXBannerParams { - - if banner.indentify == "linearBanner" { - return params - .timeInterval(2) - .cycleWay(.forward) - }else { - return params - .timeInterval(3) - .cycleWay(.forward) - } - } - -// banner布局、动画设置 - func jxBanner(_ banner: JXBannerType, - layoutParams: JXBannerLayoutParams) - -> JXBannerLayoutParams { - - if banner.indentify == "linearBanner" { - return layoutParams - .layoutType(JXBannerTransformLinear()) - .itemSize(CGSize(width: 250, height: 190)) - .itemSpacing(10) - .rateOfChange(0.8) - .minimumScale(0.7) - .rateHorisonMargin(0.5) - .minimumAlpha(0.8) - }else { - return layoutParams - .layoutType(JXBannerTransformCoverflow()) - .itemSize(CGSize(width: 300, height: 190)) - .itemSpacing(0) - .maximumAngle(0.25) - .rateHorisonMargin(0.3) - .minimumAlpha(0.8) - } - } - - // 自定义pageControl样式、布局 - //(基于jxPageControl, 如果不适用JXPageControl, 设置isShowPageControl = false, 内部pageControl将不会再次加载 ) - func jxBanner(pageControl banner: JXBannerType, - numberOfPages: Int, - coverView: UIView, - builder: JXBannerPageControlBuilder) -> JXBannerPageControlBuilder { - - if banner.indentify == "linearBanner" { - let pageControl = JXPageControlScale() - pageControl.contentMode = .bottom - pageControl.activeSize = CGSize(width: 15, height: 6) - pageControl.inactiveSize = CGSize(width: 6, height: 6) - pageControl.activeColor = UIColor.red - pageControl.inactiveColor = UIColor.lightGray - pageControl.columnSpacing = 0 - pageControl.isAnimation = true - builder.pageControl = pageControl - builder.layout = { - pageControl.snp.makeConstraints { (maker) in - maker.left.right.equalTo(coverView) - maker.top.equalTo(coverView.snp_bottom).offset(10) - maker.height.equalTo(20) - } - } - return builder - - }else { - let pageControl = JXPageControlExchange() - pageControl.contentMode = .bottom - pageControl.activeSize = CGSize(width: 15, height: 6) - pageControl.inactiveSize = CGSize(width: 6, height: 6) - pageControl.activeColor = UIColor.red - pageControl.inactiveColor = UIColor.lightGray - pageControl.columnSpacing = 0 - builder.pageControl = pageControl - builder.layout = { - pageControl.snp.makeConstraints { (maker) in - maker.left.right.equalTo(coverView) - maker.top.equalTo(coverView.snp_bottom).offset(10) - maker.height.equalTo(20) - } - } - return builder - } - - } - -} - -//MARK:- JXBannerDelegate -extension JXCustomVC: JXBannerDelegate { - - // 点击cell回调 - public func jxBanner(_ banner: JXBannerType, - didSelectItemAt index: Int) { - print(index) - } - - // 设置自定义覆盖View, 比如添加自定义外部pageControl和布局 - func jxBanner(_ banner: JXBannerType, coverView: UIView) { - let title = UILabel() - title.frame = CGRect(x: 0, y: 0, width: 100, height: 30) - title.text = "JXBanner" - title.textColor = UIColor.red - title.font = UIFont.systemFont(ofSize: 16) - coverView.addSubview(title) - } - - // 最中心显示cell 索引 - func jxBanner(_ banner: JXBannerType, center index: Int) { - print(index) - } -} - -``` - -##### Example 3 - -If the animation provided by the framework does not meet the developer's requirements: - -* 1.Rotation diagram animation style developers can customize the implementation, As long as it is a new implementation [JXBannerTransformable]() agreement struct/class, modify UICollectionViewLayoutAttributes - > the transform3D or transform properties - -``` - -// -// JXCustomTransform.swift -// JXBanner_Example -// -// Created by Coder_TanJX on 2019/7/30. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit -import JXBanner - -struct JXCustomTransform: JXBannerTransformable { - - public func transformToAttributes(collectionView: UICollectionView, - params: JXBannerLayoutParams, - attributes: UICollectionViewLayoutAttributes) { - - let collectionViewWidth = collectionView.frame.width - if collectionViewWidth <= 0 { return } - - let centetX = collectionView.contentOffset.x + collectionViewWidth * 0.5; - let delta = abs(attributes.center.x - centetX) - let calculateRate = 1 - delta / collectionViewWidth - let angle = min(delta / collectionViewWidth * (1 - params.rateOfChange), params.maximumAngle) - let alpha = max(calculateRate, params.minimumAlpha) - - - applyCoverflowTransformToAttributes(viewCentetX: centetX, - attributes: attributes, - params: params, - angle: angle, - alpha: alpha, - calculateRate: calculateRate) - } - - func applyCoverflowTransformToAttributes(viewCentetX: CGFloat, - attributes: UICollectionViewLayoutAttributes, - params: JXBannerLayoutParams, - angle: CGFloat, - alpha: CGFloat, - calculateRate: CGFloat) -> Void { - var transform3D: CATransform3D = CATransform3DIdentity - - - let location = JXBannerTransfrom.itemLocation(viewCentetX: viewCentetX, - itemCenterX: attributes.center.x) - - var _angle = angle - var _alpha = alpha - var _translateX: CGFloat = 0 - var _translateY: CGFloat = 0 - attributes.zIndex = 0 - - switch location { - case .left: - _angle = angle - _translateX = 0.2 * attributes.size.width * (1 - calculateRate) / 4 - _translateY = 0.4 * attributes.size.height * (1 - calculateRate) - - - case .right: - _angle = -angle - _translateX = -0.2 * attributes.size.width * (1 - calculateRate) / 4 - _translateY = 0.4 * attributes.size.height * (1 - calculateRate) - - case .center: - _angle = 0 - _alpha = 1 - _translateY = 0 - attributes.zIndex = 10000 - } - - transform3D = CATransform3DTranslate(transform3D, _translateX, _translateY, 0) - transform3D = CATransform3DRotate(transform3D, -CGFloat.pi * _angle, 0, 0, 1) - attributes.alpha = _alpha - attributes.transform3D = transform3D - } - -} - - -``` - -* 2. Set up custom implementation animation - -JXBannerDataSource -> 【jxBanner(_ banner: layoutParams: ) -> JXBannerLayoutParams】 - -``` - -// JXCustomTransform() - - func jxBanner(_ banner: JXBannerType, - layoutParams: JXBannerLayoutParams) - -> JXBannerLayoutParams { - - return layoutParams - .layoutType(JXCustomTransform()) - } - -``` - -### See examples for more Settings [Demo address](https://github.com/Code-TanJX/JXPageControl) - - - - - - -## Author - -Coder_TanJX, code_tanjx@163.com - -## License - -JXBanner is available under the MIT license. See the LICENSE file for more info. diff --git a/Example/Pods/JXPageControl/JXPageControl/Classes/Common/JXPageControlBase.swift b/Example/Pods/JXPageControl/JXPageControl/Classes/Common/JXPageControlBase.swift deleted file mode 100644 index ab0b389..0000000 --- a/Example/Pods/JXPageControl/JXPageControl/Classes/Common/JXPageControlBase.swift +++ /dev/null @@ -1,286 +0,0 @@ -// -// JXPageControlBase.swift -// JXPageControl_Example -// -// Created by Coder_TanJX on 2019/7/10. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - -@IBDesignable open class JXPageControlBase: UIView, JXPageControlType { - - public override init(frame: CGRect) { - super.init(frame: frame) - setBase() - } - - public required init?(coder aDecoder: NSCoder) { - super.init(coder: aDecoder) - setBase() - } - - open func setBase() { - addSubview(contentView) - } - - open override var contentMode: UIViewContentMode { - didSet { - switch contentMode { - - case .center: - contentAlignment = JXPageControlAlignment(.center, .center) - case .left: - contentAlignment = JXPageControlAlignment(.left, .center) - case .right: - contentAlignment = JXPageControlAlignment(.right, .center) - - case .bottom: - contentAlignment = JXPageControlAlignment(.center, .bottom) - case .bottomLeft: - contentAlignment = JXPageControlAlignment(.left, .bottom) - case .bottomRight: - contentAlignment = JXPageControlAlignment(.right, .bottom) - - case .top: - contentAlignment = JXPageControlAlignment(.center, .top) - case .topLeft: - contentAlignment = JXPageControlAlignment(.left, .top) - case .topRight: - contentAlignment = JXPageControlAlignment(.right, .top) - - default: - contentAlignment = JXPageControlAlignment(.center, .center) - } - } - } - - open override func layoutSubviews() { - super.layoutSubviews() - layoutContentView() - } - - // MARK: --------------------------- JXPageControlType -------------------------- - - /// Default is 0 - @IBInspectable public var numberOfPages: Int = 0 { - didSet { reloadData() } - } - - var currentIndex: Int = 0 - public var currentPage: Int { - set { updateCurrentPage(newValue) } - get { return currentIndex } - } - - /// Default is 0.0. value pinned to 0.0..numberOfPages-1 - @IBInspectable public var progress: CGFloat = 0.0 { - didSet { updateProgress(progress) } - } - - /// Hide the the indicator if there is only one page. default is NO - @IBInspectable public var hidesForSinglePage: Bool = false { - didSet { resetHidden() } - } - - /// Inactive item tint color - @IBInspectable public var inactiveColor: UIColor = - UIColor.groupTableViewBackground.withAlphaComponent(0.5) { - didSet { inactiveHollowLayout() } - } - - /// Active item ting color - @IBInspectable public var activeColor: UIColor = - UIColor.white { - didSet { activeHollowLayout() } - } - - /// Inactive item size - @IBInspectable public var inactiveSize: CGSize = - CGSize(width: 10, - height: 10){ - didSet { - reloadLayout() - updateProgress(CGFloat(currentIndex)) - } - } - - /// Active item size - @IBInspectable public var activeSize: CGSize = - CGSize(width: 10, - height: 10){ - didSet { - reloadLayout() - updateProgress(CGFloat(currentIndex)) - } - } - - /// Sets the color of all indicators - @IBInspectable public var indicatorSize: CGSize = - CGSize(width: 10, - height: 10) { - didSet { - inactiveSize = indicatorSize - activeSize = indicatorSize - } - } - - /// Column spacing - @IBInspectable public var columnSpacing: CGFloat = 10.0 { - didSet { - reloadLayout() - updateProgress(CGFloat(currentIndex)) - } - } - - /// Inactive hollow figure - @IBInspectable public var isInactiveHollow: Bool = false { - didSet { inactiveHollowLayout() } - } - - /// Active hollow figure - @IBInspectable public var isActiveHollow: Bool = false { - didSet { activeHollowLayout() } - } - - /// Content location - public var contentAlignment: JXPageControlAlignment = - JXPageControlAlignment(.center, - .center) { - didSet { reloadLayout() - updateProgress(CGFloat(currentIndex)) } - } - - /// Refresh the data and UI again - public func reload() { - reloadData() - } - - // MARK: - -------------------------- Internal property list -------------------------- - let contentView: UIView = UIView() - - var maxIndicatorSize: CGSize = CGSize(width: 2, height: 2) - - var minIndicatorSize: CGSize = CGSize(width: 2, height: 2) - - var inactiveLayer: [CALayer] = [] - - var activeLayer: CALayer? - - // MARK: - -------------------------- Update tht data -------------------------- - func reloadData() { - resetInactiveLayer() - resetActiveLayer() - resetHidden() - reloadLayout() - progress = 0.0 - } - - func reloadLayout() { - layoutContentView() - layoutInactiveIndicators() - layoutActiveIndicator() - } - - func updateProgress(_ progress: CGFloat) {} - - func updateCurrentPage(_ pageIndex: Int) {} - - func inactiveHollowLayout() {} - - - func activeHollowLayout() {} - - // MARK: - -------------------------- Reset -------------------------- - func resetHidden() { - if hidesForSinglePage, - numberOfPages == 1 { - contentView.isHidden = true - }else if numberOfPages == 0 { - contentView.isHidden = true - }else { - contentView.isHidden = false - } - } - - func resetInactiveLayer() { - // clear data - inactiveLayer.forEach() { $0.removeFromSuperlayer() } - inactiveLayer = [CALayer]() - // set new layers - for _ in 0..= inactiveSize.width, - activeSize.width > kMinItemWidth{ - itemWidth = activeSize.width - minIndicatorSize.width = inactiveSize.width - } else if inactiveSize.width > activeSize.width, - inactiveSize.width > kMinItemWidth{ - itemWidth = inactiveSize.width - minIndicatorSize.width = activeSize.width - } - - if activeSize.height >= inactiveSize.height, - activeSize.height > kMinItemHeight{ - itemHeight = activeSize.height - minIndicatorSize.height = inactiveSize.height - } else if inactiveSize.height > activeSize.height, - inactiveSize.height > kMinItemHeight{ - itemHeight = inactiveSize.height - minIndicatorSize.height = activeSize.height - } - maxIndicatorSize.height = itemHeight - maxIndicatorSize.width = itemWidth - - // Content Size and frame - var x: CGFloat = 0 - var y: CGFloat = 0 - let width = CGFloat(numberOfPages) * (itemWidth + columnSpacing) - columnSpacing - let height = itemHeight - - // Horizon layout - switch contentAlignment.horizon { - case .left: - x = 0 - case .right: - x = (frame.width - width) - case .center: - x = (frame.width - width) * 0.5 - } - - // Vertical layout - switch contentAlignment.vertical { - case .top: - y = 0 - case .bottom: - y = frame.height - height - case .center: - y = (frame.height - height) * 0.5 - } - - contentView.frame = CGRect(x: x, - y: y, - width: width, - height: height) - } - - func layoutActiveIndicator() {} - - func layoutInactiveIndicators() {} -} diff --git a/Example/Pods/JXPageControl/JXPageControl/Classes/Common/JXPageControlTool.swift b/Example/Pods/JXPageControl/JXPageControl/Classes/Common/JXPageControlTool.swift deleted file mode 100644 index 992286a..0000000 --- a/Example/Pods/JXPageControl/JXPageControl/Classes/Common/JXPageControlTool.swift +++ /dev/null @@ -1,75 +0,0 @@ -// -// JXPageControlTool.swift -// JXPageControl_Example -// -// Created by Coder_TanJX on 2019/7/3. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - -extension UIColor { - - private static func rgbArray(color: UIColor) -> [CGFloat] { - - var r: CGFloat = 0.0 - var g: CGFloat = 0.0 - var b: CGFloat = 0.0 - var a: CGFloat = 0.0 - - if self.responds(to: #selector(getRed(_:green:blue:alpha:))) { - color.getRed(&r, green: &g, blue: &b, alpha: &a) - }else { - - if let components = color.cgColor.components { - if components.count == 2 { - r = components[0] - g = components[0] - b = components[0] - a = components[1] - }else if components.count == 4 { - r = components[0] - g = components[1] - b = components[2] - a = components[3] - }else { - print("获取颜色RGB失败") - } - } - } - - return [r, g ,b , a] - } - - private static func difference(originColor: UIColor, - targetColor: UIColor) -> [CGFloat] { - let originArr = self.rgbArray(color: originColor) - let targetArr = self.rgbArray(color: targetColor) - return [targetArr[0] - originArr[0], - targetArr[1] - originArr[1], - targetArr[2] - originArr[2], - targetArr[3] - originArr[3]] - } - - /** - * Pass in two colors and proportions - * - * @param originColor Original color - * @param targetColor Target color - * @param proportion Between 0 and 1 - * - * @return UIColor - */ - static func transform(originColor: UIColor, - targetColor: UIColor, - proportion: CGFloat) -> UIColor { - let originArr = self.rgbArray(color: originColor) - let differenceArr = self.difference(originColor: originColor, - targetColor: targetColor) - return UIColor(red: originArr[0] + proportion * differenceArr[0] , - green: originArr[1] + proportion * differenceArr[1], - blue: originArr[2] + proportion * differenceArr[2], - alpha: originArr[3] + proportion * differenceArr[3]) - } -} - diff --git a/Example/Pods/JXPageControl/JXPageControl/Classes/Common/JXPageControlType.swift b/Example/Pods/JXPageControl/JXPageControl/Classes/Common/JXPageControlType.swift deleted file mode 100644 index 2978911..0000000 --- a/Example/Pods/JXPageControl/JXPageControl/Classes/Common/JXPageControlType.swift +++ /dev/null @@ -1,89 +0,0 @@ -// -// JXPageControlType.swift -// JXPageControl -// -// Created by Coder_TanJX on 2019/6/7. -// - -import UIKit - - let kMinItemWidth: CGFloat = 2.0 - let kMinItemHeight: CGFloat = 2.0 - -public class JXPageControlAlignment: NSObject { - - public enum JXHorizonAlignment : Int { - case left - case center - case right - } - - public enum JXVerticalAlignment : Int { - case top - case center - case bottom - } - - var horizon: JXHorizonAlignment - var vertical: JXVerticalAlignment - - public init(_ horizon: JXHorizonAlignment, - _ vertical: JXVerticalAlignment) { - self.horizon = horizon - self.vertical = vertical - } -} - -public protocol JXPageControlType { - - /// Default is 0 - var numberOfPages: Int { get set } - - /// Default is 0. value pinned to 0..numberOfPages-1 - var currentPage: Int { get set } - - /// Default is 0.0. value pinned to 0.0..numberOfPages-1 - var progress: CGFloat { get set} - - /// Hide the the indicator if there is only one page. default is NO - var hidesForSinglePage: Bool { get set } - - /// Inactive item tint color - var inactiveColor: UIColor { get set } - - /// Active indicator ting color - var activeColor: UIColor { get set } - - /// Inactive indicator size - var inactiveSize: CGSize { get set } - - /// Active indicator size - var activeSize: CGSize { get set } - - /// Sets the size of all indicators - var indicatorSize: CGSize { get set } - - /// Column spacing - var columnSpacing: CGFloat { get set } - - /// Content location - var contentAlignment: JXPageControlAlignment { get set } - - /// The content location of the system UIView - var contentMode: UIViewContentMode { get set } - - /// Inactive hollow figure - var isInactiveHollow: Bool { get set } - - /// Active hollow figure - var isActiveHollow: Bool { get set } - - /// Refresh the data and UI again - func reload() -} - - - - - - diff --git a/Example/Pods/JXPageControl/JXPageControl/Classes/Jump/JXPageControlBoldLine.swift b/Example/Pods/JXPageControl/JXPageControl/Classes/Jump/JXPageControlBoldLine.swift deleted file mode 100644 index 0e4f540..0000000 --- a/Example/Pods/JXPageControl/JXPageControl/Classes/Jump/JXPageControlBoldLine.swift +++ /dev/null @@ -1,18 +0,0 @@ -// -// JXPageControlBoldLine.swift -// JXPageControl_Example -// -// Created by Coder_TanJX on 2019/6/9. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - -@IBDesignable open class JXPageControlBoldLine: JXPageControlJump { - - override open func setBase() { - super.setBase() - indicatorSize = CGSize(width: 15, height: 6) - isAnimation = false - } -} diff --git a/Example/Pods/JXPageControl/JXPageControl/Classes/Jump/JXPageControlEllipse.swift b/Example/Pods/JXPageControl/JXPageControl/Classes/Jump/JXPageControlEllipse.swift deleted file mode 100644 index c348d16..0000000 --- a/Example/Pods/JXPageControl/JXPageControl/Classes/Jump/JXPageControlEllipse.swift +++ /dev/null @@ -1,23 +0,0 @@ -// -// JXPageControlEllipse.swift -// JXPageControl_Example -// -// Created by Coder_TanJX on 2019/6/9. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - - -//private let kMinContentSize = CGSize(width: 2, height: 2) - -@IBDesignable open class JXPageControlEllipse: JXPageControlJump { - - override open func setBase() { - super.setBase() - inactiveSize = CGSize(width: 6, height: 6) - activeSize = CGSize(width: 15, height: 6) - columnSpacing = 0 - isAnimation = false - } -} diff --git a/Example/Pods/JXPageControl/JXPageControl/Classes/Jump/JXPageControlJump.swift b/Example/Pods/JXPageControl/JXPageControl/Classes/Jump/JXPageControlJump.swift deleted file mode 100644 index df4c9d8..0000000 --- a/Example/Pods/JXPageControl/JXPageControl/Classes/Jump/JXPageControlJump.swift +++ /dev/null @@ -1,174 +0,0 @@ -// -// JXPageControlJump.swift -// JXPageControl -// -// Created by Coder_TanJX on 2019/6/7. -// - -import UIKit - -@IBDesignable open class JXPageControlJump: JXPageControlBase { - - override open func setBase() { - super.setBase() - } - - // MARK: - -------------------------- Custom property list -------------------------- - - @IBInspectable public var isAnimation: Bool = true - - - // MARK: - -------------------------- Update tht data -------------------------- - override func updateProgress(_ progress: CGFloat) { - guard progress >= 0 , - progress <= CGFloat(numberOfPages - 1), - let activeLayer = activeLayer - else { return } - - CATransaction.setDisableActions(!isAnimation) - - let marginX = (maxIndicatorSize.width - activeSize.width) * 0.5 - let marginyY = (maxIndicatorSize.height - activeSize.height) * 0.5 - let marginW = (maxIndicatorSize.width - minIndicatorSize.width) * 0.5 - let x = progress * (maxIndicatorSize.width + columnSpacing) + marginX - - switch isAnimation { - case true: - let width = activeSize.width - + (columnSpacing + marginW) * (abs(round(progress) - progress) * 2) - let newFrame = CGRect(x: x, - y: marginyY, - width: width, - height: activeSize.height) - activeLayer.frame = newFrame - case false: - activeLayer.frame.origin.x = x - } - - currentIndex = Int(progress) - CATransaction.commit() - } - - override func updateCurrentPage(_ pageIndex: Int) { - guard pageIndex >= 0 , - pageIndex <= numberOfPages - 1, - pageIndex != currentIndex, - let activeLayer = activeLayer - else { return } - - let marginX = (maxIndicatorSize.width - activeSize.width) * 0.5 - let activeLayerX = CGFloat(pageIndex) * (maxIndicatorSize.width + columnSpacing) + marginX - let marginW = (maxIndicatorSize.width - minIndicatorSize.width) * 0.5 - - if isAnimation { - CATransaction.begin() - CATransaction.setCompletionBlock {[weak self] in - guard let strongSelf = self else { return } - activeLayer.frame.size.width = strongSelf.activeSize.width - activeLayer.frame.origin.x = activeLayerX - - } - - if pageIndex < currentIndex { - activeLayer.frame.origin.x = activeLayer.frame.origin.x - columnSpacing - marginW - } - - CATransaction.begin() - let width = activeSize.width + columnSpacing + marginW - activeLayer.frame.size.width = width - CATransaction.commit() - - CATransaction.commit() - - }else { - CATransaction.begin() - CATransaction.setCompletionBlock {[weak self] in - guard let strongSelf = self else { return } - activeLayer.frame.size.width = strongSelf.activeSize.width - activeLayer.frame.origin.x = activeLayerX - } - activeLayer.frame.origin.x = activeLayer.frame.origin.x - 0.1 - CATransaction.begin() - let width = activeSize.width - activeLayer.frame.size.width = width - CATransaction.commit() - CATransaction.commit() - } - currentIndex = pageIndex - } - - override func inactiveHollowLayout() { - if isInactiveHollow { - inactiveLayer.forEach { (layer) in - layer.backgroundColor = UIColor.clear.cgColor - layer.borderColor = inactiveColor.cgColor - layer.borderWidth = 1 - } - }else { - inactiveLayer.forEach { (layer) in - layer.backgroundColor = inactiveColor.cgColor - layer.borderWidth = 0 - } - } - } - - - override func activeHollowLayout() { - if isActiveHollow { - activeLayer?.backgroundColor = UIColor.clear.cgColor - activeLayer?.borderColor = activeColor.cgColor - activeLayer?.borderWidth = 1 - }else { - activeLayer?.backgroundColor = activeColor.cgColor - activeLayer?.borderWidth = 0 - } - } - - // MARK: - -------------------------- Reset -------------------------- - - override func resetActiveLayer() { - activeLayer?.removeFromSuperlayer() - activeLayer = CALayer() - contentView.layer.addSublayer(activeLayer!) - } - - // MARK: - -------------------------- Layout -------------------------- - override func layoutActiveIndicator() { - - if let activeLayer = activeLayer { - - let x = (maxIndicatorSize.width - activeSize.width) * 0.5 - let y = (maxIndicatorSize.height - activeSize.height) * 0.5 - activeLayer.frame = CGRect(x: x, - y: y, - width: activeSize.width, - height: activeSize.height) - if activeLayer.frame.width > activeLayer.frame.height { - activeLayer.cornerRadius = activeLayer.frame.height*0.5 - }else { - activeLayer.cornerRadius = activeLayer.frame.width*0.5 - } - activeHollowLayout() - } - } - - override func layoutInactiveIndicators() { - let x = (maxIndicatorSize.width - inactiveSize.width) * 0.5 - let y = (maxIndicatorSize.height - inactiveSize.height) * 0.5 - var layerFrame = CGRect(x: x, - y: y, - width: inactiveSize.width, - height: inactiveSize.height) - inactiveLayer.forEach() { layer in - layer.frame = layerFrame - /// Set cornerRadius - if layer.frame.width > layer.frame.height { - layer.cornerRadius = layer.frame.height*0.5 - }else { - layer.cornerRadius = layer.frame.width*0.5 - } - layerFrame.origin.x += maxIndicatorSize.width + columnSpacing - } - inactiveHollowLayout() - } -} diff --git a/Example/Pods/JXPageControl/JXPageControl/Classes/Jump/JXPageControlLine.swift b/Example/Pods/JXPageControl/JXPageControl/Classes/Jump/JXPageControlLine.swift deleted file mode 100644 index 69db43d..0000000 --- a/Example/Pods/JXPageControl/JXPageControl/Classes/Jump/JXPageControlLine.swift +++ /dev/null @@ -1,18 +0,0 @@ -// -// JXPageControlLine.swift -// JXPageControl_Example -// -// Created by Coder_TanJX on 2019/6/8. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - -@IBDesignable open class JXPageControlLine: JXPageControlJump { - - override open func setBase() { - super.setBase() - indicatorSize = CGSize(width: 15, height: 2) - isAnimation = false - } -} diff --git a/Example/Pods/JXPageControl/JXPageControl/Classes/Transform/JXPageControlChameleon.swift b/Example/Pods/JXPageControl/JXPageControl/Classes/Transform/JXPageControlChameleon.swift deleted file mode 100644 index 4b7e8af..0000000 --- a/Example/Pods/JXPageControl/JXPageControl/Classes/Transform/JXPageControlChameleon.swift +++ /dev/null @@ -1,201 +0,0 @@ -// -// JXPageControlChameleon.swift -// JXPageControl_Example -// -// Created by Coder_TanJX on 2019/7/4. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - -@IBDesignable open class JXPageControlChameleon: JXPageControlBase { - - - // MARK: - -------------------------- JXPageControlType -------------------------- - - /// Please use the property "indicatorSize" - override public var activeSize: CGSize { - get { return CGSize(width: actualIndicatorSize.width, - height: actualIndicatorSize.height) } - set {} - } - - /// Please use the property "indicatorSize" - override public var inactiveSize: CGSize { - get { return CGSize(width: actualIndicatorSize.width, - height: actualIndicatorSize.height) } - set {} - } - - var actualIndicatorSize: CGSize = CGSize(width: 10, height: 10) - override public var indicatorSize: CGSize { - get { return actualIndicatorSize } - set { - actualIndicatorSize = CGSize( - width: newValue.width > minIndicatorSize.width ? - newValue.width : minIndicatorSize.width , - height: newValue.height > minIndicatorSize.height ? - newValue.height : minIndicatorSize.height ) - reloadLayout() - updateProgress(CGFloat(currentIndex)) - } - } - - // MARK: - -------------------------- Custom property list -------------------------- - - /// When isAnimation is false, the animation time is shorter; - /// when isAnimation is true, the animation time is longer. - @IBInspectable public var isAnimation: Bool = true - - // MARK: - -------------------------- Update tht data -------------------------- - - - override func updateProgress(_ progress: CGFloat) { - guard progress >= 0 , - progress <= CGFloat(numberOfPages - 1) - else { return } - - let leftIndex = Int(floor(progress)) - let rightIndex = leftIndex + 1 > numberOfPages - 1 ? leftIndex : leftIndex + 1 - - if leftIndex == rightIndex { - for index in 0 ..< numberOfPages { - let layer = inactiveLayer[index] - if index != leftIndex{ - hollowLayout(layer: layer, isActive: false) - - }else { - hollowLayout(layer: layer, isActive: true) - } - } - }else { - - let leftLayer = inactiveLayer[leftIndex] - let rightLayer = inactiveLayer[rightIndex] - let rightScare = progress - floor(progress) - let leftScare = 1 - rightScare - - CATransaction.begin() - CATransaction.setDisableActions(!isAnimation) - CATransaction.setAnimationDuration(0.2) - - let tempInactiveColor = isInactiveHollow ? UIColor.clear : inactiveColor - leftLayer.backgroundColor = UIColor.transform(originColor: tempInactiveColor, - targetColor: activeColor, - proportion: leftScare).cgColor - rightLayer.backgroundColor = UIColor.transform(originColor: tempInactiveColor, - targetColor: activeColor, - proportion: rightScare).cgColor - for index in 0 ..< numberOfPages { - if index != leftIndex, - index != rightIndex { - let layer = inactiveLayer[index] - hollowLayout(layer: layer, isActive: false) - } - } - CATransaction.commit() - } - currentIndex = Int(progress) - } - - override func updateCurrentPage(_ pageIndex: Int) { - guard pageIndex >= 0 , - pageIndex <= numberOfPages - 1, - pageIndex != currentIndex - else { return } - - for index in 0 ..< numberOfPages { - if index == currentIndex { - CATransaction.begin() - CATransaction.setDisableActions(!isAnimation) - CATransaction.setAnimationDuration(0.7) - let layer = inactiveLayer[index] - hollowLayout(layer: layer, isActive: false) - CATransaction.commit() - }else if index == pageIndex { - let layer = inactiveLayer[index] - CATransaction.begin() - CATransaction.setDisableActions(!isAnimation) - CATransaction.setAnimationDuration(0.7) - hollowLayout(layer: layer, isActive: true) - CATransaction.commit() - } - } - currentIndex = pageIndex - } - - override func inactiveHollowLayout() { - hollowLayout() - } - - override func activeHollowLayout() { - hollowLayout() - } - - // MARK: - -------------------------- Layout -------------------------- - - override func layoutInactiveIndicators() { - var layerFrame = CGRect(x: 0, - y: 0, - width: actualIndicatorSize.width , - height: actualIndicatorSize.height) - inactiveLayer.forEach() { layer in - layer.frame = layerFrame - if actualIndicatorSize.width > actualIndicatorSize.height { - layer.cornerRadius = actualIndicatorSize.height*0.5 - }else { - layer.cornerRadius = actualIndicatorSize.width*0.5 - } - layerFrame.origin.x += actualIndicatorSize.width + columnSpacing - } - hollowLayout() - } -} - -extension JXPageControlChameleon { - - private func hollowLayout() { - if isInactiveHollow { - for (index, layer) in inactiveLayer.enumerated() { - if index == currentIndex, !isActiveHollow { - layer.backgroundColor = activeColor.cgColor - }else { - layer.backgroundColor = UIColor.clear.cgColor - layer.borderColor = activeColor.cgColor - } - layer.borderColor = activeColor.cgColor - layer.borderWidth = 1 - } - } - else { - for (index, layer) in inactiveLayer.enumerated() { - if index == currentIndex { - layer.backgroundColor = activeColor.cgColor - }else { - layer.backgroundColor = inactiveColor.cgColor - } - layer.borderWidth = 0 - } - - } - } - - private func hollowLayout(layer: CALayer, isActive: Bool) { - /// Set backgroundcolor - if isInactiveHollow { - if isActive, - !isActiveHollow { - layer.backgroundColor = activeColor.cgColor - }else { - layer.backgroundColor = UIColor.clear.cgColor - layer.borderColor = activeColor.cgColor - } - }else { - if isActive { - layer.backgroundColor = activeColor.cgColor - }else { - layer.backgroundColor = inactiveColor.cgColor - } - } - } -} diff --git a/Example/Pods/JXPageControl/JXPageControl/Classes/Transform/JXPageControlExchange.swift b/Example/Pods/JXPageControl/JXPageControl/Classes/Transform/JXPageControlExchange.swift deleted file mode 100644 index e3329ca..0000000 --- a/Example/Pods/JXPageControl/JXPageControl/Classes/Transform/JXPageControlExchange.swift +++ /dev/null @@ -1,217 +0,0 @@ -// -// JXPageControlExchange.swift -// JXPageControl_Example -// -// Created by Coder_TanJX on 2019/7/3. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - - -@IBDesignable open class JXPageControlExchange: JXPageControlBase { - - // MARK: - -------------------------- Custom property list -------------------------- - - private var inactiveOriginFrame: [CGRect] = [] - - - // MARK: - -------------------------- Update tht data -------------------------- - - override func updateProgress(_ progress: CGFloat) { - guard progress >= 0 , - progress <= CGFloat(numberOfPages - 1) - else { return } - - let leftIndex = Int(floor(progress)) - let rightIndex = leftIndex + 1 > numberOfPages - 1 ? leftIndex : leftIndex + 1 - - if leftIndex == rightIndex { - - CATransaction.setDisableActions(true) - - let marginX: CGFloat = maxIndicatorSize.width + columnSpacing - - // 活跃点布局 - let activeLayerX = (maxIndicatorSize.width - activeSize.width) * 0.5 + floor(progress) * marginX - activeLayer?.frame = CGRect(x: activeLayerX, - y: activeLayer?.frame.minY ?? 0, - width: activeSize.width, - height: activeSize.height) - - // 不活跃点布局 - for index in 0 ..< numberOfPages - 1 { - - var layerFrame: CGRect = inactiveOriginFrame[index] - let layer = inactiveLayer[index] - - if index < Int(progress) { - layerFrame.origin.x -= marginX - layer.frame = layerFrame - }else if index > Int(progress) { - layer.frame = layerFrame - } - } - - CATransaction.commit() - - - }else { - - CATransaction.setDisableActions(true) - - let marginX: CGFloat = maxIndicatorSize.width + columnSpacing - - // 活跃点布局 - let activeLayerX = (maxIndicatorSize.width - activeSize.width) * 0.5 + progress * marginX - activeLayer?.frame = CGRect(x: activeLayerX, - y: activeLayer?.frame.minY ?? 0, - width: activeSize.width, - height: activeSize.height) - - // 不活跃点布局 - for index in 0 ..< numberOfPages - 1 { - - var layerFrame: CGRect = inactiveOriginFrame[index] - let layer = inactiveLayer[index] - - if index < Int(progress) { - layerFrame.origin.x -= marginX - layer.frame = layerFrame - }else if index > Int(progress) { - layer.frame = layerFrame - }else { - let leftScare = progress - floor(progress) - layerFrame.origin.x = layerFrame.origin.x - leftScare * marginX - layer.frame = layerFrame - } - } - - CATransaction.commit() - } - } - - override func updateCurrentPage(_ pageIndex: Int) { - guard pageIndex >= 0 , - pageIndex <= numberOfPages - 1, - pageIndex != currentIndex - else { return } - - let marginX: CGFloat = maxIndicatorSize.width + columnSpacing - - // 活跃点布局 - let activeLayerX = (maxIndicatorSize.width - activeSize.width) * 0.5 + CGFloat(pageIndex) * marginX - activeLayer?.frame = CGRect(x: activeLayerX, - y: activeLayer?.frame.minY ?? 0, - width: activeSize.width, - height: activeSize.height) - - // 不活跃点布局 - for index in 0 ..< numberOfPages - 1 { - - var layerFrame: CGRect = inactiveOriginFrame[index] - let layer = inactiveLayer[index] - - if index < pageIndex { - layerFrame.origin.x -= marginX - layer.frame = layerFrame - }else if index >= pageIndex { - layer.frame = layerFrame - } - } - - - - currentIndex = pageIndex - } - - override func inactiveHollowLayout() { - if isInactiveHollow { - inactiveLayer.forEach { (layer) in - layer.backgroundColor = UIColor.clear.cgColor - layer.borderColor = inactiveColor.cgColor - layer.borderWidth = 1 - } - }else { - inactiveLayer.forEach { (layer) in - layer.backgroundColor = inactiveColor.cgColor - layer.borderWidth = 0 - } - } - } - - override func activeHollowLayout() { - if isActiveHollow { - activeLayer?.backgroundColor = UIColor.clear.cgColor - activeLayer?.borderColor = activeColor.cgColor - activeLayer?.borderWidth = 1 - }else { - activeLayer?.backgroundColor = activeColor.cgColor - activeLayer?.borderWidth = 0 - } - } - - // MARK: - -------------------------- Reset -------------------------- - - override func resetInactiveLayer() { - // clear data - inactiveLayer.forEach() { $0.removeFromSuperlayer() } - inactiveLayer = [CALayer]() - inactiveOriginFrame = [] - // set new layers - for _ in 0 ..< numberOfPages - 1 { - let layer = CALayer() - contentView.layer.addSublayer(layer) - inactiveLayer.append(layer) - } - } - - override func resetActiveLayer() { - - activeLayer?.removeFromSuperlayer() - activeLayer = CALayer() - contentView.layer.addSublayer(activeLayer!) - } - - // MARK: - -------------------------- Layout -------------------------- - - - override func layoutActiveIndicator() { - if let activeLayer = activeLayer { - let x = (maxIndicatorSize.width - activeSize.width) * 0.5 - let y = (maxIndicatorSize.height - activeSize.height) * 0.5 - activeLayer.frame = CGRect(x: x, - y: y, - width: activeSize.width, - height: activeSize.height) - if activeLayer.frame.width > activeLayer.frame.height { - activeLayer.cornerRadius = activeLayer.frame.height*0.5 - }else { - activeLayer.cornerRadius = activeLayer.frame.width*0.5 - } - activeHollowLayout() - } - - } - - override func layoutInactiveIndicators() { - inactiveOriginFrame = [] - let x = (maxIndicatorSize.width - inactiveSize.width) * 0.5 - let y = (maxIndicatorSize.height - inactiveSize.height) * 0.5 - var layerFrame = CGRect(x: x + maxIndicatorSize.width + columnSpacing, - y: y, - width: inactiveSize.width, - height: inactiveSize.height) - inactiveLayer.forEach() { layer in - layer.frame = layerFrame - inactiveOriginFrame.append(layerFrame) - if layer.frame.width > layer.frame.height { - layer.cornerRadius = layer.frame.height*0.5 - }else { - layer.cornerRadius = layer.frame.width*0.5 - } - layerFrame.origin.x += maxIndicatorSize.width + columnSpacing - } - inactiveHollowLayout() - } -} diff --git a/Example/Pods/JXPageControl/JXPageControl/Classes/Transform/JXPageControlFill.swift b/Example/Pods/JXPageControl/JXPageControl/Classes/Transform/JXPageControlFill.swift deleted file mode 100644 index 141088c..0000000 --- a/Example/Pods/JXPageControl/JXPageControl/Classes/Transform/JXPageControlFill.swift +++ /dev/null @@ -1,247 +0,0 @@ -// -// JXPageControlFill.swift -// JXPageControl_Example -// -// Created by Coder_TanJX on 2019/6/10. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit -import CoreGraphics - -@IBDesignable open class JXPageControlFill: JXPageControlBase { - - - /// Please use the property "diameter" - override public var activeSize: CGSize { - get { return CGSize(width: actualDiameter, height: actualDiameter) } - set {} - } - - /// Please use the property "diameter" - override public var inactiveSize: CGSize { - get { return CGSize(width: actualDiameter, height: actualDiameter) } - set {} - } - - /// Please use the property "diameter" - override public var indicatorSize: CGSize { - get { return CGSize(width: actualDiameter, height: actualDiameter) } - set {} - } - - // MARK: - -------------------------- Custom property list -------------------------- - - /// Indicator diameter - var actualDiameter: CGFloat = 10.0 - @IBInspectable var diameter: CGFloat { - set { - actualDiameter = newValue > minIndicatorSize.width ? - newValue : minIndicatorSize.width - reloadLayout() - updateProgress(CGFloat(currentIndex)) - } - get { return actualDiameter } - } - - /// Indicator ring borderWidth - @IBInspectable var borderWidth: CGFloat = 1.0 { - didSet { - reloadLayout() - updateProgress(CGFloat(currentIndex)) - } - } - - // MARK: - -------------------------- Update tht data -------------------------- - - override func updateProgress(_ progress: CGFloat) { - guard progress >= 0 , - progress <= CGFloat(numberOfPages - 1) - else { return } - - let borderW: CGFloat = isInactiveHollow ? borderWidth : 0 - let insetRect = CGRect(x: 0, - y: 0, - width: actualDiameter, - height: actualDiameter).insetBy(dx: borderW, dy: borderW) - - let left = floor(progress) - let page = Int(progress) - let move = insetRect.width / 2 - - let rightInset = move * CGFloat(progress - left) - let rightRect = insetRect.insetBy(dx: rightInset, dy: rightInset) - - let leftInset = (1 - CGFloat(progress - left)) * move - let leftRect = insetRect.insetBy(dx: leftInset, dy: leftInset) - - for (index, layer) in inactiveLayer.enumerated() { - switch index { - case page: - hollowLayout(layer: layer, - insetRect: leftRect) - case page + 1: - hollowLayout(layer: layer, - insetRect: rightRect) - break - default: - hollowLayout(layer: layer, - insetRect: insetRect) - break - } - } - currentIndex = Int(progress) - } - - override func updateCurrentPage(_ pageIndex: Int) { - guard pageIndex >= 0 , - pageIndex <= numberOfPages - 1, - pageIndex != currentIndex - else { return } - - - let borderW: CGFloat = isInactiveHollow ? borderWidth : 0 - let insetRect = CGRect(x: 0, - y: 0, - width: actualDiameter, - height: actualDiameter).insetBy(dx: borderW, dy: borderW) - let maxW = insetRect.width / 2 - - - for (index, layer) in inactiveLayer.enumerated() { - if index == currentIndex { - hollowLayout(layer: layer, - insetRect: insetRect, - coefficient: maxW, - maxW: nil) - - }else if index == pageIndex { - hollowLayout(layer: layer, - insetRect: insetRect, - coefficient: 1, - maxW: maxW) - } - } - currentIndex = pageIndex - } - - override func inactiveHollowLayout() { - updateProgress(CGFloat(currentIndex)) - } - - override func activeHollowLayout() { - updateProgress(CGFloat(currentIndex)) - } - - // MARK: - -------------------------- Layout -------------------------- - override func layoutContentView() { - - var x: CGFloat = 0 - var y: CGFloat = 0 - let width = CGFloat(numberOfPages) * (actualDiameter + columnSpacing) - columnSpacing - let height = actualDiameter - - // Horizon layout - switch contentAlignment.horizon { - case .left: - x = 0 - case .right: - x = (frame.width - width) - case .center: - x = (frame.width - width) * 0.5 - } - - // Vertical layout - switch contentAlignment.vertical { - case .top: - y = 0 - case .bottom: - y = frame.height - height - case .center: - y = (frame.height - height) * 0.5 - } - contentView.frame = CGRect(x: x, - y: y, - width: width, - height: height) - } - - override func layoutInactiveIndicators() { - - var layerFrame = CGRect(x: 0, - y: 0, - width: actualDiameter, - height: actualDiameter) - inactiveLayer.forEach() { layer in - layer.cornerRadius = actualDiameter * 0.5 - layer.frame = layerFrame - layerFrame.origin.x += actualDiameter + columnSpacing - } - } -} - -extension JXPageControlFill { - - private func hollowLayout(layer: CALayer, - insetRect: CGRect, - coefficient: CGFloat, - maxW: CGFloat?) { - - CATransaction.begin() - CATransaction.setAnimationDuration(0.03) - CATransaction.setCompletionBlock { [weak self] in - guard let strongSelf = self else { return } - - - if let maxW = maxW { - let tempCoefficient = coefficient + 1 - if tempCoefficient <= maxW { - strongSelf.hollowLayout(layer: layer, - insetRect: insetRect, - coefficient: tempCoefficient, - maxW: maxW) - } - }else { - let tempCoefficient = coefficient - 1 - if tempCoefficient >= 0 { - strongSelf.hollowLayout(layer: layer, - insetRect: insetRect, - coefficient: tempCoefficient, - maxW: nil) - } - } - - } - - let tempInsetRect = insetRect.insetBy(dx: coefficient, - dy: coefficient) - hollowLayout(layer: layer, insetRect: tempInsetRect) - CATransaction.commit() - } - - private func hollowLayout(layer: CALayer, insetRect: CGRect) { - - layer.sublayers?.forEach({ (sublayer) in - sublayer.removeFromSuperlayer() - }) - - let mask = CAShapeLayer() - mask.fillRule = kCAFillRuleEvenOdd - let bounds = UIBezierPath(rect: layer.bounds) - bounds.append(UIBezierPath(ovalIn: insetRect)) - mask.path = bounds.cgPath - - if !isInactiveHollow { - layer.backgroundColor = inactiveColor.cgColor - let backgroundLayer = CALayer() - backgroundLayer.frame = layer.bounds - backgroundLayer.backgroundColor = activeColor.cgColor - backgroundLayer.cornerRadius = actualDiameter * 0.5 - layer.addSublayer(backgroundLayer) - backgroundLayer.mask = mask - }else { - layer.backgroundColor = activeColor.cgColor - layer.mask = mask - } - } -} diff --git a/Example/Pods/JXPageControl/JXPageControl/Classes/Transform/JXPageControlScale.swift b/Example/Pods/JXPageControl/JXPageControl/Classes/Transform/JXPageControlScale.swift deleted file mode 100644 index 4c96918..0000000 --- a/Example/Pods/JXPageControl/JXPageControl/Classes/Transform/JXPageControlScale.swift +++ /dev/null @@ -1,249 +0,0 @@ -// -// JXPageControlScale.swift -// JXPageControl_Example -// -// Created by Coder_TanJX on 2019/6/12. -// Copyright © 2019 CocoaPods. All rights reserved. -// - -import UIKit - -@IBDesignable open class JXPageControlScale: JXPageControlBase { - - open override func setBase() { - super.setBase() - activeSize = CGSize(width: 15, - height: 15) - } - - // MARK: - -------------------------- Custom property list -------------------------- - - /// When isAnimation is false, the animation time is shorter; - /// when isAnimation is true, the animation time is longer; - /// IsAnimation only applies "set currentPage", - /// while "set progress" does not work - @IBInspectable public var isAnimation: Bool = true - - private var inactiveOriginFrame: [CGRect] = [] - - // MARK: - -------------------------- Update tht data -------------------------- - - override func updateProgress(_ progress: CGFloat) { - guard progress >= 0 , - progress <= CGFloat(numberOfPages - 1) - else { return } - - - - - let leftIndex = Int(floor(progress)) - let rightIndex = leftIndex + 1 > numberOfPages - 1 ? leftIndex : leftIndex + 1 - - if leftIndex == rightIndex { - for index in 0 ..< numberOfPages { - if index != leftIndex{ - let layer = inactiveLayer[index] - layer.frame = inactiveOriginFrame[index] - hollowLayout(layer: layer, isActive: false) - }else { - let layer = inactiveLayer[index] - let frame = inactiveOriginFrame[index] - layer.frame = CGRect(x: frame.origin.x - (activeSize.width - inactiveSize.width) * 0.5, - y: (maxIndicatorSize.height - activeSize.height) * 0.5, - width: activeSize.width, - height: activeSize.height) - hollowLayout(layer: layer, isActive: true) - } - } - }else { - let leftLayer = inactiveLayer[leftIndex] - let rightLayer = inactiveLayer[rightIndex] - - let rightScare = progress - floor(progress) - let leftScare = 1 - rightScare - - - CATransaction.setDisableActions(true) - - let tempInactiveColor = isInactiveHollow ? UIColor.clear : inactiveColor - let tempActiveColor = (isInactiveHollow && isActiveHollow) ? UIColor.clear : activeColor - - leftLayer.backgroundColor = UIColor.transform(originColor: tempInactiveColor, - targetColor: tempActiveColor, - proportion: leftScare).cgColor - rightLayer.backgroundColor = UIColor.transform(originColor: tempInactiveColor, - targetColor: tempActiveColor, - proportion: rightScare).cgColor - - let activeWidth = activeSize.width > kMinItemWidth ? activeSize.width : kMinItemWidth - let activeHeight = activeSize.height > kMinItemHeight ? activeSize.height : kMinItemHeight - let inactiveWidth = inactiveSize.width > kMinItemWidth ? inactiveSize.width : kMinItemWidth - let inactiveHeight = inactiveSize.height > kMinItemHeight ? inactiveSize.height : kMinItemHeight - - let marginWidth = activeWidth - inactiveWidth - let marginHeight = activeHeight - inactiveHeight - - let leftWidth = inactiveWidth + marginWidth * leftScare - let rightWidth = inactiveWidth + marginWidth * rightScare - let leftHeight = inactiveHeight + marginHeight * leftScare - let rightHeight = inactiveHeight + marginHeight * rightScare - - - let leftX = (maxIndicatorSize.width - leftWidth) * 0.5 + (maxIndicatorSize.width + columnSpacing) * CGFloat(leftIndex) - let rightX = (maxIndicatorSize.width - rightWidth) * 0.5 + (maxIndicatorSize.width + columnSpacing) * CGFloat(rightIndex) - - leftLayer.frame = CGRect(x: leftX, - y: (maxIndicatorSize.height - leftHeight) * 0.5, - width: leftWidth, - height: leftHeight) - - - - rightLayer.frame = CGRect(x: rightX, - y: (maxIndicatorSize.height - rightHeight) * 0.5, - width: rightWidth, - height: rightHeight) - - - if leftWidth > leftHeight { - leftLayer.cornerRadius = leftHeight*0.5 - }else { - leftLayer.cornerRadius = leftWidth*0.5 - } - if rightWidth > rightHeight { - rightLayer.cornerRadius = rightHeight*0.5 - }else { - rightLayer.cornerRadius = rightWidth*0.5 - } - - - - for index in 0 ..< numberOfPages { - if index != leftIndex, - index != rightIndex { - let layer = inactiveLayer[index] - layer.frame = inactiveOriginFrame[index] - hollowLayout(layer: layer, isActive: false) - } - } - CATransaction.commit() - } - currentIndex = Int(progress) - } - - override func updateCurrentPage(_ pageIndex: Int) { - guard pageIndex >= 0 , - pageIndex <= numberOfPages - 1, - pageIndex != currentIndex - else { return } - - let duration: CFTimeInterval = isAnimation ? 0.6 : 0.3 - - for index in 0 ..< numberOfPages { - if index == currentIndex { - CATransaction.begin() - CATransaction.setAnimationDuration(duration) - let layer = inactiveLayer[index] - layer.frame = inactiveOriginFrame[index] - hollowLayout(layer: layer, isActive: false) - CATransaction.commit() - }else if index == pageIndex { - let layer = inactiveLayer[index] - let frame = inactiveOriginFrame[index] - - CATransaction.begin() - CATransaction.setAnimationDuration(duration) - layer.frame = CGRect(x: frame.origin.x - (self.activeSize.width - self.inactiveSize.width) * 0.5, - y: (self.maxIndicatorSize.height - self.activeSize.height) * 0.5, - width: self.activeSize.width, - height: self.activeSize.height) - hollowLayout(layer: layer, isActive: true) - CATransaction.commit() - } - } - currentIndex = pageIndex - } - - override func inactiveHollowLayout() { - hollowLayout() - } - - override func activeHollowLayout() { - hollowLayout() - } - - // MARK: - -------------------------- Layout -------------------------- - override func layoutInactiveIndicators() { - inactiveOriginFrame = [] - let x = (maxIndicatorSize.width - inactiveSize.width) * 0.5 - let y = (maxIndicatorSize.height - inactiveSize.height) * 0.5 - let inactiveWidth = inactiveSize.width > kMinItemWidth ? inactiveSize.width : kMinItemWidth - let inactiveHeight = inactiveSize.height > kMinItemHeight ? inactiveSize.height : kMinItemHeight - var layerFrame = CGRect(x: x, - y: y, - width: inactiveWidth , - height: inactiveHeight) - inactiveLayer.forEach() { layer in - layer.frame = layerFrame - inactiveOriginFrame.append(layerFrame) - layerFrame.origin.x += maxIndicatorSize.width + columnSpacing - } - hollowLayout() - } -} - -extension JXPageControlScale { - - private func hollowLayout() { - if isInactiveHollow { - for (index, layer) in inactiveLayer.enumerated() { - if index == currentIndex, !isActiveHollow { - layer.backgroundColor = activeColor.cgColor - }else { - layer.backgroundColor = UIColor.clear.cgColor - layer.borderColor = activeColor.cgColor - } - layer.borderColor = activeColor.cgColor - layer.borderWidth = 1 - } - } - else { - for (index, layer) in inactiveLayer.enumerated() { - if index == currentIndex { - layer.backgroundColor = activeColor.cgColor - }else { - layer.backgroundColor = inactiveColor.cgColor - } - layer.borderWidth = 0 - } - - } - } - - private func hollowLayout(layer: CALayer, isActive: Bool) { - /// Set backgroundcolor - if isInactiveHollow { - if isActive, - !isActiveHollow { - layer.backgroundColor = activeColor.cgColor - }else { - layer.backgroundColor = UIColor.clear.cgColor - layer.borderColor = activeColor.cgColor - } - }else { - if isActive { - layer.backgroundColor = activeColor.cgColor - }else { - layer.backgroundColor = inactiveColor.cgColor - } - } - - /// Set cornerRadius - if layer.frame.width > layer.frame.height { - layer.cornerRadius = layer.frame.height*0.5 - }else { - layer.cornerRadius = layer.frame.width*0.5 - } - } - -} diff --git a/Example/Pods/JXPageControl/LICENSE b/Example/Pods/JXPageControl/LICENSE deleted file mode 100644 index 3a51aee..0000000 --- a/Example/Pods/JXPageControl/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2019 bboyXFX - -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. diff --git a/Example/Pods/JXPageControl/README.md b/Example/Pods/JXPageControl/README.md deleted file mode 100644 index 9e6f5a5..0000000 --- a/Example/Pods/JXPageControl/README.md +++ /dev/null @@ -1,207 +0,0 @@ -# JXPageControl - -[![CI Status](https://img.shields.io/travis/bboyXFX/JXPageControl.svg?style=flat)](https://travis-ci.org/bboyXFX/JXPageControl) -[![Version](https://img.shields.io/cocoapods/v/JXPageControl.svg?style=flat)](https://cocoapods.org/pods/JXPageControl) -[![License](https://img.shields.io/cocoapods/l/JXPageControl.svg?style=flat)](https://cocoapods.org/pods/JXPageControl) -[![Platform](https://img.shields.io/cocoapods/p/JXPageControl.svg?style=flat)](https://cocoapods.org/pods/JXPageControl) - - -##### (JXPageControl supports multiple animation transformations, content layout transformations, and Xib layouts ) - ---- - -##### - -* Development environment: Xcode 7 -* Running condition: iOS(8.0+) -* Open source framework :[github地址](https://github.com/Code-TanJX/JXPageControl) -* [ Chinese is introduced [ 中文介绍 ]](https://blog.csdn.net/TanJiaXiang/article/details/95796616) - -  - -(If there is any problem, you can leave a message, welcome to study together, welcome star ) - ---- -### Installation -To install, simply add the following code to your Podfile : - -```ruby - -platform :ios, '8.0' - -target 'TargetName' do - pod 'JXPageControl' -end - -``` - ---- - -### The UI effect - -JXPageControlChameleon | JXPageControlExchange | JXPageControlFill -:-: | :-: | :-: - | | - - -  - -JXPageControlJump | JXPageControlScale -:-: | :-: - | - ---- - -### Frame set -* Common Framework common class files -* Jump - Jump animation effects class file -* Transform - Transition animation class file - ---- - ---- - -#### JXPageControl introduction [ JXPageControl 介绍 ] - -JXPageControl ADAPTS to Swift and objective-c - -  - -* JXPageControlBase - Base class for all pageControl -* JXPageControlType - All pageControl protocols, it provides a number of custom apis for developers to use - -  - -###### JXPageControlType - provides - API - -  - -* numberOfPages ---> Number of indicators. -* currentPage ---> Current indicator page number. -* progress ---> Current indicator page numbering process. -* hidesForSinglePage ---> Whether to hide when there is only one indicator. -* inactiveColor ---> Inactive indicator color -* activeColor ---> Active indicator color -* inactiveSize ---> Inactive indicator size -* activeSize ---> Active indicator size -* indicatorSize ---> All indicator sizes -* columnSpacing ---> Horizontal distance between indicators -* contentAlignment ---> Content layout location (note that this property is easy to use!!!!! ) -* contentMode ---> Content layout location, and support for transformation in Xib, real-time view of location changes (note that this property is very useful!!!!! ) -* isInactiveHollow ---> Whether the inactive indicator is a hollow pattern -* isActiveHollow ---> Whether the active indicator is a hollow pattern -* reload() ---> Refresh data/UI - -###### Be careful : -JXPageControl also provides some APIs for non-JXPageControlType. You can view it in the specific classes you use - -  - ---- -#### JXPageControl uses : - -  - -### Example 1 - -* Use (xib, storyboard for properties and layout Settings!!! ) -* Note that the module should select JXPageControl, otherwise it will not show up and the call will report an error. -* ContentMode can be set in View to change content location - -  - - - - ---- - - - - -### Example 2 - -* Write it in pure code - -``` - -import JXPageControl - -class ChamelonVC: UIViewController { - -lazy var codePageControl: JXPageControlJump = { -let pageControl = JXPageControlJump(frame: CGRect(x: 0, -y: 0, -width: UIScreen.main.bounds.width, -height: 30)) -pageControl.numberOfPages = 4 - -// JXPageControlType: default property -// pageControl.currentPage = 0 -// pageControl.progress = 0.0 -// pageControl.hidesForSinglePage = false -// pageControl.inactiveColor = UIColor.white.withAlphaComponent(0.5) -// pageControl.activeColor = UIColor.white -// pageControl.inactiveSize = CGSize(width: 10, height: 10) -// pageControl.activeSize = CGSize(width: 10, height: 10) -// pageControl.inactiveSize = CGSize(width: 10, height: 10) -// pageControl.columnSpacing = 10 -// pageControl.contentAlignment = JXPageControlAlignment(.center, -// .center) -// pageControl.contentMode = .center -// pageControl.isInactiveHollow = false -// pageControl.isActiveHollow = false - -// JXPageControlJump: default "custom property" -pageControl.isAnimation = true -pageControl.isFlexible = true - -return pageControl -}() - -override func viewDidLoad() { -super.viewDidLoad() -view.addSubview(codePageControl) -} - -} - -extension ChamelonVC: UIScrollViewDelegate { -func scrollViewDidScroll(_ scrollView: UIScrollView) { -let progress = scrollView.contentOffset.x / scrollView.bounds.width -let currentPage = Int(round(progress)) - -// Mode one -codePageControl.progress = progress - -// Mode two -// codePageControl.currentPagev = currentPage - -} - -} - -``` - -``` - - -``` - -### Example 2 and so on ... - -``` - -import JXPageControl -... - -``` - -### [The Demo address](https://github.com/Code-TanJX/JXPageControl) - -## Author - -Code-TanJX, Code_TanJX@163.com - -## License - -JXPageControl is available under the MIT license. See the LICENSE file for more info. diff --git a/Example/Pods/Local Podspecs/JXBanner.podspec.json b/Example/Pods/Local Podspecs/JXBanner.podspec.json deleted file mode 100644 index 97ec0e8..0000000 --- a/Example/Pods/Local Podspecs/JXBanner.podspec.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "name": "JXBanner", - "version": "0.1.0", - "summary": "A multifunctional framework for banner unlimited rollover diagrams", - "description": "The framework relies on JXPageConytrol and contains many custom interfaces, such as transition animation, view structure, and Settings", - "homepage": "https://github.com/Coder-TanJX", - "license": { - "type": "MIT", - "file": "LICENSE" - }, - "authors": { - "Code_TanJX": "code_tanjx@163.com" - }, - "source": { - "git": "https://github.com/Coder-TanJX/JXBanner.git", - "tag": "0.1.0" - }, - "platforms": { - "ios": "8.0" - }, - "swift_version": "5.0", - "subspecs": [ - { - "name": "PageControl", - "source_files": "JXBanner/Classes/PageControl/**/*", - "dependencies": { - "JXPageControl": [ - - ] - } - }, - { - "name": "Banner", - "subspecs": [ - { - "name": "Cell", - "source_files": "JXBanner/Classes/Banner/Cell/**/*" - }, - { - "name": "Common", - "source_files": "JXBanner/Classes/Banner/Common/**/*" - }, - { - "name": "API", - "source_files": "JXBanner/Classes/Banner/API/**/*", - "dependencies": { - "JXBanner/PageControl": [ - - ], - "JXBanner/Banner/Cell": [ - - ] - } - }, - { - "name": "Transform", - "source_files": "JXBanner/Classes/Banner/Transform/**/*", - "dependencies": { - "JXBanner/Banner/API": [ - - ] - } - }, - { - "name": "Banner", - "source_files": "JXBanner/Classes/Banner/Banner/**/*", - "dependencies": { - "JXBanner/Banner/API": [ - - ], - "JXBanner/Banner/Common": [ - - ], - "JXBanner/Banner/Transform": [ - - ] - } - } - ] - } - ] -} diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock deleted file mode 100644 index d014281..0000000 --- a/Example/Pods/Manifest.lock +++ /dev/null @@ -1,55 +0,0 @@ -PODS: - - JXBanner (0.1.0): - - JXBanner/Banner (= 0.1.0) - - JXBanner/PageControl (= 0.1.0) - - JXBanner/Banner (0.1.0): - - JXBanner/Banner/API (= 0.1.0) - - JXBanner/Banner/Banner (= 0.1.0) - - JXBanner/Banner/Cell (= 0.1.0) - - JXBanner/Banner/Common (= 0.1.0) - - JXBanner/Banner/Transform (= 0.1.0) - - JXBanner/Banner/API (0.1.0): - - JXBanner/Banner/Cell - - JXBanner/PageControl - - JXBanner/Banner/Banner (0.1.0): - - JXBanner/Banner/API - - JXBanner/Banner/Common - - JXBanner/Banner/Transform - - JXBanner/Banner/Cell (0.1.0) - - JXBanner/Banner/Common (0.1.0) - - JXBanner/Banner/Transform (0.1.0): - - JXBanner/Banner/API - - JXBanner/PageControl (0.1.0): - - JXPageControl - - JXPageControl (0.1.3): - - JXPageControl/Common (= 0.1.3) - - JXPageControl/Jump (= 0.1.3) - - JXPageControl/Transform (= 0.1.3) - - JXPageControl/Common (0.1.3) - - JXPageControl/Jump (0.1.3): - - JXPageControl/Common - - JXPageControl/Transform (0.1.3): - - JXPageControl/Common - - SnapKit (4.2.0) - -DEPENDENCIES: - - JXBanner (from `../`) - - SnapKit - -SPEC REPOS: - https://github.com/cocoapods/specs.git: - - JXPageControl - - SnapKit - -EXTERNAL SOURCES: - JXBanner: - :path: "../" - -SPEC CHECKSUMS: - JXBanner: d32dbf30f1d4fb014aad26f65e69b0ea32e32efe - JXPageControl: eea52838699a4949063e600b25eb9e8b6e20ae3f - SnapKit: fe8a619752f3f27075cc9a90244d75c6c3f27e2a - -PODFILE CHECKSUM: 55a2f798d49bb61948e4d464dc12db95c3ea531b - -COCOAPODS: 1.6.1 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj deleted file mode 100644 index 214fc09..0000000 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1301 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 09BF5E79E6E0B417AF23A30A9DE7285D /* JXPageControlChameleon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46C66033A28AD66DEE2C1B2463961310 /* JXPageControlChameleon.swift */; }; - 09D280B6799C96D915ED9C1E32434F78 /* ConstraintRelation.swift in Sources */ = {isa = PBXBuildFile; fileRef = B525D0AD5E0A11D5E730B4993B21C606 /* ConstraintRelation.swift */; }; - 14112D7E171D2BC28004C931AD1FE892 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B8CDE57BD9056C6F5333F4871F868BAC /* Foundation.framework */; }; - 199C7528DD3BE6C9418027F18455593F /* Pods-JXBanner_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CDF0DE76F8D0837F6F87E8320A404E79 /* Pods-JXBanner_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1C9275649C74DA6A8FA54790800CBA50 /* JXBannerType.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBF6DE944C4BA6D7A11BCF201B5A58E9 /* JXBannerType.swift */; }; - 1D5D928AB969C10B0256D6E9240B0B25 /* JXBannerParams.swift in Sources */ = {isa = PBXBuildFile; fileRef = 480EA7A40528B642D93F6462EADC1829 /* JXBannerParams.swift */; }; - 1DF3C35149A9333EAA1876B5F44C733E /* Typealiases.swift in Sources */ = {isa = PBXBuildFile; fileRef = B89310BFA4A147286010D8682210EDC7 /* Typealiases.swift */; }; - 229D9CA5449E9187ECF8E9311491EC6D /* JXPageControlFill.swift in Sources */ = {isa = PBXBuildFile; fileRef = A163B7B09ACB7927E5FE0E5F0DAD9171 /* JXPageControlFill.swift */; }; - 28A3D88D851733FBF5F338EA80F10B36 /* ConstraintMultiplierTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8A535391FFD9F4B88B7E6B2DA5D408E /* ConstraintMultiplierTarget.swift */; }; - 2A9489A70D33CF8C2F82657C9D1680DC /* ConstraintDescription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EDA28F2558F55237D210F6F70A4458C /* ConstraintDescription.swift */; }; - 2BE440DF45BF9EF7F0ADAF6293EE5E0D /* ConstraintInsets.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD4BE666BA5D0BDDD3416C2BC040C8BA /* ConstraintInsets.swift */; }; - 2C7F9FD26D9EDBE4DE2976E549F409F7 /* JXPageControlBoldLine.swift in Sources */ = {isa = PBXBuildFile; fileRef = D704B93D7D8745AA39BF1ADD1DA33408 /* JXPageControlBoldLine.swift */; }; - 2FAD114D993C85A4A1CEF16003A47EB9 /* ConstraintPriorityTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = D6B6BC6E7D6A5B5E972FDDA73B7DC21F /* ConstraintPriorityTarget.swift */; }; - 300D72FB4A2E7476E081A52F1D3AAD01 /* JXPageControlLine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B9D0BD258AB49A6465CD2F7F6F6A5E4 /* JXPageControlLine.swift */; }; - 3157C05C80CA1E0495A8DFC2C0AF176A /* ConstraintConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C490943A9F54848FC49E77B7B9869DA /* ConstraintConfig.swift */; }; - 3410C367A2B8F933BF201F00CBF8211F /* Timer+JXBExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B29E124FF6542D793CCDBF27E08ACF /* Timer+JXBExtension.swift */; }; - 469D9A4166DFDC102761318EE1522ECF /* JXPageControlType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C1459064CE8AFF9B084951BA454F352 /* JXPageControlType.swift */; }; - 49B546FE034888802D3524F237258283 /* JXPageControlScale.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0B87C7D080FC051E35676D2594816DF /* JXPageControlScale.swift */; }; - 4B8E5BDB256C5E79C297309866D66514 /* ConstraintItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F78D3307348642F2B3E10E26F6E6F54 /* ConstraintItem.swift */; }; - 4DF57D07A1DBE6A8186362D381235B88 /* JXBannerLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 348A933B01F40915F221F2CF862B6DC3 /* JXBannerLayout.swift */; }; - 4E50667549D89F8D67664473D962E3D2 /* LayoutConstraintItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA308DAF804300E4C7E1615804CF0015 /* LayoutConstraintItem.swift */; }; - 50C47D79F7946DDC4EC41700EED9C427 /* ConstraintMakerEditable.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8D38A02E38545DC909CDED794A5975C /* ConstraintMakerEditable.swift */; }; - 51609D0B6CCE35116FFF479D9EDD276B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B8CDE57BD9056C6F5333F4871F868BAC /* Foundation.framework */; }; - 529BF8DBB4FAC7EEFF0720FEE89D8807 /* JXBannerPageControlDefault.swift in Sources */ = {isa = PBXBuildFile; fileRef = 219C782D595FEC432C03570052551F89 /* JXBannerPageControlDefault.swift */; }; - 5328D123D745AD459AEFDB0FA206E143 /* ConstraintMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4984CD215F46C594A5FB3F3A3E50FF41 /* ConstraintMaker.swift */; }; - 538903F1C1464CD63FF0DA3D9B753D59 /* JXBanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = EED9B9EB52BFF37F00F252082BA0BE02 /* JXBanner.swift */; }; - 587849B7FA37493C95685E1C6635FDCD /* ConstraintLayoutSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EBD668FE304474E75C643B1F41C2918 /* ConstraintLayoutSupport.swift */; }; - 5A52E0646AA6E485C3C99E7BA58FFA28 /* LayoutConstraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6D0E5A0D7E8D4117E685BD79621CA583 /* LayoutConstraint.swift */; }; - 5CDF68033B93E90C80329172A6D5184D /* JXBannerCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E210C8FB3212B61963E6C0056714960 /* JXBannerCell.swift */; }; - 5D39717DE3B9C93BD7AFDEC106992E61 /* JXBaseBanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D74113E52DCB4F7A1AAD717946B41E /* JXBaseBanner.swift */; }; - 5E0EC8B131DAE4BA894A2BC16EDADF17 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B8CDE57BD9056C6F5333F4871F868BAC /* Foundation.framework */; }; - 5E8307445BCBA48F080976831DDE1DC1 /* JXBannerTransformable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D16064A70A2973ED97148436B5441EF3 /* JXBannerTransformable.swift */; }; - 625AE9EF9B8630E9D9C7A1BDF30215D7 /* ConstraintMakerExtendable.swift in Sources */ = {isa = PBXBuildFile; fileRef = B4BC51A9B8A281B522EB0F7C1CC396C3 /* ConstraintMakerExtendable.swift */; }; - 690C04241AAEB967053667A6A49D045D /* ConstraintInsetTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD01E1FD9541B7A7B5B35781DDD85259 /* ConstraintInsetTarget.swift */; }; - 69D1F1A9FFA5FEE777383145AC47EBE3 /* ConstraintPriority.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E354CCC94B948026081A7FE62AE3002 /* ConstraintPriority.swift */; }; - 7086375420B09A830A19087FE052ED80 /* JXPageControlJump.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94E95A72538D27EDE6CD5FCD0FD925BA /* JXPageControlJump.swift */; }; - 7AF79D96C04B786A85DC8DB9101F6909 /* JXBannerPageControlBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02BB2DC76B097EEC8C0772D7AB32BA6F /* JXBannerPageControlBuilder.swift */; }; - 81730D9CC5D029A053C7983A8A250A52 /* Pods-JXBanner_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A17A6C348D594FFDDAD7DAA85E3FD42 /* Pods-JXBanner_Example-dummy.m */; }; - 83297D5C55C30E8A8F4E534D849F4D60 /* JXBannerLayoutParams.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17D433488593B4975A9F446219CC9F69 /* JXBannerLayoutParams.swift */; }; - 83E8865D0E34C7C7ED919105F79C6EB4 /* UILayoutSupport+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 309B90D1E114BD5D8BFBA680054E6004 /* UILayoutSupport+Extensions.swift */; }; - 851E73740D08F71CC6A87AFF52786892 /* JXPageControlEllipse.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9E86F6A42D6D7D8638F1550664BC240 /* JXPageControlEllipse.swift */; }; - 8806156A2395C0F21585B792AA09EB68 /* ConstraintMakerPriortizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0287752C5A6BFAD69522F171FE67C69D /* ConstraintMakerPriortizable.swift */; }; - 897577E802662B688E889E7BA036EBE8 /* JXBannerTransformCoverflow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 82642C69FAC8150A1598DA763667F6F7 /* JXBannerTransformCoverflow.swift */; }; - 8C92BAD896A6C97B54157740D876F94B /* IndexPath+JXCalculate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1ED4C1145A0FC2705A8CD0DEE2B5FE80 /* IndexPath+JXCalculate.swift */; }; - 8D9D4BC4C7FF25596EF9BDE09CFDB9FA /* ConstraintView+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 152C60343BC81B25BC46C5F24B9C3BE4 /* ConstraintView+Extensions.swift */; }; - 8E50A6844E2C75DBD065F964C933C7EC /* ConstraintMakerRelatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0BC1BAB8FE642334D5ABD1D0C68CADC /* ConstraintMakerRelatable.swift */; }; - 90755E3C58257356D024B5B2A52F3378 /* JXPageControl-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E7210D6DD1F2688E4E3F9556F7F12AA /* JXPageControl-dummy.m */; }; - 990E4D72F4B5C1CBBB0D0A44927278C4 /* JXPageControl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D30201FAB63FDFBE4E201FD584D4CB24 /* JXPageControl.framework */; }; - A2D7DE1CF026B2F90DDDC9EC9EE4E476 /* View+JXExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA091B626A890F0F98DB3908C4FE4D07 /* View+JXExtension.swift */; }; - A376DE74AF8965C21D34B83263D86230 /* JXPageControlTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999EDE29E6EDB2FE1131095FE212EDFE /* JXPageControlTool.swift */; }; - A6EABDAAF52FAE2483E939070E5F7FE6 /* ConstraintDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = C80EA48F1E6E30C692EBBEC76F3AC0C8 /* ConstraintDSL.swift */; }; - A6F1076888D56C52595F2CECFD685C02 /* ConstraintMakerFinalizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F69096F3C559A85930AD38F7A794F0E4 /* ConstraintMakerFinalizable.swift */; }; - A855369F366159A8EAAABAF8B92B7D1E /* JXPageControlExchange.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7361C5355D618E0D2D15907DBEAD06A4 /* JXPageControlExchange.swift */; }; - ABE7730D474B51F04BFD597D26F68EE6 /* ConstraintLayoutGuide.swift in Sources */ = {isa = PBXBuildFile; fileRef = F606B1E42B3F9313A16D7BD6CFF4C3E3 /* ConstraintLayoutGuide.swift */; }; - AE41B4F00AE774E3234AA641308DEDF2 /* JXPageControlBase.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6DF5B4FB133A3148E670FE7B5D4850B /* JXPageControlBase.swift */; }; - B04BB738F8AC272A6944E9687BC9594D /* ConstraintViewDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A168D3E04A13893B8345CE52046E3C2 /* ConstraintViewDSL.swift */; }; - BB5B52EA52AE8CB85487A55EC4A78637 /* ConstraintLayoutGuideDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC761311EA28A0E21DCBE1585C33694D /* ConstraintLayoutGuideDSL.swift */; }; - BC9AE8C4AFEFD53B8B38FF9A3EB5C339 /* ConstraintAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD18365173DA9FBE9D2D7C015179DED7 /* ConstraintAttributes.swift */; }; - BE2EC27F8469222B418A1051E60851B7 /* ConstraintLayoutSupportDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86243779885A89BFD40AA25D537E2ACD /* ConstraintLayoutSupportDSL.swift */; }; - BF1BD297E3607D4F370393EA28BBFA10 /* JXBannerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A02F8C9AFD23635DE32A38173ACC215 /* JXBannerDelegate.swift */; }; - C5087FD2F209C0FC984DDC5437069090 /* JXBanner-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 74F1BF5F371AD7962B918696C2186186 /* JXBanner-dummy.m */; }; - C59AA2B0260E27605CB7A51C9E84FBEC /* JXBannerTransfrom.swift in Sources */ = {isa = PBXBuildFile; fileRef = B39E3D92BE2A62D997729D73AAC67003 /* JXBannerTransfrom.swift */; }; - C6E7B6E11E9E4C5AF0EADB5A3ECD6646 /* ConstraintConstantTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 741B22239EB57D90C2042071E62595F7 /* ConstraintConstantTarget.swift */; }; - CD320E30FB58B2FCD4590515801EE120 /* ConstraintOffsetTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 846F4E45A51AB41AD1FBD541911C21DA /* ConstraintOffsetTarget.swift */; }; - CF080F219CA4528D20C7DEE73F672DB1 /* ConstraintRelatableTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAA9F1D04E853CB3749E79E60BB79BBE /* ConstraintRelatableTarget.swift */; }; - D459AC8F6662F74B0AEFCC1757AEA42E /* ConstraintView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EB93D09741969D8559CBA4A7FA5E818 /* ConstraintView.swift */; }; - D5A25B2657F533B5F7DC6E83AA25DB06 /* Debugging.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4431CB2674E24E47A4FA4CB2C46CA48 /* Debugging.swift */; }; - D8F7A8863E70D4221DE1C25830DE407C /* JXBanner-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5557ED81910BC64D4E89FBA0D6D61E71 /* JXBanner-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - DCC932909B6AFF3B029CE7D11FB93AE6 /* JXBannerTransformContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42310C35D52E24EF9181491175573EC3 /* JXBannerTransformContext.swift */; }; - DE0ABD68B3E64CDD68E522528F15EC2C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B8CDE57BD9056C6F5333F4871F868BAC /* Foundation.framework */; }; - E56814A1316B1DBE8189372EC63A1F98 /* JXBannerDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = D211EF36D613DA99BFC4E11FC473CDB9 /* JXBannerDataSource.swift */; }; - F1CB08B4F1B835070E1B80D83D4E96CE /* JXBannerTransformLinear.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BC698E1DCA9EEEAE00B79B729098422 /* JXBannerTransformLinear.swift */; }; - F406A0954FCD89B286C20D730E3DD2D4 /* JXPageControl-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CD48D889814F9782AA32A9BC417DD6A1 /* JXPageControl-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F53CFA2630D904C300DC897E625C5C91 /* SnapKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 52654F3308568CF99DFECF17A113D193 /* SnapKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F9A3FBC8693749210C1E840056C627F9 /* SnapKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 23EA23B4B003D4796B6D65E9023ED6AE /* SnapKit-dummy.m */; }; - FA41843A00AB24284648810B8B6F410A /* JXBannerBaseCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAD205C1E6D51AB643FA6AFE81C3B523 /* JXBannerBaseCell.swift */; }; - FA7CC934920A83166D96F6A426C072D3 /* ConstraintLayoutGuide+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 371F32E23ADFD0ECBFE89C4DEB3D126C /* ConstraintLayoutGuide+Extensions.swift */; }; - FF49C944194DC81A5747A7F7102E36F6 /* Constraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4503B085CBA2893B327AFD10340B1E45 /* Constraint.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 4F205F022182F4341055661B5F98F180 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = BB4ABD45CEDC5804660DD457EADCEF6A; - remoteInfo = JXBanner; - }; - 5487595344D218BED55091CD0AF4FA6D /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = C6C19D6EA38F9B8766CE0488AB708FAA; - remoteInfo = JXPageControl; - }; - B7B97C68BB833556479EE770CC9DACDE /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = A4D36C3E69B908E2EF3590393A3FC303; - remoteInfo = SnapKit; - }; - DD33E4CE4787702FD3B3895DA95933D5 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = C6C19D6EA38F9B8766CE0488AB708FAA; - remoteInfo = JXPageControl; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 0287752C5A6BFAD69522F171FE67C69D /* ConstraintMakerPriortizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerPriortizable.swift; path = Source/ConstraintMakerPriortizable.swift; sourceTree = ""; }; - 02BB2DC76B097EEC8C0772D7AB32BA6F /* JXBannerPageControlBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXBannerPageControlBuilder.swift; path = JXBanner/Classes/PageControl/JXBannerPageControlBuilder.swift; sourceTree = ""; }; - 0909C73C5F9793C5958F609BFD074259 /* SnapKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SnapKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 0B9D0BD258AB49A6465CD2F7F6F6A5E4 /* JXPageControlLine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXPageControlLine.swift; path = JXPageControl/Classes/Jump/JXPageControlLine.swift; sourceTree = ""; }; - 0BC698E1DCA9EEEAE00B79B729098422 /* JXBannerTransformLinear.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXBannerTransformLinear.swift; path = JXBanner/Classes/Banner/Transform/JXBannerTransformLinear.swift; sourceTree = ""; }; - 0C490943A9F54848FC49E77B7B9869DA /* ConstraintConfig.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintConfig.swift; path = Source/ConstraintConfig.swift; sourceTree = ""; }; - 0EB93D09741969D8559CBA4A7FA5E818 /* ConstraintView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintView.swift; path = Source/ConstraintView.swift; sourceTree = ""; }; - 0EDA28F2558F55237D210F6F70A4458C /* ConstraintDescription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDescription.swift; path = Source/ConstraintDescription.swift; sourceTree = ""; }; - 100737050984FDEBB135A73884A91BC6 /* JXPageControl-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXPageControl-prefix.pch"; sourceTree = ""; }; - 152C60343BC81B25BC46C5F24B9C3BE4 /* ConstraintView+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ConstraintView+Extensions.swift"; path = "Source/ConstraintView+Extensions.swift"; sourceTree = ""; }; - 17D433488593B4975A9F446219CC9F69 /* JXBannerLayoutParams.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXBannerLayoutParams.swift; path = JXBanner/Classes/Banner/API/JXBannerLayoutParams.swift; sourceTree = ""; }; - 1A168D3E04A13893B8345CE52046E3C2 /* ConstraintViewDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintViewDSL.swift; path = Source/ConstraintViewDSL.swift; sourceTree = ""; }; - 1ED4C1145A0FC2705A8CD0DEE2B5FE80 /* IndexPath+JXCalculate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "IndexPath+JXCalculate.swift"; path = "JXBanner/Classes/Banner/Common/IndexPath+JXCalculate.swift"; sourceTree = ""; }; - 219C782D595FEC432C03570052551F89 /* JXBannerPageControlDefault.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXBannerPageControlDefault.swift; path = JXBanner/Classes/PageControl/JXBannerPageControlDefault.swift; sourceTree = ""; }; - 23EA23B4B003D4796B6D65E9023ED6AE /* SnapKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SnapKit-dummy.m"; sourceTree = ""; }; - 25A19409959A78FC7B2069D8CB716F1F /* SnapKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SnapKit.modulemap; sourceTree = ""; }; - 29B29E124FF6542D793CCDBF27E08ACF /* Timer+JXBExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "Timer+JXBExtension.swift"; path = "JXBanner/Classes/Banner/Common/Timer+JXBExtension.swift"; sourceTree = ""; }; - 2A17A6C348D594FFDDAD7DAA85E3FD42 /* Pods-JXBanner_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-JXBanner_Example-dummy.m"; sourceTree = ""; }; - 2C8903E9B27AD9C2DEC4DCE7F743F784 /* Pods-JXBanner_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-JXBanner_Example.release.xcconfig"; sourceTree = ""; }; - 309B90D1E114BD5D8BFBA680054E6004 /* UILayoutSupport+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UILayoutSupport+Extensions.swift"; path = "Source/UILayoutSupport+Extensions.swift"; sourceTree = ""; }; - 348A933B01F40915F221F2CF862B6DC3 /* JXBannerLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXBannerLayout.swift; path = JXBanner/Classes/Banner/Banner/JXBannerLayout.swift; sourceTree = ""; }; - 371F32E23ADFD0ECBFE89C4DEB3D126C /* ConstraintLayoutGuide+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ConstraintLayoutGuide+Extensions.swift"; path = "Source/ConstraintLayoutGuide+Extensions.swift"; sourceTree = ""; }; - 38C6B1E254BCA50988CC7D7FDE01E499 /* Pods-JXBanner_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-JXBanner_Example-acknowledgements.plist"; sourceTree = ""; }; - 3FE91428EF05EC25C2EB43053261D721 /* SnapKit-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "SnapKit-Info.plist"; sourceTree = ""; }; - 4097A912DE6E9AF433798DFB98526C6E /* JXBanner.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXBanner.xcconfig; sourceTree = ""; }; - 42310C35D52E24EF9181491175573EC3 /* JXBannerTransformContext.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXBannerTransformContext.swift; path = JXBanner/Classes/Banner/Transform/JXBannerTransformContext.swift; sourceTree = ""; }; - 4503B085CBA2893B327AFD10340B1E45 /* Constraint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constraint.swift; path = Source/Constraint.swift; sourceTree = ""; }; - 46C66033A28AD66DEE2C1B2463961310 /* JXPageControlChameleon.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXPageControlChameleon.swift; path = JXPageControl/Classes/Transform/JXPageControlChameleon.swift; sourceTree = ""; }; - 480EA7A40528B642D93F6462EADC1829 /* JXBannerParams.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXBannerParams.swift; path = JXBanner/Classes/Banner/API/JXBannerParams.swift; sourceTree = ""; }; - 4984CD215F46C594A5FB3F3A3E50FF41 /* ConstraintMaker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMaker.swift; path = Source/ConstraintMaker.swift; sourceTree = ""; }; - 4C1459064CE8AFF9B084951BA454F352 /* JXPageControlType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXPageControlType.swift; path = JXPageControl/Classes/Common/JXPageControlType.swift; sourceTree = ""; }; - 52654F3308568CF99DFECF17A113D193 /* SnapKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SnapKit-umbrella.h"; sourceTree = ""; }; - 5557ED81910BC64D4E89FBA0D6D61E71 /* JXBanner-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXBanner-umbrella.h"; sourceTree = ""; }; - 6A02F8C9AFD23635DE32A38173ACC215 /* JXBannerDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXBannerDelegate.swift; path = JXBanner/Classes/Banner/API/JXBannerDelegate.swift; sourceTree = ""; }; - 6CA792D354251AD1668350A8B4A9CEF5 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; - 6D0E5A0D7E8D4117E685BD79621CA583 /* LayoutConstraint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LayoutConstraint.swift; path = Source/LayoutConstraint.swift; sourceTree = ""; }; - 6E354CCC94B948026081A7FE62AE3002 /* ConstraintPriority.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintPriority.swift; path = Source/ConstraintPriority.swift; sourceTree = ""; }; - 6E524F6DBDE960D9CA58C84A973B16CA /* SnapKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SnapKit-prefix.pch"; sourceTree = ""; }; - 7361C5355D618E0D2D15907DBEAD06A4 /* JXPageControlExchange.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXPageControlExchange.swift; path = JXPageControl/Classes/Transform/JXPageControlExchange.swift; sourceTree = ""; }; - 741B22239EB57D90C2042071E62595F7 /* ConstraintConstantTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintConstantTarget.swift; path = Source/ConstraintConstantTarget.swift; sourceTree = ""; }; - 74E4F29F1D68ADBDCA283B0D4CBD6152 /* JXBanner-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "JXBanner-Info.plist"; sourceTree = ""; }; - 74F1BF5F371AD7962B918696C2186186 /* JXBanner-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "JXBanner-dummy.m"; sourceTree = ""; }; - 7BD90135AFFC300C79BED5A8E446E5D0 /* Pods_JXBanner_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_JXBanner_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7DE4A20C66B8739C0B173987392A7608 /* JXPageControl-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "JXPageControl-Info.plist"; sourceTree = ""; }; - 7EBD668FE304474E75C643B1F41C2918 /* ConstraintLayoutSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutSupport.swift; path = Source/ConstraintLayoutSupport.swift; sourceTree = ""; }; - 7F78D3307348642F2B3E10E26F6E6F54 /* ConstraintItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintItem.swift; path = Source/ConstraintItem.swift; sourceTree = ""; }; - 82642C69FAC8150A1598DA763667F6F7 /* JXBannerTransformCoverflow.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXBannerTransformCoverflow.swift; path = JXBanner/Classes/Banner/Transform/JXBannerTransformCoverflow.swift; sourceTree = ""; }; - 82785579B4BB73691B4571A788CA5B83 /* JXBanner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = JXBanner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 842193070C12A72ECB4F1CDEE1A27038 /* Pods-JXBanner_Example-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-JXBanner_Example-Info.plist"; sourceTree = ""; }; - 846F4E45A51AB41AD1FBD541911C21DA /* ConstraintOffsetTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintOffsetTarget.swift; path = Source/ConstraintOffsetTarget.swift; sourceTree = ""; }; - 86243779885A89BFD40AA25D537E2ACD /* ConstraintLayoutSupportDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutSupportDSL.swift; path = Source/ConstraintLayoutSupportDSL.swift; sourceTree = ""; }; - 8E7210D6DD1F2688E4E3F9556F7F12AA /* JXPageControl-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "JXPageControl-dummy.m"; sourceTree = ""; }; - 8F1F138E4A36760593CD2F1F8C8A4907 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - 94E95A72538D27EDE6CD5FCD0FD925BA /* JXPageControlJump.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXPageControlJump.swift; path = JXPageControl/Classes/Jump/JXPageControlJump.swift; sourceTree = ""; }; - 98F0DE1DD9F743281DBFA82BA8CE37EB /* JXPageControl.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = JXPageControl.xcconfig; sourceTree = ""; }; - 999EDE29E6EDB2FE1131095FE212EDFE /* JXPageControlTool.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXPageControlTool.swift; path = JXPageControl/Classes/Common/JXPageControlTool.swift; sourceTree = ""; }; - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9E210C8FB3212B61963E6C0056714960 /* JXBannerCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXBannerCell.swift; path = JXBanner/Classes/Banner/Cell/JXBannerCell.swift; sourceTree = ""; }; - A11FB038514379D3755EC971672CD3E0 /* Pods-JXBanner_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-JXBanner_Example-frameworks.sh"; sourceTree = ""; }; - A163B7B09ACB7927E5FE0E5F0DAD9171 /* JXPageControlFill.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXPageControlFill.swift; path = JXPageControl/Classes/Transform/JXPageControlFill.swift; sourceTree = ""; }; - A8A535391FFD9F4B88B7E6B2DA5D408E /* ConstraintMultiplierTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMultiplierTarget.swift; path = Source/ConstraintMultiplierTarget.swift; sourceTree = ""; }; - A8D38A02E38545DC909CDED794A5975C /* ConstraintMakerEditable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerEditable.swift; path = Source/ConstraintMakerEditable.swift; sourceTree = ""; }; - AAA9F1D04E853CB3749E79E60BB79BBE /* ConstraintRelatableTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintRelatableTarget.swift; path = Source/ConstraintRelatableTarget.swift; sourceTree = ""; }; - ABC53F9467A78D23A845945CFF479DC5 /* SnapKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SnapKit.xcconfig; sourceTree = ""; }; - AD01E1FD9541B7A7B5B35781DDD85259 /* ConstraintInsetTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintInsetTarget.swift; path = Source/ConstraintInsetTarget.swift; sourceTree = ""; }; - AD18365173DA9FBE9D2D7C015179DED7 /* ConstraintAttributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintAttributes.swift; path = Source/ConstraintAttributes.swift; sourceTree = ""; }; - B13637BEE75FC0DA7C0C49179D237A89 /* JXPageControl.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = JXPageControl.modulemap; sourceTree = ""; }; - B39E3D92BE2A62D997729D73AAC67003 /* JXBannerTransfrom.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXBannerTransfrom.swift; path = JXBanner/Classes/Banner/Transform/JXBannerTransfrom.swift; sourceTree = ""; }; - B4BC51A9B8A281B522EB0F7C1CC396C3 /* ConstraintMakerExtendable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerExtendable.swift; path = Source/ConstraintMakerExtendable.swift; sourceTree = ""; }; - B525D0AD5E0A11D5E730B4993B21C606 /* ConstraintRelation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintRelation.swift; path = Source/ConstraintRelation.swift; sourceTree = ""; }; - B89310BFA4A147286010D8682210EDC7 /* Typealiases.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Typealiases.swift; path = Source/Typealiases.swift; sourceTree = ""; }; - B8CDE57BD9056C6F5333F4871F868BAC /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - BA2ECEEB308B97543E5B0786E3F4AF48 /* Pods-JXBanner_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-JXBanner_Example.debug.xcconfig"; sourceTree = ""; }; - BBF6DE944C4BA6D7A11BCF201B5A58E9 /* JXBannerType.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXBannerType.swift; path = JXBanner/Classes/Banner/API/JXBannerType.swift; sourceTree = ""; }; - BC761311EA28A0E21DCBE1585C33694D /* ConstraintLayoutGuideDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutGuideDSL.swift; path = Source/ConstraintLayoutGuideDSL.swift; sourceTree = ""; }; - BDAC684DC191CA97C56A9AB92B642C24 /* JXBanner-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXBanner-prefix.pch"; sourceTree = ""; }; - BFB9FE8041222FC1C934B8B9C2C27FD0 /* JXBanner.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; path = JXBanner.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - C4D74113E52DCB4F7A1AAD717946B41E /* JXBaseBanner.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXBaseBanner.swift; path = JXBanner/Classes/Banner/Banner/JXBaseBanner.swift; sourceTree = ""; }; - C6DF5B4FB133A3148E670FE7B5D4850B /* JXPageControlBase.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXPageControlBase.swift; path = JXPageControl/Classes/Common/JXPageControlBase.swift; sourceTree = ""; }; - C80EA48F1E6E30C692EBBEC76F3AC0C8 /* ConstraintDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDSL.swift; path = Source/ConstraintDSL.swift; sourceTree = ""; }; - CAD205C1E6D51AB643FA6AFE81C3B523 /* JXBannerBaseCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXBannerBaseCell.swift; path = JXBanner/Classes/Banner/Cell/JXBannerBaseCell.swift; sourceTree = ""; }; - CD48D889814F9782AA32A9BC417DD6A1 /* JXPageControl-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "JXPageControl-umbrella.h"; sourceTree = ""; }; - CDF0DE76F8D0837F6F87E8320A404E79 /* Pods-JXBanner_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-JXBanner_Example-umbrella.h"; sourceTree = ""; }; - D16064A70A2973ED97148436B5441EF3 /* JXBannerTransformable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXBannerTransformable.swift; path = JXBanner/Classes/Banner/API/JXBannerTransformable.swift; sourceTree = ""; }; - D211EF36D613DA99BFC4E11FC473CDB9 /* JXBannerDataSource.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXBannerDataSource.swift; path = JXBanner/Classes/Banner/API/JXBannerDataSource.swift; sourceTree = ""; }; - D30201FAB63FDFBE4E201FD584D4CB24 /* JXPageControl.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = JXPageControl.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D6B6BC6E7D6A5B5E972FDDA73B7DC21F /* ConstraintPriorityTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintPriorityTarget.swift; path = Source/ConstraintPriorityTarget.swift; sourceTree = ""; }; - D704B93D7D8745AA39BF1ADD1DA33408 /* JXPageControlBoldLine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXPageControlBoldLine.swift; path = JXPageControl/Classes/Jump/JXPageControlBoldLine.swift; sourceTree = ""; }; - D9E86F6A42D6D7D8638F1550664BC240 /* JXPageControlEllipse.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXPageControlEllipse.swift; path = JXPageControl/Classes/Jump/JXPageControlEllipse.swift; sourceTree = ""; }; - DDA9AD68A17495E608E125A7284C3226 /* Pods-JXBanner_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-JXBanner_Example-acknowledgements.markdown"; sourceTree = ""; }; - E0B87C7D080FC051E35676D2594816DF /* JXPageControlScale.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXPageControlScale.swift; path = JXPageControl/Classes/Transform/JXPageControlScale.swift; sourceTree = ""; }; - E4D9C02D201B60CE41146DEC090F7172 /* Pods-JXBanner_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-JXBanner_Example.modulemap"; sourceTree = ""; }; - E8F99B3D2CB0B9A24388B4229F464DF3 /* JXBanner.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = JXBanner.modulemap; sourceTree = ""; }; - EEBDCB8705FF08A6696F40EDE2B29852 /* JXPageControl.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = JXPageControl.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EED9B9EB52BFF37F00F252082BA0BE02 /* JXBanner.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = JXBanner.swift; path = JXBanner/Classes/Banner/Banner/JXBanner.swift; sourceTree = ""; }; - F0BC1BAB8FE642334D5ABD1D0C68CADC /* ConstraintMakerRelatable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerRelatable.swift; path = Source/ConstraintMakerRelatable.swift; sourceTree = ""; }; - F4431CB2674E24E47A4FA4CB2C46CA48 /* Debugging.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Debugging.swift; path = Source/Debugging.swift; sourceTree = ""; }; - F606B1E42B3F9313A16D7BD6CFF4C3E3 /* ConstraintLayoutGuide.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutGuide.swift; path = Source/ConstraintLayoutGuide.swift; sourceTree = ""; }; - F69096F3C559A85930AD38F7A794F0E4 /* ConstraintMakerFinalizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerFinalizable.swift; path = Source/ConstraintMakerFinalizable.swift; sourceTree = ""; }; - FA091B626A890F0F98DB3908C4FE4D07 /* View+JXExtension.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "View+JXExtension.swift"; path = "JXBanner/Classes/Banner/Common/View+JXExtension.swift"; sourceTree = ""; }; - FA308DAF804300E4C7E1615804CF0015 /* LayoutConstraintItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LayoutConstraintItem.swift; path = Source/LayoutConstraintItem.swift; sourceTree = ""; }; - FD4BE666BA5D0BDDD3416C2BC040C8BA /* ConstraintInsets.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintInsets.swift; path = Source/ConstraintInsets.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 1CE51BCB1118C45FEC96AD6FDEBA44DD /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 51609D0B6CCE35116FFF479D9EDD276B /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 86046BA7BB88F53FBDDBCF529839B1C7 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 14112D7E171D2BC28004C931AD1FE892 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C878C8C39E5F61DC788543550D3E089B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - DE0ABD68B3E64CDD68E522528F15EC2C /* Foundation.framework in Frameworks */, - 990E4D72F4B5C1CBBB0D0A44927278C4 /* JXPageControl.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C884311939DCEE2DDC0C8552214E1319 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 5E0EC8B131DAE4BA894A2BC16EDADF17 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 04F4554095DA71EFD2C1DDF75D4523C6 /* Common */ = { - isa = PBXGroup; - children = ( - 1ED4C1145A0FC2705A8CD0DEE2B5FE80 /* IndexPath+JXCalculate.swift */, - 29B29E124FF6542D793CCDBF27E08ACF /* Timer+JXBExtension.swift */, - FA091B626A890F0F98DB3908C4FE4D07 /* View+JXExtension.swift */, - ); - name = Common; - sourceTree = ""; - }; - 2A06B292496698310E1D0F1848048AF1 /* Cell */ = { - isa = PBXGroup; - children = ( - CAD205C1E6D51AB643FA6AFE81C3B523 /* JXBannerBaseCell.swift */, - 9E210C8FB3212B61963E6C0056714960 /* JXBannerCell.swift */, - ); - name = Cell; - sourceTree = ""; - }; - 336A7371A9930E12085EC1B1AD1978C1 /* Support Files */ = { - isa = PBXGroup; - children = ( - E8F99B3D2CB0B9A24388B4229F464DF3 /* JXBanner.modulemap */, - 4097A912DE6E9AF433798DFB98526C6E /* JXBanner.xcconfig */, - 74F1BF5F371AD7962B918696C2186186 /* JXBanner-dummy.m */, - 74E4F29F1D68ADBDCA283B0D4CBD6152 /* JXBanner-Info.plist */, - BDAC684DC191CA97C56A9AB92B642C24 /* JXBanner-prefix.pch */, - 5557ED81910BC64D4E89FBA0D6D61E71 /* JXBanner-umbrella.h */, - ); - name = "Support Files"; - path = "Example/Pods/Target Support Files/JXBanner"; - sourceTree = ""; - }; - 598E19441CDC2885DF82EA21CEA8812B /* Products */ = { - isa = PBXGroup; - children = ( - 82785579B4BB73691B4571A788CA5B83 /* JXBanner.framework */, - EEBDCB8705FF08A6696F40EDE2B29852 /* JXPageControl.framework */, - 7BD90135AFFC300C79BED5A8E446E5D0 /* Pods_JXBanner_Example.framework */, - 0909C73C5F9793C5958F609BFD074259 /* SnapKit.framework */, - ); - name = Products; - sourceTree = ""; - }; - 5F9091E50BFE7A80A3754552433721C3 /* Transform */ = { - isa = PBXGroup; - children = ( - 42310C35D52E24EF9181491175573EC3 /* JXBannerTransformContext.swift */, - 82642C69FAC8150A1598DA763667F6F7 /* JXBannerTransformCoverflow.swift */, - 0BC698E1DCA9EEEAE00B79B729098422 /* JXBannerTransformLinear.swift */, - B39E3D92BE2A62D997729D73AAC67003 /* JXBannerTransfrom.swift */, - ); - name = Transform; - sourceTree = ""; - }; - 67A63544AB5AEE97318189B557525537 /* Pods-JXBanner_Example */ = { - isa = PBXGroup; - children = ( - E4D9C02D201B60CE41146DEC090F7172 /* Pods-JXBanner_Example.modulemap */, - DDA9AD68A17495E608E125A7284C3226 /* Pods-JXBanner_Example-acknowledgements.markdown */, - 38C6B1E254BCA50988CC7D7FDE01E499 /* Pods-JXBanner_Example-acknowledgements.plist */, - 2A17A6C348D594FFDDAD7DAA85E3FD42 /* Pods-JXBanner_Example-dummy.m */, - A11FB038514379D3755EC971672CD3E0 /* Pods-JXBanner_Example-frameworks.sh */, - 842193070C12A72ECB4F1CDEE1A27038 /* Pods-JXBanner_Example-Info.plist */, - CDF0DE76F8D0837F6F87E8320A404E79 /* Pods-JXBanner_Example-umbrella.h */, - BA2ECEEB308B97543E5B0786E3F4AF48 /* Pods-JXBanner_Example.debug.xcconfig */, - 2C8903E9B27AD9C2DEC4DCE7F743F784 /* Pods-JXBanner_Example.release.xcconfig */, - ); - name = "Pods-JXBanner_Example"; - path = "Target Support Files/Pods-JXBanner_Example"; - sourceTree = ""; - }; - 850AF63BF7A4FDBFE2822918BEF58EA0 /* Support Files */ = { - isa = PBXGroup; - children = ( - 25A19409959A78FC7B2069D8CB716F1F /* SnapKit.modulemap */, - ABC53F9467A78D23A845945CFF479DC5 /* SnapKit.xcconfig */, - 23EA23B4B003D4796B6D65E9023ED6AE /* SnapKit-dummy.m */, - 3FE91428EF05EC25C2EB43053261D721 /* SnapKit-Info.plist */, - 6E524F6DBDE960D9CA58C84A973B16CA /* SnapKit-prefix.pch */, - 52654F3308568CF99DFECF17A113D193 /* SnapKit-umbrella.h */, - ); - name = "Support Files"; - path = "../Target Support Files/SnapKit"; - sourceTree = ""; - }; - 8CDD095B4F4D44E2E6FE3E40BA652633 /* Banner */ = { - isa = PBXGroup; - children = ( - EED9B9EB52BFF37F00F252082BA0BE02 /* JXBanner.swift */, - 348A933B01F40915F221F2CF862B6DC3 /* JXBannerLayout.swift */, - C4D74113E52DCB4F7A1AAD717946B41E /* JXBaseBanner.swift */, - ); - name = Banner; - sourceTree = ""; - }; - 8E40F62924F9555DA68FE5128C20AB97 /* Pod */ = { - isa = PBXGroup; - children = ( - BFB9FE8041222FC1C934B8B9C2C27FD0 /* JXBanner.podspec */, - 6CA792D354251AD1668350A8B4A9CEF5 /* LICENSE */, - 8F1F138E4A36760593CD2F1F8C8A4907 /* README.md */, - ); - name = Pod; - sourceTree = ""; - }; - 9201879DFE9CAE7B4E891AC4C39D2752 /* Jump */ = { - isa = PBXGroup; - children = ( - D704B93D7D8745AA39BF1ADD1DA33408 /* JXPageControlBoldLine.swift */, - D9E86F6A42D6D7D8638F1550664BC240 /* JXPageControlEllipse.swift */, - 94E95A72538D27EDE6CD5FCD0FD925BA /* JXPageControlJump.swift */, - 0B9D0BD258AB49A6465CD2F7F6F6A5E4 /* JXPageControlLine.swift */, - ); - name = Jump; - sourceTree = ""; - }; - 9572F924CFC7AE1C969AC9071E3C2D0A /* Frameworks */ = { - isa = PBXGroup; - children = ( - D30201FAB63FDFBE4E201FD584D4CB24 /* JXPageControl.framework */, - C7F2799C2BAE1737212BE2AA3299D31F /* iOS */, - ); - name = Frameworks; - sourceTree = ""; - }; - 99F5D1902B412115243A4CCB185835AE /* Banner */ = { - isa = PBXGroup; - children = ( - A037A6D29009CC8263F83BD0D83EC76D /* API */, - 8CDD095B4F4D44E2E6FE3E40BA652633 /* Banner */, - 2A06B292496698310E1D0F1848048AF1 /* Cell */, - 04F4554095DA71EFD2C1DDF75D4523C6 /* Common */, - 5F9091E50BFE7A80A3754552433721C3 /* Transform */, - ); - name = Banner; - sourceTree = ""; - }; - A037A6D29009CC8263F83BD0D83EC76D /* API */ = { - isa = PBXGroup; - children = ( - D211EF36D613DA99BFC4E11FC473CDB9 /* JXBannerDataSource.swift */, - 6A02F8C9AFD23635DE32A38173ACC215 /* JXBannerDelegate.swift */, - 17D433488593B4975A9F446219CC9F69 /* JXBannerLayoutParams.swift */, - 480EA7A40528B642D93F6462EADC1829 /* JXBannerParams.swift */, - D16064A70A2973ED97148436B5441EF3 /* JXBannerTransformable.swift */, - BBF6DE944C4BA6D7A11BCF201B5A58E9 /* JXBannerType.swift */, - ); - name = API; - sourceTree = ""; - }; - A0DEF954CA5A6FC3DC8216156F56CC59 /* Development Pods */ = { - isa = PBXGroup; - children = ( - BE47E2F58350E382142A7024DCB61FDB /* JXBanner */, - ); - name = "Development Pods"; - sourceTree = ""; - }; - A92FEE2E01CC739C706127143A270F70 /* JXPageControl */ = { - isa = PBXGroup; - children = ( - EC843F1CC1C2E9EB079E4AA10CCA97C7 /* Common */, - 9201879DFE9CAE7B4E891AC4C39D2752 /* Jump */, - F9068C0B086B34802C24E518D96E6FC4 /* Support Files */, - E58ED26DC90023BE62A3CE8BF4FE519E /* Transform */, - ); - path = JXPageControl; - sourceTree = ""; - }; - ACA1C7ED618412D18C3D580941FCBC68 /* Pods */ = { - isa = PBXGroup; - children = ( - A92FEE2E01CC739C706127143A270F70 /* JXPageControl */, - E573613D61B37394A5688844DE85C6AF /* SnapKit */, - ); - name = Pods; - sourceTree = ""; - }; - BE47E2F58350E382142A7024DCB61FDB /* JXBanner */ = { - isa = PBXGroup; - children = ( - 99F5D1902B412115243A4CCB185835AE /* Banner */, - D388E5ADEA30B60958CD69509DE056B7 /* PageControl */, - 8E40F62924F9555DA68FE5128C20AB97 /* Pod */, - 336A7371A9930E12085EC1B1AD1978C1 /* Support Files */, - ); - name = JXBanner; - path = ../..; - sourceTree = ""; - }; - C7F2799C2BAE1737212BE2AA3299D31F /* iOS */ = { - isa = PBXGroup; - children = ( - B8CDE57BD9056C6F5333F4871F868BAC /* Foundation.framework */, - ); - name = iOS; - sourceTree = ""; - }; - CF1408CF629C7361332E53B88F7BD30C = { - isa = PBXGroup; - children = ( - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - A0DEF954CA5A6FC3DC8216156F56CC59 /* Development Pods */, - 9572F924CFC7AE1C969AC9071E3C2D0A /* Frameworks */, - ACA1C7ED618412D18C3D580941FCBC68 /* Pods */, - 598E19441CDC2885DF82EA21CEA8812B /* Products */, - E3CD491FF3B1DF4862913A8F8B0E5900 /* Targets Support Files */, - ); - sourceTree = ""; - }; - D388E5ADEA30B60958CD69509DE056B7 /* PageControl */ = { - isa = PBXGroup; - children = ( - 02BB2DC76B097EEC8C0772D7AB32BA6F /* JXBannerPageControlBuilder.swift */, - 219C782D595FEC432C03570052551F89 /* JXBannerPageControlDefault.swift */, - ); - name = PageControl; - sourceTree = ""; - }; - E3CD491FF3B1DF4862913A8F8B0E5900 /* Targets Support Files */ = { - isa = PBXGroup; - children = ( - 67A63544AB5AEE97318189B557525537 /* Pods-JXBanner_Example */, - ); - name = "Targets Support Files"; - sourceTree = ""; - }; - E573613D61B37394A5688844DE85C6AF /* SnapKit */ = { - isa = PBXGroup; - children = ( - 4503B085CBA2893B327AFD10340B1E45 /* Constraint.swift */, - AD18365173DA9FBE9D2D7C015179DED7 /* ConstraintAttributes.swift */, - 0C490943A9F54848FC49E77B7B9869DA /* ConstraintConfig.swift */, - 741B22239EB57D90C2042071E62595F7 /* ConstraintConstantTarget.swift */, - 0EDA28F2558F55237D210F6F70A4458C /* ConstraintDescription.swift */, - C80EA48F1E6E30C692EBBEC76F3AC0C8 /* ConstraintDSL.swift */, - FD4BE666BA5D0BDDD3416C2BC040C8BA /* ConstraintInsets.swift */, - AD01E1FD9541B7A7B5B35781DDD85259 /* ConstraintInsetTarget.swift */, - 7F78D3307348642F2B3E10E26F6E6F54 /* ConstraintItem.swift */, - F606B1E42B3F9313A16D7BD6CFF4C3E3 /* ConstraintLayoutGuide.swift */, - 371F32E23ADFD0ECBFE89C4DEB3D126C /* ConstraintLayoutGuide+Extensions.swift */, - BC761311EA28A0E21DCBE1585C33694D /* ConstraintLayoutGuideDSL.swift */, - 7EBD668FE304474E75C643B1F41C2918 /* ConstraintLayoutSupport.swift */, - 86243779885A89BFD40AA25D537E2ACD /* ConstraintLayoutSupportDSL.swift */, - 4984CD215F46C594A5FB3F3A3E50FF41 /* ConstraintMaker.swift */, - A8D38A02E38545DC909CDED794A5975C /* ConstraintMakerEditable.swift */, - B4BC51A9B8A281B522EB0F7C1CC396C3 /* ConstraintMakerExtendable.swift */, - F69096F3C559A85930AD38F7A794F0E4 /* ConstraintMakerFinalizable.swift */, - 0287752C5A6BFAD69522F171FE67C69D /* ConstraintMakerPriortizable.swift */, - F0BC1BAB8FE642334D5ABD1D0C68CADC /* ConstraintMakerRelatable.swift */, - A8A535391FFD9F4B88B7E6B2DA5D408E /* ConstraintMultiplierTarget.swift */, - 846F4E45A51AB41AD1FBD541911C21DA /* ConstraintOffsetTarget.swift */, - 6E354CCC94B948026081A7FE62AE3002 /* ConstraintPriority.swift */, - D6B6BC6E7D6A5B5E972FDDA73B7DC21F /* ConstraintPriorityTarget.swift */, - AAA9F1D04E853CB3749E79E60BB79BBE /* ConstraintRelatableTarget.swift */, - B525D0AD5E0A11D5E730B4993B21C606 /* ConstraintRelation.swift */, - 0EB93D09741969D8559CBA4A7FA5E818 /* ConstraintView.swift */, - 152C60343BC81B25BC46C5F24B9C3BE4 /* ConstraintView+Extensions.swift */, - 1A168D3E04A13893B8345CE52046E3C2 /* ConstraintViewDSL.swift */, - F4431CB2674E24E47A4FA4CB2C46CA48 /* Debugging.swift */, - 6D0E5A0D7E8D4117E685BD79621CA583 /* LayoutConstraint.swift */, - FA308DAF804300E4C7E1615804CF0015 /* LayoutConstraintItem.swift */, - B89310BFA4A147286010D8682210EDC7 /* Typealiases.swift */, - 309B90D1E114BD5D8BFBA680054E6004 /* UILayoutSupport+Extensions.swift */, - 850AF63BF7A4FDBFE2822918BEF58EA0 /* Support Files */, - ); - path = SnapKit; - sourceTree = ""; - }; - E58ED26DC90023BE62A3CE8BF4FE519E /* Transform */ = { - isa = PBXGroup; - children = ( - 46C66033A28AD66DEE2C1B2463961310 /* JXPageControlChameleon.swift */, - 7361C5355D618E0D2D15907DBEAD06A4 /* JXPageControlExchange.swift */, - A163B7B09ACB7927E5FE0E5F0DAD9171 /* JXPageControlFill.swift */, - E0B87C7D080FC051E35676D2594816DF /* JXPageControlScale.swift */, - ); - name = Transform; - sourceTree = ""; - }; - EC843F1CC1C2E9EB079E4AA10CCA97C7 /* Common */ = { - isa = PBXGroup; - children = ( - C6DF5B4FB133A3148E670FE7B5D4850B /* JXPageControlBase.swift */, - 999EDE29E6EDB2FE1131095FE212EDFE /* JXPageControlTool.swift */, - 4C1459064CE8AFF9B084951BA454F352 /* JXPageControlType.swift */, - ); - name = Common; - sourceTree = ""; - }; - F9068C0B086B34802C24E518D96E6FC4 /* Support Files */ = { - isa = PBXGroup; - children = ( - B13637BEE75FC0DA7C0C49179D237A89 /* JXPageControl.modulemap */, - 98F0DE1DD9F743281DBFA82BA8CE37EB /* JXPageControl.xcconfig */, - 8E7210D6DD1F2688E4E3F9556F7F12AA /* JXPageControl-dummy.m */, - 7DE4A20C66B8739C0B173987392A7608 /* JXPageControl-Info.plist */, - 100737050984FDEBB135A73884A91BC6 /* JXPageControl-prefix.pch */, - CD48D889814F9782AA32A9BC417DD6A1 /* JXPageControl-umbrella.h */, - ); - name = "Support Files"; - path = "../Target Support Files/JXPageControl"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 0E6ED97C2389CCA809E8EF641E71CE46 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 199C7528DD3BE6C9418027F18455593F /* Pods-JXBanner_Example-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 5DF26DE489B57B3CE97B3AADCB963044 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D8F7A8863E70D4221DE1C25830DE407C /* JXBanner-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7EA2621002F7B4FDD24A0A32934E2105 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - F406A0954FCD89B286C20D730E3DD2D4 /* JXPageControl-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E8A7CB6D04DF78F6261CB5A9EEF41BDF /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - F53CFA2630D904C300DC897E625C5C91 /* SnapKit-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - A4D36C3E69B908E2EF3590393A3FC303 /* SnapKit */ = { - isa = PBXNativeTarget; - buildConfigurationList = 82ECE472FF8B8990EE4E08BB2C08E5A4 /* Build configuration list for PBXNativeTarget "SnapKit" */; - buildPhases = ( - E8A7CB6D04DF78F6261CB5A9EEF41BDF /* Headers */, - 203B5494E8EF5E14B0786F4714D95AC5 /* Sources */, - C884311939DCEE2DDC0C8552214E1319 /* Frameworks */, - 09E80C9D217E2B4BA7992519B2B573E9 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SnapKit; - productName = SnapKit; - productReference = 0909C73C5F9793C5958F609BFD074259 /* SnapKit.framework */; - productType = "com.apple.product-type.framework"; - }; - A6418C147D88DA49C8EF19524590D3FA /* Pods-JXBanner_Example */ = { - isa = PBXNativeTarget; - buildConfigurationList = 2F05E31ADBDE0ADD44A897B828F872ED /* Build configuration list for PBXNativeTarget "Pods-JXBanner_Example" */; - buildPhases = ( - 0E6ED97C2389CCA809E8EF641E71CE46 /* Headers */, - 98DD026888D956F0EFB3E56D8EDBACA0 /* Sources */, - 1CE51BCB1118C45FEC96AD6FDEBA44DD /* Frameworks */, - D07D2658139C11B87585014E00A19596 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - E9DDCD2C9204675609CAA5BA5C3F4240 /* PBXTargetDependency */, - 920B06E3CCE5F0ADB38B11E8FB7ED29E /* PBXTargetDependency */, - 5FFF01566618F32F6DE6487266007C10 /* PBXTargetDependency */, - ); - name = "Pods-JXBanner_Example"; - productName = "Pods-JXBanner_Example"; - productReference = 7BD90135AFFC300C79BED5A8E446E5D0 /* Pods_JXBanner_Example.framework */; - productType = "com.apple.product-type.framework"; - }; - BB4ABD45CEDC5804660DD457EADCEF6A /* JXBanner */ = { - isa = PBXNativeTarget; - buildConfigurationList = B784132433F4673CB6A7BAF20CC76076 /* Build configuration list for PBXNativeTarget "JXBanner" */; - buildPhases = ( - 5DF26DE489B57B3CE97B3AADCB963044 /* Headers */, - 4E710360685261B23E502077104E02CC /* Sources */, - C878C8C39E5F61DC788543550D3E089B /* Frameworks */, - 85C85F47459C0BA96B10E9C1038C1849 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 502A820F220F4E6E8C09BE302919FA1A /* PBXTargetDependency */, - ); - name = JXBanner; - productName = JXBanner; - productReference = 82785579B4BB73691B4571A788CA5B83 /* JXBanner.framework */; - productType = "com.apple.product-type.framework"; - }; - C6C19D6EA38F9B8766CE0488AB708FAA /* JXPageControl */ = { - isa = PBXNativeTarget; - buildConfigurationList = 089F57A761A380337E8B12397014EBD9 /* Build configuration list for PBXNativeTarget "JXPageControl" */; - buildPhases = ( - 7EA2621002F7B4FDD24A0A32934E2105 /* Headers */, - 3B96E23380BE3E4B16772054FDB140DB /* Sources */, - 86046BA7BB88F53FBDDBCF529839B1C7 /* Frameworks */, - E6B04E4220D91FB28B1BB38BE160FD92 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = JXPageControl; - productName = JXPageControl; - productReference = EEBDCB8705FF08A6696F40EDE2B29852 /* JXPageControl.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - BFDFE7DC352907FC980B868725387E98 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0930; - LastUpgradeCheck = 0930; - }; - buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - English, - en, - ); - mainGroup = CF1408CF629C7361332E53B88F7BD30C; - productRefGroup = 598E19441CDC2885DF82EA21CEA8812B /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - BB4ABD45CEDC5804660DD457EADCEF6A /* JXBanner */, - C6C19D6EA38F9B8766CE0488AB708FAA /* JXPageControl */, - A6418C147D88DA49C8EF19524590D3FA /* Pods-JXBanner_Example */, - A4D36C3E69B908E2EF3590393A3FC303 /* SnapKit */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 09E80C9D217E2B4BA7992519B2B573E9 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 85C85F47459C0BA96B10E9C1038C1849 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - D07D2658139C11B87585014E00A19596 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E6B04E4220D91FB28B1BB38BE160FD92 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 203B5494E8EF5E14B0786F4714D95AC5 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FF49C944194DC81A5747A7F7102E36F6 /* Constraint.swift in Sources */, - BC9AE8C4AFEFD53B8B38FF9A3EB5C339 /* ConstraintAttributes.swift in Sources */, - 3157C05C80CA1E0495A8DFC2C0AF176A /* ConstraintConfig.swift in Sources */, - C6E7B6E11E9E4C5AF0EADB5A3ECD6646 /* ConstraintConstantTarget.swift in Sources */, - 2A9489A70D33CF8C2F82657C9D1680DC /* ConstraintDescription.swift in Sources */, - A6EABDAAF52FAE2483E939070E5F7FE6 /* ConstraintDSL.swift in Sources */, - 2BE440DF45BF9EF7F0ADAF6293EE5E0D /* ConstraintInsets.swift in Sources */, - 690C04241AAEB967053667A6A49D045D /* ConstraintInsetTarget.swift in Sources */, - 4B8E5BDB256C5E79C297309866D66514 /* ConstraintItem.swift in Sources */, - FA7CC934920A83166D96F6A426C072D3 /* ConstraintLayoutGuide+Extensions.swift in Sources */, - ABE7730D474B51F04BFD597D26F68EE6 /* ConstraintLayoutGuide.swift in Sources */, - BB5B52EA52AE8CB85487A55EC4A78637 /* ConstraintLayoutGuideDSL.swift in Sources */, - 587849B7FA37493C95685E1C6635FDCD /* ConstraintLayoutSupport.swift in Sources */, - BE2EC27F8469222B418A1051E60851B7 /* ConstraintLayoutSupportDSL.swift in Sources */, - 5328D123D745AD459AEFDB0FA206E143 /* ConstraintMaker.swift in Sources */, - 50C47D79F7946DDC4EC41700EED9C427 /* ConstraintMakerEditable.swift in Sources */, - 625AE9EF9B8630E9D9C7A1BDF30215D7 /* ConstraintMakerExtendable.swift in Sources */, - A6F1076888D56C52595F2CECFD685C02 /* ConstraintMakerFinalizable.swift in Sources */, - 8806156A2395C0F21585B792AA09EB68 /* ConstraintMakerPriortizable.swift in Sources */, - 8E50A6844E2C75DBD065F964C933C7EC /* ConstraintMakerRelatable.swift in Sources */, - 28A3D88D851733FBF5F338EA80F10B36 /* ConstraintMultiplierTarget.swift in Sources */, - CD320E30FB58B2FCD4590515801EE120 /* ConstraintOffsetTarget.swift in Sources */, - 69D1F1A9FFA5FEE777383145AC47EBE3 /* ConstraintPriority.swift in Sources */, - 2FAD114D993C85A4A1CEF16003A47EB9 /* ConstraintPriorityTarget.swift in Sources */, - CF080F219CA4528D20C7DEE73F672DB1 /* ConstraintRelatableTarget.swift in Sources */, - 09D280B6799C96D915ED9C1E32434F78 /* ConstraintRelation.swift in Sources */, - 8D9D4BC4C7FF25596EF9BDE09CFDB9FA /* ConstraintView+Extensions.swift in Sources */, - D459AC8F6662F74B0AEFCC1757AEA42E /* ConstraintView.swift in Sources */, - B04BB738F8AC272A6944E9687BC9594D /* ConstraintViewDSL.swift in Sources */, - D5A25B2657F533B5F7DC6E83AA25DB06 /* Debugging.swift in Sources */, - 5A52E0646AA6E485C3C99E7BA58FFA28 /* LayoutConstraint.swift in Sources */, - 4E50667549D89F8D67664473D962E3D2 /* LayoutConstraintItem.swift in Sources */, - F9A3FBC8693749210C1E840056C627F9 /* SnapKit-dummy.m in Sources */, - 1DF3C35149A9333EAA1876B5F44C733E /* Typealiases.swift in Sources */, - 83E8865D0E34C7C7ED919105F79C6EB4 /* UILayoutSupport+Extensions.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 3B96E23380BE3E4B16772054FDB140DB /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 90755E3C58257356D024B5B2A52F3378 /* JXPageControl-dummy.m in Sources */, - AE41B4F00AE774E3234AA641308DEDF2 /* JXPageControlBase.swift in Sources */, - 2C7F9FD26D9EDBE4DE2976E549F409F7 /* JXPageControlBoldLine.swift in Sources */, - 09BF5E79E6E0B417AF23A30A9DE7285D /* JXPageControlChameleon.swift in Sources */, - 851E73740D08F71CC6A87AFF52786892 /* JXPageControlEllipse.swift in Sources */, - A855369F366159A8EAAABAF8B92B7D1E /* JXPageControlExchange.swift in Sources */, - 229D9CA5449E9187ECF8E9311491EC6D /* JXPageControlFill.swift in Sources */, - 7086375420B09A830A19087FE052ED80 /* JXPageControlJump.swift in Sources */, - 300D72FB4A2E7476E081A52F1D3AAD01 /* JXPageControlLine.swift in Sources */, - 49B546FE034888802D3524F237258283 /* JXPageControlScale.swift in Sources */, - A376DE74AF8965C21D34B83263D86230 /* JXPageControlTool.swift in Sources */, - 469D9A4166DFDC102761318EE1522ECF /* JXPageControlType.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4E710360685261B23E502077104E02CC /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8C92BAD896A6C97B54157740D876F94B /* IndexPath+JXCalculate.swift in Sources */, - C5087FD2F209C0FC984DDC5437069090 /* JXBanner-dummy.m in Sources */, - 538903F1C1464CD63FF0DA3D9B753D59 /* JXBanner.swift in Sources */, - FA41843A00AB24284648810B8B6F410A /* JXBannerBaseCell.swift in Sources */, - 5CDF68033B93E90C80329172A6D5184D /* JXBannerCell.swift in Sources */, - E56814A1316B1DBE8189372EC63A1F98 /* JXBannerDataSource.swift in Sources */, - BF1BD297E3607D4F370393EA28BBFA10 /* JXBannerDelegate.swift in Sources */, - 4DF57D07A1DBE6A8186362D381235B88 /* JXBannerLayout.swift in Sources */, - 83297D5C55C30E8A8F4E534D849F4D60 /* JXBannerLayoutParams.swift in Sources */, - 7AF79D96C04B786A85DC8DB9101F6909 /* JXBannerPageControlBuilder.swift in Sources */, - 529BF8DBB4FAC7EEFF0720FEE89D8807 /* JXBannerPageControlDefault.swift in Sources */, - 1D5D928AB969C10B0256D6E9240B0B25 /* JXBannerParams.swift in Sources */, - 5E8307445BCBA48F080976831DDE1DC1 /* JXBannerTransformable.swift in Sources */, - DCC932909B6AFF3B029CE7D11FB93AE6 /* JXBannerTransformContext.swift in Sources */, - 897577E802662B688E889E7BA036EBE8 /* JXBannerTransformCoverflow.swift in Sources */, - F1CB08B4F1B835070E1B80D83D4E96CE /* JXBannerTransformLinear.swift in Sources */, - C59AA2B0260E27605CB7A51C9E84FBEC /* JXBannerTransfrom.swift in Sources */, - 1C9275649C74DA6A8FA54790800CBA50 /* JXBannerType.swift in Sources */, - 5D39717DE3B9C93BD7AFDEC106992E61 /* JXBaseBanner.swift in Sources */, - 3410C367A2B8F933BF201F00CBF8211F /* Timer+JXBExtension.swift in Sources */, - A2D7DE1CF026B2F90DDDC9EC9EE4E476 /* View+JXExtension.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 98DD026888D956F0EFB3E56D8EDBACA0 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 81730D9CC5D029A053C7983A8A250A52 /* Pods-JXBanner_Example-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 502A820F220F4E6E8C09BE302919FA1A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = JXPageControl; - target = C6C19D6EA38F9B8766CE0488AB708FAA /* JXPageControl */; - targetProxy = 5487595344D218BED55091CD0AF4FA6D /* PBXContainerItemProxy */; - }; - 5FFF01566618F32F6DE6487266007C10 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SnapKit; - target = A4D36C3E69B908E2EF3590393A3FC303 /* SnapKit */; - targetProxy = B7B97C68BB833556479EE770CC9DACDE /* PBXContainerItemProxy */; - }; - 920B06E3CCE5F0ADB38B11E8FB7ED29E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = JXPageControl; - target = C6C19D6EA38F9B8766CE0488AB708FAA /* JXPageControl */; - targetProxy = DD33E4CE4787702FD3B3895DA95933D5 /* PBXContainerItemProxy */; - }; - E9DDCD2C9204675609CAA5BA5C3F4240 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = JXBanner; - target = BB4ABD45CEDC5804660DD457EADCEF6A /* JXBanner */; - targetProxy = 4F205F022182F4341055661B5F98F180 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 05DF210AC65EBB0E593AAF976B2C2177 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_RELEASE=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.2; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Release; - }; - 326E75754C7EAA2E42B456F3FE6DF050 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = ABC53F9467A78D23A845945CFF479DC5 /* SnapKit.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/SnapKit/SnapKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SnapKit/SnapKit-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/SnapKit/SnapKit.modulemap"; - PRODUCT_MODULE_NAME = SnapKit; - PRODUCT_NAME = SnapKit; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 3A90F161DAA41B355275CDB2DFB098EA /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = ABC53F9467A78D23A845945CFF479DC5 /* SnapKit.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/SnapKit/SnapKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SnapKit/SnapKit-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/SnapKit/SnapKit.modulemap"; - PRODUCT_MODULE_NAME = SnapKit; - PRODUCT_NAME = SnapKit; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 40D1BFD09A30B7C00180A2C17F05EF6A /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 2C8903E9B27AD9C2DEC4DCE7F743F784 /* Pods-JXBanner_Example.release.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 421ECB1396280A8D83853C3DDBED1700 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_DEBUG=1", - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.2; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Debug; - }; - 9A645EFC491DC5633E5A4C34182DB939 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 98F0DE1DD9F743281DBFA82BA8CE37EB /* JXPageControl.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/JXPageControl/JXPageControl-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/JXPageControl/JXPageControl-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/JXPageControl/JXPageControl.modulemap"; - PRODUCT_MODULE_NAME = JXPageControl; - PRODUCT_NAME = JXPageControl; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - A0C77CB6BC5A07E6B2542E73B88FBCF4 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 98F0DE1DD9F743281DBFA82BA8CE37EB /* JXPageControl.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/JXPageControl/JXPageControl-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/JXPageControl/JXPageControl-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/JXPageControl/JXPageControl.modulemap"; - PRODUCT_MODULE_NAME = JXPageControl; - PRODUCT_NAME = JXPageControl; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 4.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - A3BD6E7D46CCCDE60EC1DC71C2620E9D /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4097A912DE6E9AF433798DFB98526C6E /* JXBanner.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/JXBanner/JXBanner-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/JXBanner/JXBanner-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/JXBanner/JXBanner.modulemap"; - PRODUCT_MODULE_NAME = JXBanner; - PRODUCT_NAME = JXBanner; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - A913FB6A8FB0C1C581043D23BFACE192 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = BA2ECEEB308B97543E5B0786E3F4AF48 /* Pods-JXBanner_Example.debug.xcconfig */; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - EED0D08FFE8D5229B1A9C81EEB5D166C /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4097A912DE6E9AF433798DFB98526C6E /* JXBanner.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/JXBanner/JXBanner-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/JXBanner/JXBanner-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/JXBanner/JXBanner.modulemap"; - PRODUCT_MODULE_NAME = JXBanner; - PRODUCT_NAME = JXBanner; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 089F57A761A380337E8B12397014EBD9 /* Build configuration list for PBXNativeTarget "JXPageControl" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A0C77CB6BC5A07E6B2542E73B88FBCF4 /* Debug */, - 9A645EFC491DC5633E5A4C34182DB939 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 2F05E31ADBDE0ADD44A897B828F872ED /* Build configuration list for PBXNativeTarget "Pods-JXBanner_Example" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A913FB6A8FB0C1C581043D23BFACE192 /* Debug */, - 40D1BFD09A30B7C00180A2C17F05EF6A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 421ECB1396280A8D83853C3DDBED1700 /* Debug */, - 05DF210AC65EBB0E593AAF976B2C2177 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 82ECE472FF8B8990EE4E08BB2C08E5A4 /* Build configuration list for PBXNativeTarget "SnapKit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 326E75754C7EAA2E42B456F3FE6DF050 /* Debug */, - 3A90F161DAA41B355275CDB2DFB098EA /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - B784132433F4673CB6A7BAF20CC76076 /* Build configuration list for PBXNativeTarget "JXBanner" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A3BD6E7D46CCCDE60EC1DC71C2620E9D /* Debug */, - EED0D08FFE8D5229B1A9C81EEB5D166C /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */; -} diff --git a/Example/Pods/SnapKit/LICENSE b/Example/Pods/SnapKit/LICENSE deleted file mode 100644 index a18ccfb..0000000 --- a/Example/Pods/SnapKit/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit - -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. diff --git a/Example/Pods/SnapKit/README.md b/Example/Pods/SnapKit/README.md deleted file mode 100644 index fed2133..0000000 --- a/Example/Pods/SnapKit/README.md +++ /dev/null @@ -1,129 +0,0 @@ - - -SnapKit is a DSL to make Auto Layout easy on both iOS and OS X. - -[![Build Status](https://travis-ci.org/SnapKit/SnapKit.svg)](https://travis-ci.org/SnapKit/SnapKit) -[![Platform](https://img.shields.io/cocoapods/p/SnapKit.svg?style=flat)](https://github.com/SnapKit/SnapKit) -[![Cocoapods Compatible](https://img.shields.io/cocoapods/v/SnapKit.svg)](https://cocoapods.org/pods/SnapKit) -[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) - -#### ⚠️ **To use with Swift 3.x please ensure you are using >= 3.0.0** ⚠️ -#### ⚠️ **To use with Swift 4.x please ensure you are using >= 4.0.0** ⚠️ - -## Contents - -- [Requirements](#requirements) -- [Migration Guides](#migration-guides) -- [Communication](#communication) -- [Installation](#installation) -- [Usage](#usage) -- [Credits](#credits) -- [License](#license) - -## Requirements - -- iOS 8.0+ / Mac OS X 10.11+ / tvOS 9.0+ -- Xcode 9.0+ -- Swift 3.0+ - -## Communication - -- If you **need help**, use [Stack Overflow](http://stackoverflow.com/questions/tagged/snapkit). (Tag 'snapkit') -- If you'd like to **ask a general question**, use [Stack Overflow](http://stackoverflow.com/questions/tagged/snapkit). -- If you **found a bug**, open an issue. -- If you **have a feature request**, open an issue. -- If you **want to contribute**, submit a pull request. - - -## Installation - -### CocoaPods - -[CocoaPods](http://cocoapods.org) is a dependency manager for Cocoa projects. You can install it with the following command: - -```bash -$ gem install cocoapods -``` - -> CocoaPods 1.1.0+ is required to build SnapKit 4.0.0+. - -To integrate SnapKit into your Xcode project using CocoaPods, specify it in your `Podfile`: - -```ruby -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '10.0' -use_frameworks! - -target '' do - pod 'SnapKit', '~> 4.0.0' -end -``` - -Then, run the following command: - -```bash -$ pod install -``` - -### Carthage - -[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. - -You can install Carthage with [Homebrew](http://brew.sh/) using the following command: - -```bash -$ brew update -$ brew install carthage -``` - -To integrate SnapKit into your Xcode project using Carthage, specify it in your `Cartfile`: - -```ogdl -github "SnapKit/SnapKit" ~> 4.0.0 -``` - -Run `carthage update` to build the framework and drag the built `SnapKit.framework` into your Xcode project. - -### Manually - -If you prefer not to use either of the aforementioned dependency managers, you can integrate SnapKit into your project manually. - ---- - -## Usage - -### Quick Start - -```swift -import SnapKit - -class MyViewController: UIViewController { - - lazy var box = UIView() - - override func viewDidLoad() { - super.viewDidLoad() - - self.view.addSubview(box) - box.snp.makeConstraints { (make) -> Void in - make.width.height.equalTo(50) - make.center.equalTo(self.view) - } - } - -} -``` - -### Resources - -- [Documentation](http://snapkit.io/docs/) -- [F.A.Q.](http://snapkit.io/faq/) - -## Credits - -- Robert Payne ([@robertjpayne](https://twitter.com/robertjpayne)) -- Many other contributors - -## License - -SnapKit is released under the MIT license. See LICENSE for details. diff --git a/Example/Pods/SnapKit/Source/Constraint.swift b/Example/Pods/SnapKit/Source/Constraint.swift deleted file mode 100644 index 6e4948e..0000000 --- a/Example/Pods/SnapKit/Source/Constraint.swift +++ /dev/null @@ -1,306 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - -public final class Constraint { - - internal let sourceLocation: (String, UInt) - internal let label: String? - - private let from: ConstraintItem - private let to: ConstraintItem - private let relation: ConstraintRelation - private let multiplier: ConstraintMultiplierTarget - private var constant: ConstraintConstantTarget { - didSet { - self.updateConstantAndPriorityIfNeeded() - } - } - private var priority: ConstraintPriorityTarget { - didSet { - self.updateConstantAndPriorityIfNeeded() - } - } - public var layoutConstraints: [LayoutConstraint] - - public var isActive: Bool { - set { - if newValue { - activate() - } - else { - deactivate() - } - } - - get { - for layoutConstraint in self.layoutConstraints { - if layoutConstraint.isActive { - return true - } - } - return false - } - } - - // MARK: Initialization - - internal init(from: ConstraintItem, - to: ConstraintItem, - relation: ConstraintRelation, - sourceLocation: (String, UInt), - label: String?, - multiplier: ConstraintMultiplierTarget, - constant: ConstraintConstantTarget, - priority: ConstraintPriorityTarget) { - self.from = from - self.to = to - self.relation = relation - self.sourceLocation = sourceLocation - self.label = label - self.multiplier = multiplier - self.constant = constant - self.priority = priority - self.layoutConstraints = [] - - // get attributes - let layoutFromAttributes = self.from.attributes.layoutAttributes - let layoutToAttributes = self.to.attributes.layoutAttributes - - // get layout from - let layoutFrom = self.from.layoutConstraintItem! - - // get relation - let layoutRelation = self.relation.layoutRelation - - for layoutFromAttribute in layoutFromAttributes { - // get layout to attribute - let layoutToAttribute: LayoutAttribute - #if os(iOS) || os(tvOS) - if layoutToAttributes.count > 0 { - if self.from.attributes == .edges && self.to.attributes == .margins { - switch layoutFromAttribute { - case .left: - layoutToAttribute = .leftMargin - case .right: - layoutToAttribute = .rightMargin - case .top: - layoutToAttribute = .topMargin - case .bottom: - layoutToAttribute = .bottomMargin - default: - fatalError() - } - } else if self.from.attributes == .margins && self.to.attributes == .edges { - switch layoutFromAttribute { - case .leftMargin: - layoutToAttribute = .left - case .rightMargin: - layoutToAttribute = .right - case .topMargin: - layoutToAttribute = .top - case .bottomMargin: - layoutToAttribute = .bottom - default: - fatalError() - } - } else if self.from.attributes == self.to.attributes { - layoutToAttribute = layoutFromAttribute - } else { - layoutToAttribute = layoutToAttributes[0] - } - } else { - if self.to.target == nil && (layoutFromAttribute == .centerX || layoutFromAttribute == .centerY) { - layoutToAttribute = layoutFromAttribute == .centerX ? .left : .top - } else { - layoutToAttribute = layoutFromAttribute - } - } - #else - if self.from.attributes == self.to.attributes { - layoutToAttribute = layoutFromAttribute - } else if layoutToAttributes.count > 0 { - layoutToAttribute = layoutToAttributes[0] - } else { - layoutToAttribute = layoutFromAttribute - } - #endif - - // get layout constant - let layoutConstant: CGFloat = self.constant.constraintConstantTargetValueFor(layoutAttribute: layoutToAttribute) - - // get layout to - var layoutTo: AnyObject? = self.to.target - - // use superview if possible - if layoutTo == nil && layoutToAttribute != .width && layoutToAttribute != .height { - layoutTo = layoutFrom.superview - } - - // create layout constraint - let layoutConstraint = LayoutConstraint( - item: layoutFrom, - attribute: layoutFromAttribute, - relatedBy: layoutRelation, - toItem: layoutTo, - attribute: layoutToAttribute, - multiplier: self.multiplier.constraintMultiplierTargetValue, - constant: layoutConstant - ) - - // set label - layoutConstraint.label = self.label - - // set priority - layoutConstraint.priority = LayoutPriority(rawValue: self.priority.constraintPriorityTargetValue) - - // set constraint - layoutConstraint.constraint = self - - // append - self.layoutConstraints.append(layoutConstraint) - } - } - - // MARK: Public - - @available(*, deprecated:3.0, message:"Use activate().") - public func install() { - self.activate() - } - - @available(*, deprecated:3.0, message:"Use deactivate().") - public func uninstall() { - self.deactivate() - } - - public func activate() { - self.activateIfNeeded() - } - - public func deactivate() { - self.deactivateIfNeeded() - } - - @discardableResult - public func update(offset: ConstraintOffsetTarget) -> Constraint { - self.constant = offset.constraintOffsetTargetValue - return self - } - - @discardableResult - public func update(inset: ConstraintInsetTarget) -> Constraint { - self.constant = inset.constraintInsetTargetValue - return self - } - - @discardableResult - public func update(priority: ConstraintPriorityTarget) -> Constraint { - self.priority = priority.constraintPriorityTargetValue - return self - } - - @discardableResult - public func update(priority: ConstraintPriority) -> Constraint { - self.priority = priority.value - return self - } - - @available(*, deprecated:3.0, message:"Use update(offset: ConstraintOffsetTarget) instead.") - public func updateOffset(amount: ConstraintOffsetTarget) -> Void { self.update(offset: amount) } - - @available(*, deprecated:3.0, message:"Use update(inset: ConstraintInsetTarget) instead.") - public func updateInsets(amount: ConstraintInsetTarget) -> Void { self.update(inset: amount) } - - @available(*, deprecated:3.0, message:"Use update(priority: ConstraintPriorityTarget) instead.") - public func updatePriority(amount: ConstraintPriorityTarget) -> Void { self.update(priority: amount) } - - @available(*, obsoleted:3.0, message:"Use update(priority: ConstraintPriorityTarget) instead.") - public func updatePriorityRequired() -> Void {} - - @available(*, obsoleted:3.0, message:"Use update(priority: ConstraintPriorityTarget) instead.") - public func updatePriorityHigh() -> Void { fatalError("Must be implemented by Concrete subclass.") } - - @available(*, obsoleted:3.0, message:"Use update(priority: ConstraintPriorityTarget) instead.") - public func updatePriorityMedium() -> Void { fatalError("Must be implemented by Concrete subclass.") } - - @available(*, obsoleted:3.0, message:"Use update(priority: ConstraintPriorityTarget) instead.") - public func updatePriorityLow() -> Void { fatalError("Must be implemented by Concrete subclass.") } - - // MARK: Internal - - internal func updateConstantAndPriorityIfNeeded() { - for layoutConstraint in self.layoutConstraints { - let attribute = (layoutConstraint.secondAttribute == .notAnAttribute) ? layoutConstraint.firstAttribute : layoutConstraint.secondAttribute - layoutConstraint.constant = self.constant.constraintConstantTargetValueFor(layoutAttribute: attribute) - - let requiredPriority = ConstraintPriority.required.value - if (layoutConstraint.priority.rawValue < requiredPriority), (self.priority.constraintPriorityTargetValue != requiredPriority) { - layoutConstraint.priority = LayoutPriority(rawValue: self.priority.constraintPriorityTargetValue) - } - } - } - - internal func activateIfNeeded(updatingExisting: Bool = false) { - guard let item = self.from.layoutConstraintItem else { - print("WARNING: SnapKit failed to get from item from constraint. Activate will be a no-op.") - return - } - let layoutConstraints = self.layoutConstraints - - if updatingExisting { - var existingLayoutConstraints: [LayoutConstraint] = [] - for constraint in item.constraints { - existingLayoutConstraints += constraint.layoutConstraints - } - - for layoutConstraint in layoutConstraints { - let existingLayoutConstraint = existingLayoutConstraints.first { $0 == layoutConstraint } - guard let updateLayoutConstraint = existingLayoutConstraint else { - fatalError("Updated constraint could not find existing matching constraint to update: \(layoutConstraint)") - } - - let updateLayoutAttribute = (updateLayoutConstraint.secondAttribute == .notAnAttribute) ? updateLayoutConstraint.firstAttribute : updateLayoutConstraint.secondAttribute - updateLayoutConstraint.constant = self.constant.constraintConstantTargetValueFor(layoutAttribute: updateLayoutAttribute) - } - } else { - NSLayoutConstraint.activate(layoutConstraints) - item.add(constraints: [self]) - } - } - - internal func deactivateIfNeeded() { - guard let item = self.from.layoutConstraintItem else { - print("WARNING: SnapKit failed to get from item from constraint. Deactivate will be a no-op.") - return - } - let layoutConstraints = self.layoutConstraints - NSLayoutConstraint.deactivate(layoutConstraints) - item.remove(constraints: [self]) - } -} diff --git a/Example/Pods/SnapKit/Source/ConstraintAttributes.swift b/Example/Pods/SnapKit/Source/ConstraintAttributes.swift deleted file mode 100644 index 5e2367e..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintAttributes.swift +++ /dev/null @@ -1,195 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -internal struct ConstraintAttributes : OptionSet, ExpressibleByIntegerLiteral { - - typealias IntegerLiteralType = UInt - - internal init(rawValue: UInt) { - self.rawValue = rawValue - } - internal init(_ rawValue: UInt) { - self.init(rawValue: rawValue) - } - internal init(nilLiteral: ()) { - self.rawValue = 0 - } - internal init(integerLiteral rawValue: IntegerLiteralType) { - self.init(rawValue: rawValue) - } - - internal private(set) var rawValue: UInt - internal static var allZeros: ConstraintAttributes { return 0 } - internal static func convertFromNilLiteral() -> ConstraintAttributes { return 0 } - internal var boolValue: Bool { return self.rawValue != 0 } - - internal func toRaw() -> UInt { return self.rawValue } - internal static func fromRaw(_ raw: UInt) -> ConstraintAttributes? { return self.init(raw) } - internal static func fromMask(_ raw: UInt) -> ConstraintAttributes { return self.init(raw) } - - // normal - - internal static var none: ConstraintAttributes { return 0 } - internal static var left: ConstraintAttributes { return 1 } - internal static var top: ConstraintAttributes { return 2 } - internal static var right: ConstraintAttributes { return 4 } - internal static var bottom: ConstraintAttributes { return 8 } - internal static var leading: ConstraintAttributes { return 16 } - internal static var trailing: ConstraintAttributes { return 32 } - internal static var width: ConstraintAttributes { return 64 } - internal static var height: ConstraintAttributes { return 128 } - internal static var centerX: ConstraintAttributes { return 256 } - internal static var centerY: ConstraintAttributes { return 512 } - internal static var lastBaseline: ConstraintAttributes { return 1024 } - - @available(iOS 8.0, OSX 10.11, *) - internal static var firstBaseline: ConstraintAttributes { return 2048 } - - @available(iOS 8.0, *) - internal static var leftMargin: ConstraintAttributes { return 4096 } - - @available(iOS 8.0, *) - internal static var rightMargin: ConstraintAttributes { return 8192 } - - @available(iOS 8.0, *) - internal static var topMargin: ConstraintAttributes { return 16384 } - - @available(iOS 8.0, *) - internal static var bottomMargin: ConstraintAttributes { return 32768 } - - @available(iOS 8.0, *) - internal static var leadingMargin: ConstraintAttributes { return 65536 } - - @available(iOS 8.0, *) - internal static var trailingMargin: ConstraintAttributes { return 131072 } - - @available(iOS 8.0, *) - internal static var centerXWithinMargins: ConstraintAttributes { return 262144 } - - @available(iOS 8.0, *) - internal static var centerYWithinMargins: ConstraintAttributes { return 524288 } - - // aggregates - - internal static var edges: ConstraintAttributes { return 15 } - internal static var size: ConstraintAttributes { return 192 } - internal static var center: ConstraintAttributes { return 768 } - - @available(iOS 8.0, *) - internal static var margins: ConstraintAttributes { return 61440 } - - @available(iOS 8.0, *) - internal static var centerWithinMargins: ConstraintAttributes { return 786432 } - - internal var layoutAttributes:[LayoutAttribute] { - var attrs = [LayoutAttribute]() - if (self.contains(ConstraintAttributes.left)) { - attrs.append(.left) - } - if (self.contains(ConstraintAttributes.top)) { - attrs.append(.top) - } - if (self.contains(ConstraintAttributes.right)) { - attrs.append(.right) - } - if (self.contains(ConstraintAttributes.bottom)) { - attrs.append(.bottom) - } - if (self.contains(ConstraintAttributes.leading)) { - attrs.append(.leading) - } - if (self.contains(ConstraintAttributes.trailing)) { - attrs.append(.trailing) - } - if (self.contains(ConstraintAttributes.width)) { - attrs.append(.width) - } - if (self.contains(ConstraintAttributes.height)) { - attrs.append(.height) - } - if (self.contains(ConstraintAttributes.centerX)) { - attrs.append(.centerX) - } - if (self.contains(ConstraintAttributes.centerY)) { - attrs.append(.centerY) - } - if (self.contains(ConstraintAttributes.lastBaseline)) { - attrs.append(.lastBaseline) - } - - #if os(iOS) || os(tvOS) - if (self.contains(ConstraintAttributes.firstBaseline)) { - attrs.append(.firstBaseline) - } - if (self.contains(ConstraintAttributes.leftMargin)) { - attrs.append(.leftMargin) - } - if (self.contains(ConstraintAttributes.rightMargin)) { - attrs.append(.rightMargin) - } - if (self.contains(ConstraintAttributes.topMargin)) { - attrs.append(.topMargin) - } - if (self.contains(ConstraintAttributes.bottomMargin)) { - attrs.append(.bottomMargin) - } - if (self.contains(ConstraintAttributes.leadingMargin)) { - attrs.append(.leadingMargin) - } - if (self.contains(ConstraintAttributes.trailingMargin)) { - attrs.append(.trailingMargin) - } - if (self.contains(ConstraintAttributes.centerXWithinMargins)) { - attrs.append(.centerXWithinMargins) - } - if (self.contains(ConstraintAttributes.centerYWithinMargins)) { - attrs.append(.centerYWithinMargins) - } - #endif - - return attrs - } -} - -internal func + (left: ConstraintAttributes, right: ConstraintAttributes) -> ConstraintAttributes { - return left.union(right) -} - -internal func +=(left: inout ConstraintAttributes, right: ConstraintAttributes) { - left.formUnion(right) -} - -internal func -=(left: inout ConstraintAttributes, right: ConstraintAttributes) { - left.subtract(right) -} - -internal func ==(left: ConstraintAttributes, right: ConstraintAttributes) -> Bool { - return left.rawValue == right.rawValue -} diff --git a/Example/Pods/SnapKit/Source/ConstraintConfig.swift b/Example/Pods/SnapKit/Source/ConstraintConfig.swift deleted file mode 100644 index 2746b7d..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintConfig.swift +++ /dev/null @@ -1,37 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit - public typealias ConstraintInterfaceLayoutDirection = UIUserInterfaceLayoutDirection -#else - import AppKit - public typealias ConstraintInterfaceLayoutDirection = NSUserInterfaceLayoutDirection -#endif - - -public struct ConstraintConfig { - - public static var interfaceLayoutDirection: ConstraintInterfaceLayoutDirection = .leftToRight - -} diff --git a/Example/Pods/SnapKit/Source/ConstraintConstantTarget.swift b/Example/Pods/SnapKit/Source/ConstraintConstantTarget.swift deleted file mode 100644 index bc6d596..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintConstantTarget.swift +++ /dev/null @@ -1,147 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -public protocol ConstraintConstantTarget { -} - -extension CGPoint: ConstraintConstantTarget { -} - -extension CGSize: ConstraintConstantTarget { -} - -extension ConstraintInsets: ConstraintConstantTarget { -} - -extension ConstraintConstantTarget { - - internal func constraintConstantTargetValueFor(layoutAttribute: LayoutAttribute) -> CGFloat { - if let value = self as? CGFloat { - return value - } - - if let value = self as? Float { - return CGFloat(value) - } - - if let value = self as? Double { - return CGFloat(value) - } - - if let value = self as? Int { - return CGFloat(value) - } - - if let value = self as? UInt { - return CGFloat(value) - } - - if let value = self as? CGSize { - if layoutAttribute == .width { - return value.width - } else if layoutAttribute == .height { - return value.height - } else { - return 0.0 - } - } - - if let value = self as? CGPoint { - #if os(iOS) || os(tvOS) - switch layoutAttribute { - case .left, .right, .leading, .trailing, .centerX, .leftMargin, .rightMargin, .leadingMargin, .trailingMargin, .centerXWithinMargins: - return value.x - case .top, .bottom, .centerY, .topMargin, .bottomMargin, .centerYWithinMargins, .lastBaseline, .firstBaseline: - return value.y - case .width, .height, .notAnAttribute: - return 0.0 - } - #else - switch layoutAttribute { - case .left, .right, .leading, .trailing, .centerX: - return value.x - case .top, .bottom, .centerY, .lastBaseline, .firstBaseline: - return value.y - case .width, .height, .notAnAttribute: - return 0.0 - } - #endif - } - - if let value = self as? ConstraintInsets { - #if os(iOS) || os(tvOS) - switch layoutAttribute { - case .left, .leftMargin, .centerX, .centerXWithinMargins: - return value.left - case .top, .topMargin, .centerY, .centerYWithinMargins, .lastBaseline, .firstBaseline: - return value.top - case .right, .rightMargin: - return -value.right - case .bottom, .bottomMargin: - return -value.bottom - case .leading, .leadingMargin: - return (ConstraintConfig.interfaceLayoutDirection == .leftToRight) ? value.left : value.right - case .trailing, .trailingMargin: - return (ConstraintConfig.interfaceLayoutDirection == .leftToRight) ? -value.right : -value.left - case .width: - return -(value.left + value.right) - case .height: - return -(value.top + value.bottom) - case .notAnAttribute: - return 0.0 - } - #else - switch layoutAttribute { - case .left, .centerX: - return value.left - case .top, .centerY, .lastBaseline, .firstBaseline: - return value.top - case .right: - return -value.right - case .bottom: - return -value.bottom - case .leading: - return (ConstraintConfig.interfaceLayoutDirection == .leftToRight) ? value.left : value.right - case .trailing: - return (ConstraintConfig.interfaceLayoutDirection == .leftToRight) ? -value.right : -value.left - case .width: - return -(value.left + value.right) - case .height: - return -(value.top + value.bottom) - case .notAnAttribute: - return 0.0 - } - #endif - } - - return 0.0 - } - -} diff --git a/Example/Pods/SnapKit/Source/ConstraintDSL.swift b/Example/Pods/SnapKit/Source/ConstraintDSL.swift deleted file mode 100644 index a7e1798..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintDSL.swift +++ /dev/null @@ -1,185 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -public protocol ConstraintDSL { - - var target: AnyObject? { get } - - func setLabel(_ value: String?) - func label() -> String? - -} -extension ConstraintDSL { - - public func setLabel(_ value: String?) { - objc_setAssociatedObject(self.target as Any, &labelKey, value, .OBJC_ASSOCIATION_COPY_NONATOMIC) - } - public func label() -> String? { - return objc_getAssociatedObject(self.target as Any, &labelKey) as? String - } - -} -private var labelKey: UInt8 = 0 - - -public protocol ConstraintBasicAttributesDSL : ConstraintDSL { -} -extension ConstraintBasicAttributesDSL { - - // MARK: Basics - - public var left: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.left) - } - - public var top: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.top) - } - - public var right: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.right) - } - - public var bottom: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.bottom) - } - - public var leading: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.leading) - } - - public var trailing: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.trailing) - } - - public var width: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.width) - } - - public var height: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.height) - } - - public var centerX: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.centerX) - } - - public var centerY: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.centerY) - } - - public var edges: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.edges) - } - - public var size: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.size) - } - - public var center: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.center) - } - -} - -public protocol ConstraintAttributesDSL : ConstraintBasicAttributesDSL { -} -extension ConstraintAttributesDSL { - - // MARK: Baselines - - @available(*, deprecated:3.0, message:"Use .lastBaseline instead") - public var baseline: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.lastBaseline) - } - - @available(iOS 8.0, OSX 10.11, *) - public var lastBaseline: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.lastBaseline) - } - - @available(iOS 8.0, OSX 10.11, *) - public var firstBaseline: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.firstBaseline) - } - - // MARK: Margins - - @available(iOS 8.0, *) - public var leftMargin: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.leftMargin) - } - - @available(iOS 8.0, *) - public var topMargin: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.topMargin) - } - - @available(iOS 8.0, *) - public var rightMargin: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.rightMargin) - } - - @available(iOS 8.0, *) - public var bottomMargin: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.bottomMargin) - } - - @available(iOS 8.0, *) - public var leadingMargin: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.leadingMargin) - } - - @available(iOS 8.0, *) - public var trailingMargin: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.trailingMargin) - } - - @available(iOS 8.0, *) - public var centerXWithinMargins: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.centerXWithinMargins) - } - - @available(iOS 8.0, *) - public var centerYWithinMargins: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.centerYWithinMargins) - } - - @available(iOS 8.0, *) - public var margins: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.margins) - } - - @available(iOS 8.0, *) - public var centerWithinMargins: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.centerWithinMargins) - } - -} diff --git a/Example/Pods/SnapKit/Source/ConstraintDescription.swift b/Example/Pods/SnapKit/Source/ConstraintDescription.swift deleted file mode 100644 index 3521f9f..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintDescription.swift +++ /dev/null @@ -1,69 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -public class ConstraintDescription { - - internal let item: LayoutConstraintItem - internal var attributes: ConstraintAttributes - internal var relation: ConstraintRelation? = nil - internal var sourceLocation: (String, UInt)? = nil - internal var label: String? = nil - internal var related: ConstraintItem? = nil - internal var multiplier: ConstraintMultiplierTarget = 1.0 - internal var constant: ConstraintConstantTarget = 0.0 - internal var priority: ConstraintPriorityTarget = 1000.0 - internal lazy var constraint: Constraint? = { - guard let relation = self.relation, - let related = self.related, - let sourceLocation = self.sourceLocation else { - return nil - } - let from = ConstraintItem(target: self.item, attributes: self.attributes) - - return Constraint( - from: from, - to: related, - relation: relation, - sourceLocation: sourceLocation, - label: self.label, - multiplier: self.multiplier, - constant: self.constant, - priority: self.priority - ) - }() - - // MARK: Initialization - - internal init(item: LayoutConstraintItem, attributes: ConstraintAttributes) { - self.item = item - self.attributes = attributes - } - -} diff --git a/Example/Pods/SnapKit/Source/ConstraintInsetTarget.swift b/Example/Pods/SnapKit/Source/ConstraintInsetTarget.swift deleted file mode 100644 index ba8a0f3..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintInsetTarget.swift +++ /dev/null @@ -1,72 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -public protocol ConstraintInsetTarget: ConstraintConstantTarget { -} - -extension Int: ConstraintInsetTarget { -} - -extension UInt: ConstraintInsetTarget { -} - -extension Float: ConstraintInsetTarget { -} - -extension Double: ConstraintInsetTarget { -} - -extension CGFloat: ConstraintInsetTarget { -} - -extension ConstraintInsets: ConstraintInsetTarget { -} - -extension ConstraintInsetTarget { - - internal var constraintInsetTargetValue: ConstraintInsets { - if let amount = self as? ConstraintInsets { - return amount - } else if let amount = self as? Float { - return ConstraintInsets(top: CGFloat(amount), left: CGFloat(amount), bottom: CGFloat(amount), right: CGFloat(amount)) - } else if let amount = self as? Double { - return ConstraintInsets(top: CGFloat(amount), left: CGFloat(amount), bottom: CGFloat(amount), right: CGFloat(amount)) - } else if let amount = self as? CGFloat { - return ConstraintInsets(top: amount, left: amount, bottom: amount, right: amount) - } else if let amount = self as? Int { - return ConstraintInsets(top: CGFloat(amount), left: CGFloat(amount), bottom: CGFloat(amount), right: CGFloat(amount)) - } else if let amount = self as? UInt { - return ConstraintInsets(top: CGFloat(amount), left: CGFloat(amount), bottom: CGFloat(amount), right: CGFloat(amount)) - } else { - return ConstraintInsets(top: 0, left: 0, bottom: 0, right: 0) - } - } - -} diff --git a/Example/Pods/SnapKit/Source/ConstraintInsets.swift b/Example/Pods/SnapKit/Source/ConstraintInsets.swift deleted file mode 100644 index 738ca05..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintInsets.swift +++ /dev/null @@ -1,35 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -#if os(iOS) || os(tvOS) - public typealias ConstraintInsets = UIEdgeInsets -#else - public typealias ConstraintInsets = NSEdgeInsets -#endif diff --git a/Example/Pods/SnapKit/Source/ConstraintItem.swift b/Example/Pods/SnapKit/Source/ConstraintItem.swift deleted file mode 100644 index a342c1d..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintItem.swift +++ /dev/null @@ -1,61 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -public final class ConstraintItem { - - internal weak var target: AnyObject? - internal let attributes: ConstraintAttributes - - internal init(target: AnyObject?, attributes: ConstraintAttributes) { - self.target = target - self.attributes = attributes - } - - internal var layoutConstraintItem: LayoutConstraintItem? { - return self.target as? LayoutConstraintItem - } - -} - -public func ==(lhs: ConstraintItem, rhs: ConstraintItem) -> Bool { - // pointer equality - guard lhs !== rhs else { - return true - } - - // must both have valid targets and identical attributes - guard let target1 = lhs.target, - let target2 = rhs.target, - target1 === target2 && lhs.attributes == rhs.attributes else { - return false - } - - return true -} diff --git a/Example/Pods/SnapKit/Source/ConstraintLayoutGuide+Extensions.swift b/Example/Pods/SnapKit/Source/ConstraintLayoutGuide+Extensions.swift deleted file mode 100644 index c2d9e9d..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintLayoutGuide+Extensions.swift +++ /dev/null @@ -1,36 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#endif - - -@available(iOS 9.0, OSX 10.11, *) -public extension ConstraintLayoutGuide { - - public var snp: ConstraintLayoutGuideDSL { - return ConstraintLayoutGuideDSL(guide: self) - } - -} diff --git a/Example/Pods/SnapKit/Source/ConstraintLayoutGuide.swift b/Example/Pods/SnapKit/Source/ConstraintLayoutGuide.swift deleted file mode 100644 index e3e50c8..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintLayoutGuide.swift +++ /dev/null @@ -1,37 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -#if os(iOS) || os(tvOS) - @available(iOS 9.0, *) - public typealias ConstraintLayoutGuide = UILayoutGuide -#else - @available(OSX 10.11, *) - public typealias ConstraintLayoutGuide = NSLayoutGuide -#endif diff --git a/Example/Pods/SnapKit/Source/ConstraintLayoutGuideDSL.swift b/Example/Pods/SnapKit/Source/ConstraintLayoutGuideDSL.swift deleted file mode 100644 index 0007819..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintLayoutGuideDSL.swift +++ /dev/null @@ -1,66 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -@available(iOS 9.0, OSX 10.11, *) -public struct ConstraintLayoutGuideDSL: ConstraintAttributesDSL { - - @discardableResult - public func prepareConstraints(_ closure: (_ make: ConstraintMaker) -> Void) -> [Constraint] { - return ConstraintMaker.prepareConstraints(item: self.guide, closure: closure) - } - - public func makeConstraints(_ closure: (_ make: ConstraintMaker) -> Void) { - ConstraintMaker.makeConstraints(item: self.guide, closure: closure) - } - - public func remakeConstraints(_ closure: (_ make: ConstraintMaker) -> Void) { - ConstraintMaker.remakeConstraints(item: self.guide, closure: closure) - } - - public func updateConstraints(_ closure: (_ make: ConstraintMaker) -> Void) { - ConstraintMaker.updateConstraints(item: self.guide, closure: closure) - } - - public func removeConstraints() { - ConstraintMaker.removeConstraints(item: self.guide) - } - - public var target: AnyObject? { - return self.guide - } - - internal let guide: ConstraintLayoutGuide - - internal init(guide: ConstraintLayoutGuide) { - self.guide = guide - - } - -} diff --git a/Example/Pods/SnapKit/Source/ConstraintLayoutSupport.swift b/Example/Pods/SnapKit/Source/ConstraintLayoutSupport.swift deleted file mode 100644 index e92e9fb..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintLayoutSupport.swift +++ /dev/null @@ -1,36 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -#if os(iOS) || os(tvOS) - @available(iOS 8.0, *) - public typealias ConstraintLayoutSupport = UILayoutSupport -#else - public class ConstraintLayoutSupport {} -#endif diff --git a/Example/Pods/SnapKit/Source/ConstraintLayoutSupportDSL.swift b/Example/Pods/SnapKit/Source/ConstraintLayoutSupportDSL.swift deleted file mode 100644 index 5d6ae89..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintLayoutSupportDSL.swift +++ /dev/null @@ -1,56 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -@available(iOS 8.0, *) -public struct ConstraintLayoutSupportDSL: ConstraintDSL { - - public var target: AnyObject? { - return self.support - } - - internal let support: ConstraintLayoutSupport - - internal init(support: ConstraintLayoutSupport) { - self.support = support - - } - - public var top: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.top) - } - - public var bottom: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.bottom) - } - - public var height: ConstraintItem { - return ConstraintItem(target: self.target, attributes: ConstraintAttributes.height) - } -} diff --git a/Example/Pods/SnapKit/Source/ConstraintMaker.swift b/Example/Pods/SnapKit/Source/ConstraintMaker.swift deleted file mode 100644 index 91f35f1..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintMaker.swift +++ /dev/null @@ -1,204 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - -public class ConstraintMaker { - - public var left: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.left) - } - - public var top: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.top) - } - - public var bottom: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.bottom) - } - - public var right: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.right) - } - - public var leading: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.leading) - } - - public var trailing: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.trailing) - } - - public var width: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.width) - } - - public var height: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.height) - } - - public var centerX: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.centerX) - } - - public var centerY: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.centerY) - } - - @available(*, deprecated:3.0, message:"Use lastBaseline instead") - public var baseline: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.lastBaseline) - } - - public var lastBaseline: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.lastBaseline) - } - - @available(iOS 8.0, OSX 10.11, *) - public var firstBaseline: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.firstBaseline) - } - - @available(iOS 8.0, *) - public var leftMargin: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.leftMargin) - } - - @available(iOS 8.0, *) - public var rightMargin: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.rightMargin) - } - - @available(iOS 8.0, *) - public var topMargin: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.topMargin) - } - - @available(iOS 8.0, *) - public var bottomMargin: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.bottomMargin) - } - - @available(iOS 8.0, *) - public var leadingMargin: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.leadingMargin) - } - - @available(iOS 8.0, *) - public var trailingMargin: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.trailingMargin) - } - - @available(iOS 8.0, *) - public var centerXWithinMargins: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.centerXWithinMargins) - } - - @available(iOS 8.0, *) - public var centerYWithinMargins: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.centerYWithinMargins) - } - - public var edges: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.edges) - } - public var size: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.size) - } - public var center: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.center) - } - - @available(iOS 8.0, *) - public var margins: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.margins) - } - - @available(iOS 8.0, *) - public var centerWithinMargins: ConstraintMakerExtendable { - return self.makeExtendableWithAttributes(.centerWithinMargins) - } - - private let item: LayoutConstraintItem - private var descriptions = [ConstraintDescription]() - - internal init(item: LayoutConstraintItem) { - self.item = item - self.item.prepare() - } - - internal func makeExtendableWithAttributes(_ attributes: ConstraintAttributes) -> ConstraintMakerExtendable { - let description = ConstraintDescription(item: self.item, attributes: attributes) - self.descriptions.append(description) - return ConstraintMakerExtendable(description) - } - - internal static func prepareConstraints(item: LayoutConstraintItem, closure: (_ make: ConstraintMaker) -> Void) -> [Constraint] { - let maker = ConstraintMaker(item: item) - closure(maker) - var constraints: [Constraint] = [] - for description in maker.descriptions { - guard let constraint = description.constraint else { - continue - } - constraints.append(constraint) - } - return constraints - } - - internal static func makeConstraints(item: LayoutConstraintItem, closure: (_ make: ConstraintMaker) -> Void) { - let constraints = prepareConstraints(item: item, closure: closure) - for constraint in constraints { - constraint.activateIfNeeded(updatingExisting: false) - } - } - - internal static func remakeConstraints(item: LayoutConstraintItem, closure: (_ make: ConstraintMaker) -> Void) { - self.removeConstraints(item: item) - self.makeConstraints(item: item, closure: closure) - } - - internal static func updateConstraints(item: LayoutConstraintItem, closure: (_ make: ConstraintMaker) -> Void) { - guard item.constraints.count > 0 else { - self.makeConstraints(item: item, closure: closure) - return - } - - let constraints = prepareConstraints(item: item, closure: closure) - for constraint in constraints { - constraint.activateIfNeeded(updatingExisting: true) - } - } - - internal static func removeConstraints(item: LayoutConstraintItem) { - let constraints = item.constraints - for constraint in constraints { - constraint.deactivateIfNeeded() - } - } - -} diff --git a/Example/Pods/SnapKit/Source/ConstraintMakerEditable.swift b/Example/Pods/SnapKit/Source/ConstraintMakerEditable.swift deleted file mode 100644 index fb88c41..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintMakerEditable.swift +++ /dev/null @@ -1,56 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -public class ConstraintMakerEditable: ConstraintMakerPriortizable { - - @discardableResult - public func multipliedBy(_ amount: ConstraintMultiplierTarget) -> ConstraintMakerEditable { - self.description.multiplier = amount - return self - } - - @discardableResult - public func dividedBy(_ amount: ConstraintMultiplierTarget) -> ConstraintMakerEditable { - return self.multipliedBy(1.0 / amount.constraintMultiplierTargetValue) - } - - @discardableResult - public func offset(_ amount: ConstraintOffsetTarget) -> ConstraintMakerEditable { - self.description.constant = amount.constraintOffsetTargetValue - return self - } - - @discardableResult - public func inset(_ amount: ConstraintInsetTarget) -> ConstraintMakerEditable { - self.description.constant = amount.constraintInsetTargetValue - return self - } - -} diff --git a/Example/Pods/SnapKit/Source/ConstraintMakerExtendable.swift b/Example/Pods/SnapKit/Source/ConstraintMakerExtendable.swift deleted file mode 100644 index 6a755b5..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintMakerExtendable.swift +++ /dev/null @@ -1,169 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -public class ConstraintMakerExtendable: ConstraintMakerRelatable { - - public var left: ConstraintMakerExtendable { - self.description.attributes += .left - return self - } - - public var top: ConstraintMakerExtendable { - self.description.attributes += .top - return self - } - - public var bottom: ConstraintMakerExtendable { - self.description.attributes += .bottom - return self - } - - public var right: ConstraintMakerExtendable { - self.description.attributes += .right - return self - } - - public var leading: ConstraintMakerExtendable { - self.description.attributes += .leading - return self - } - - public var trailing: ConstraintMakerExtendable { - self.description.attributes += .trailing - return self - } - - public var width: ConstraintMakerExtendable { - self.description.attributes += .width - return self - } - - public var height: ConstraintMakerExtendable { - self.description.attributes += .height - return self - } - - public var centerX: ConstraintMakerExtendable { - self.description.attributes += .centerX - return self - } - - public var centerY: ConstraintMakerExtendable { - self.description.attributes += .centerY - return self - } - - @available(*, deprecated:3.0, message:"Use lastBaseline instead") - public var baseline: ConstraintMakerExtendable { - self.description.attributes += .lastBaseline - return self - } - - public var lastBaseline: ConstraintMakerExtendable { - self.description.attributes += .lastBaseline - return self - } - - @available(iOS 8.0, OSX 10.11, *) - public var firstBaseline: ConstraintMakerExtendable { - self.description.attributes += .firstBaseline - return self - } - - @available(iOS 8.0, *) - public var leftMargin: ConstraintMakerExtendable { - self.description.attributes += .leftMargin - return self - } - - @available(iOS 8.0, *) - public var rightMargin: ConstraintMakerExtendable { - self.description.attributes += .rightMargin - return self - } - - @available(iOS 8.0, *) - public var topMargin: ConstraintMakerExtendable { - self.description.attributes += .topMargin - return self - } - - @available(iOS 8.0, *) - public var bottomMargin: ConstraintMakerExtendable { - self.description.attributes += .bottomMargin - return self - } - - @available(iOS 8.0, *) - public var leadingMargin: ConstraintMakerExtendable { - self.description.attributes += .leadingMargin - return self - } - - @available(iOS 8.0, *) - public var trailingMargin: ConstraintMakerExtendable { - self.description.attributes += .trailingMargin - return self - } - - @available(iOS 8.0, *) - public var centerXWithinMargins: ConstraintMakerExtendable { - self.description.attributes += .centerXWithinMargins - return self - } - - @available(iOS 8.0, *) - public var centerYWithinMargins: ConstraintMakerExtendable { - self.description.attributes += .centerYWithinMargins - return self - } - - public var edges: ConstraintMakerExtendable { - self.description.attributes += .edges - return self - } - public var size: ConstraintMakerExtendable { - self.description.attributes += .size - return self - } - - @available(iOS 8.0, *) - public var margins: ConstraintMakerExtendable { - self.description.attributes += .margins - return self - } - - @available(iOS 8.0, *) - public var centerWithinMargins: ConstraintMakerExtendable { - self.description.attributes += .centerWithinMargins - return self - } - -} diff --git a/Example/Pods/SnapKit/Source/ConstraintMakerFinalizable.swift b/Example/Pods/SnapKit/Source/ConstraintMakerFinalizable.swift deleted file mode 100644 index 4e1379e..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintMakerFinalizable.swift +++ /dev/null @@ -1,49 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -public class ConstraintMakerFinalizable { - - internal let description: ConstraintDescription - - internal init(_ description: ConstraintDescription) { - self.description = description - } - - @discardableResult - public func labeled(_ label: String) -> ConstraintMakerFinalizable { - self.description.label = label - return self - } - - public var constraint: Constraint { - return self.description.constraint! - } - -} diff --git a/Example/Pods/SnapKit/Source/ConstraintMakerPriortizable.swift b/Example/Pods/SnapKit/Source/ConstraintMakerPriortizable.swift deleted file mode 100644 index ef79448..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintMakerPriortizable.swift +++ /dev/null @@ -1,68 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -public class ConstraintMakerPriortizable: ConstraintMakerFinalizable { - - @discardableResult - public func priority(_ amount: ConstraintPriority) -> ConstraintMakerFinalizable { - self.description.priority = amount.value - return self - } - - @discardableResult - public func priority(_ amount: ConstraintPriorityTarget) -> ConstraintMakerFinalizable { - self.description.priority = amount - return self - } - - @available(*, deprecated:3.0, message:"Use priority(.required) instead.") - @discardableResult - public func priorityRequired() -> ConstraintMakerFinalizable { - return self.priority(.required) - } - - @available(*, deprecated:3.0, message:"Use priority(.high) instead.") - @discardableResult - public func priorityHigh() -> ConstraintMakerFinalizable { - return self.priority(.high) - } - - @available(*, deprecated:3.0, message:"Use priority(.medium) instead.") - @discardableResult - public func priorityMedium() -> ConstraintMakerFinalizable { - return self.priority(.medium) - } - - @available(*, deprecated:3.0, message:"Use priority(.low) instead.") - @discardableResult - public func priorityLow() -> ConstraintMakerFinalizable { - return self.priority(.low) - } -} diff --git a/Example/Pods/SnapKit/Source/ConstraintMakerRelatable.swift b/Example/Pods/SnapKit/Source/ConstraintMakerRelatable.swift deleted file mode 100644 index 98c7158..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintMakerRelatable.swift +++ /dev/null @@ -1,113 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -public class ConstraintMakerRelatable { - - internal let description: ConstraintDescription - - internal init(_ description: ConstraintDescription) { - self.description = description - } - - internal func relatedTo(_ other: ConstraintRelatableTarget, relation: ConstraintRelation, file: String, line: UInt) -> ConstraintMakerEditable { - let related: ConstraintItem - let constant: ConstraintConstantTarget - - if let other = other as? ConstraintItem { - guard other.attributes == ConstraintAttributes.none || - other.attributes.layoutAttributes.count <= 1 || - other.attributes.layoutAttributes == self.description.attributes.layoutAttributes || - other.attributes == .edges && self.description.attributes == .margins || - other.attributes == .margins && self.description.attributes == .edges else { - fatalError("Cannot constraint to multiple non identical attributes. (\(file), \(line))"); - } - - related = other - constant = 0.0 - } else if let other = other as? ConstraintView { - related = ConstraintItem(target: other, attributes: ConstraintAttributes.none) - constant = 0.0 - } else if let other = other as? ConstraintConstantTarget { - related = ConstraintItem(target: nil, attributes: ConstraintAttributes.none) - constant = other - } else if #available(iOS 9.0, OSX 10.11, *), let other = other as? ConstraintLayoutGuide { - related = ConstraintItem(target: other, attributes: ConstraintAttributes.none) - constant = 0.0 - } else { - fatalError("Invalid constraint. (\(file), \(line))") - } - - let editable = ConstraintMakerEditable(self.description) - editable.description.sourceLocation = (file, line) - editable.description.relation = relation - editable.description.related = related - editable.description.constant = constant - return editable - } - - @discardableResult - public func equalTo(_ other: ConstraintRelatableTarget, _ file: String = #file, _ line: UInt = #line) -> ConstraintMakerEditable { - return self.relatedTo(other, relation: .equal, file: file, line: line) - } - - @discardableResult - public func equalToSuperview(_ file: String = #file, _ line: UInt = #line) -> ConstraintMakerEditable { - guard let other = self.description.item.superview else { - fatalError("Expected superview but found nil when attempting make constraint `equalToSuperview`.") - } - return self.relatedTo(other, relation: .equal, file: file, line: line) - } - - @discardableResult - public func lessThanOrEqualTo(_ other: ConstraintRelatableTarget, _ file: String = #file, _ line: UInt = #line) -> ConstraintMakerEditable { - return self.relatedTo(other, relation: .lessThanOrEqual, file: file, line: line) - } - - @discardableResult - public func lessThanOrEqualToSuperview(_ file: String = #file, _ line: UInt = #line) -> ConstraintMakerEditable { - guard let other = self.description.item.superview else { - fatalError("Expected superview but found nil when attempting make constraint `lessThanOrEqualToSuperview`.") - } - return self.relatedTo(other, relation: .lessThanOrEqual, file: file, line: line) - } - - @discardableResult - public func greaterThanOrEqualTo(_ other: ConstraintRelatableTarget, _ file: String = #file, line: UInt = #line) -> ConstraintMakerEditable { - return self.relatedTo(other, relation: .greaterThanOrEqual, file: file, line: line) - } - - @discardableResult - public func greaterThanOrEqualToSuperview(_ file: String = #file, line: UInt = #line) -> ConstraintMakerEditable { - guard let other = self.description.item.superview else { - fatalError("Expected superview but found nil when attempting make constraint `greaterThanOrEqualToSuperview`.") - } - return self.relatedTo(other, relation: .greaterThanOrEqual, file: file, line: line) - } -} diff --git a/Example/Pods/SnapKit/Source/ConstraintMultiplierTarget.swift b/Example/Pods/SnapKit/Source/ConstraintMultiplierTarget.swift deleted file mode 100644 index 6fecd33..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintMultiplierTarget.swift +++ /dev/null @@ -1,75 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -public protocol ConstraintMultiplierTarget { - - var constraintMultiplierTargetValue: CGFloat { get } - -} - -extension Int: ConstraintMultiplierTarget { - - public var constraintMultiplierTargetValue: CGFloat { - return CGFloat(self) - } - -} - -extension UInt: ConstraintMultiplierTarget { - - public var constraintMultiplierTargetValue: CGFloat { - return CGFloat(self) - } - -} - -extension Float: ConstraintMultiplierTarget { - - public var constraintMultiplierTargetValue: CGFloat { - return CGFloat(self) - } - -} - -extension Double: ConstraintMultiplierTarget { - - public var constraintMultiplierTargetValue: CGFloat { - return CGFloat(self) - } - -} - -extension CGFloat: ConstraintMultiplierTarget { - - public var constraintMultiplierTargetValue: CGFloat { - return self - } - -} diff --git a/Example/Pods/SnapKit/Source/ConstraintOffsetTarget.swift b/Example/Pods/SnapKit/Source/ConstraintOffsetTarget.swift deleted file mode 100644 index bd9e0a1..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintOffsetTarget.swift +++ /dev/null @@ -1,69 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -public protocol ConstraintOffsetTarget: ConstraintConstantTarget { -} - -extension Int: ConstraintOffsetTarget { -} - -extension UInt: ConstraintOffsetTarget { -} - -extension Float: ConstraintOffsetTarget { -} - -extension Double: ConstraintOffsetTarget { -} - -extension CGFloat: ConstraintOffsetTarget { -} - -extension ConstraintOffsetTarget { - - internal var constraintOffsetTargetValue: CGFloat { - let offset: CGFloat - if let amount = self as? Float { - offset = CGFloat(amount) - } else if let amount = self as? Double { - offset = CGFloat(amount) - } else if let amount = self as? CGFloat { - offset = CGFloat(amount) - } else if let amount = self as? Int { - offset = CGFloat(amount) - } else if let amount = self as? UInt { - offset = CGFloat(amount) - } else { - offset = 0.0 - } - return offset - } - -} diff --git a/Example/Pods/SnapKit/Source/ConstraintPriority.swift b/Example/Pods/SnapKit/Source/ConstraintPriority.swift deleted file mode 100644 index f9dab16..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintPriority.swift +++ /dev/null @@ -1,77 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - -public struct ConstraintPriority : ExpressibleByFloatLiteral, Equatable, Strideable { - public typealias FloatLiteralType = Float - - public let value: Float - - public init(floatLiteral value: Float) { - self.value = value - } - - public init(_ value: Float) { - self.value = value - } - - public static var required: ConstraintPriority { - return 1000.0 - } - - public static var high: ConstraintPriority { - return 750.0 - } - - public static var medium: ConstraintPriority { - #if os(OSX) - return 501.0 - #else - return 500.0 - #endif - - } - - public static var low: ConstraintPriority { - return 250.0 - } - - public static func ==(lhs: ConstraintPriority, rhs: ConstraintPriority) -> Bool { - return lhs.value == rhs.value - } - - // MARK: Strideable - - public func advanced(by n: FloatLiteralType) -> ConstraintPriority { - return ConstraintPriority(floatLiteral: value + n) - } - - public func distance(to other: ConstraintPriority) -> FloatLiteralType { - return other.value - value - } -} diff --git a/Example/Pods/SnapKit/Source/ConstraintPriorityTarget.swift b/Example/Pods/SnapKit/Source/ConstraintPriorityTarget.swift deleted file mode 100644 index 064f750..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintPriorityTarget.swift +++ /dev/null @@ -1,85 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -public protocol ConstraintPriorityTarget { - - var constraintPriorityTargetValue: Float { get } - -} - -extension Int: ConstraintPriorityTarget { - - public var constraintPriorityTargetValue: Float { - return Float(self) - } - -} - -extension UInt: ConstraintPriorityTarget { - - public var constraintPriorityTargetValue: Float { - return Float(self) - } - -} - -extension Float: ConstraintPriorityTarget { - - public var constraintPriorityTargetValue: Float { - return self - } - -} - -extension Double: ConstraintPriorityTarget { - - public var constraintPriorityTargetValue: Float { - return Float(self) - } - -} - -extension CGFloat: ConstraintPriorityTarget { - - public var constraintPriorityTargetValue: Float { - return Float(self) - } - -} - -#if os(iOS) || os(tvOS) -extension UILayoutPriority: ConstraintPriorityTarget { - - public var constraintPriorityTargetValue: Float { - return self.rawValue - } - -} -#endif diff --git a/Example/Pods/SnapKit/Source/ConstraintRelatableTarget.swift b/Example/Pods/SnapKit/Source/ConstraintRelatableTarget.swift deleted file mode 100644 index 6976367..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintRelatableTarget.swift +++ /dev/null @@ -1,66 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -public protocol ConstraintRelatableTarget { -} - -extension Int: ConstraintRelatableTarget { -} - -extension UInt: ConstraintRelatableTarget { -} - -extension Float: ConstraintRelatableTarget { -} - -extension Double: ConstraintRelatableTarget { -} - -extension CGFloat: ConstraintRelatableTarget { -} - -extension CGSize: ConstraintRelatableTarget { -} - -extension CGPoint: ConstraintRelatableTarget { -} - -extension ConstraintInsets: ConstraintRelatableTarget { -} - -extension ConstraintItem: ConstraintRelatableTarget { -} - -extension ConstraintView: ConstraintRelatableTarget { -} - -@available(iOS 9.0, OSX 10.11, *) -extension ConstraintLayoutGuide: ConstraintRelatableTarget { -} diff --git a/Example/Pods/SnapKit/Source/ConstraintRelation.swift b/Example/Pods/SnapKit/Source/ConstraintRelation.swift deleted file mode 100644 index 446aaf7..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintRelation.swift +++ /dev/null @@ -1,48 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -internal enum ConstraintRelation : Int { - case equal = 1 - case lessThanOrEqual - case greaterThanOrEqual - - internal var layoutRelation: LayoutRelation { - get { - switch(self) { - case .equal: - return .equal - case .lessThanOrEqual: - return .lessThanOrEqual - case .greaterThanOrEqual: - return .greaterThanOrEqual - } - } - } -} diff --git a/Example/Pods/SnapKit/Source/ConstraintView+Extensions.swift b/Example/Pods/SnapKit/Source/ConstraintView+Extensions.swift deleted file mode 100644 index 77afad9..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintView+Extensions.swift +++ /dev/null @@ -1,152 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -public extension ConstraintView { - - @available(*, deprecated:3.0, message:"Use newer snp.* syntax.") - public var snp_left: ConstraintItem { return self.snp.left } - - @available(*, deprecated:3.0, message:"Use newer snp.* syntax.") - public var snp_top: ConstraintItem { return self.snp.top } - - @available(*, deprecated:3.0, message:"Use newer snp.* syntax.") - public var snp_right: ConstraintItem { return self.snp.right } - - @available(*, deprecated:3.0, message:"Use newer snp.* syntax.") - public var snp_bottom: ConstraintItem { return self.snp.bottom } - - @available(*, deprecated:3.0, message:"Use newer snp.* syntax.") - public var snp_leading: ConstraintItem { return self.snp.leading } - - @available(*, deprecated:3.0, message:"Use newer snp.* syntax.") - public var snp_trailing: ConstraintItem { return self.snp.trailing } - - @available(*, deprecated:3.0, message:"Use newer snp.* syntax.") - public var snp_width: ConstraintItem { return self.snp.width } - - @available(*, deprecated:3.0, message:"Use newer snp.* syntax.") - public var snp_height: ConstraintItem { return self.snp.height } - - @available(*, deprecated:3.0, message:"Use newer snp.* syntax.") - public var snp_centerX: ConstraintItem { return self.snp.centerX } - - @available(*, deprecated:3.0, message:"Use newer snp.* syntax.") - public var snp_centerY: ConstraintItem { return self.snp.centerY } - - @available(*, deprecated:3.0, message:"Use newer snp.* syntax.") - public var snp_baseline: ConstraintItem { return self.snp.baseline } - - @available(*, deprecated:3.0, message:"Use newer snp.* syntax.") - @available(iOS 8.0, OSX 10.11, *) - public var snp_lastBaseline: ConstraintItem { return self.snp.lastBaseline } - - @available(iOS, deprecated:3.0, message:"Use newer snp.* syntax.") - @available(iOS 8.0, OSX 10.11, *) - public var snp_firstBaseline: ConstraintItem { return self.snp.firstBaseline } - - @available(iOS, deprecated:3.0, message:"Use newer snp.* syntax.") - @available(iOS 8.0, *) - public var snp_leftMargin: ConstraintItem { return self.snp.leftMargin } - - @available(iOS, deprecated:3.0, message:"Use newer snp.* syntax.") - @available(iOS 8.0, *) - public var snp_topMargin: ConstraintItem { return self.snp.topMargin } - - @available(iOS, deprecated:3.0, message:"Use newer snp.* syntax.") - @available(iOS 8.0, *) - public var snp_rightMargin: ConstraintItem { return self.snp.rightMargin } - - @available(iOS, deprecated:3.0, message:"Use newer snp.* syntax.") - @available(iOS 8.0, *) - public var snp_bottomMargin: ConstraintItem { return self.snp.bottomMargin } - - @available(iOS, deprecated:3.0, message:"Use newer snp.* syntax.") - @available(iOS 8.0, *) - public var snp_leadingMargin: ConstraintItem { return self.snp.leadingMargin } - - @available(iOS, deprecated:3.0, message:"Use newer snp.* syntax.") - @available(iOS 8.0, *) - public var snp_trailingMargin: ConstraintItem { return self.snp.trailingMargin } - - @available(iOS, deprecated:3.0, message:"Use newer snp.* syntax.") - @available(iOS 8.0, *) - public var snp_centerXWithinMargins: ConstraintItem { return self.snp.centerXWithinMargins } - - @available(iOS, deprecated:3.0, message:"Use newer snp.* syntax.") - @available(iOS 8.0, *) - public var snp_centerYWithinMargins: ConstraintItem { return self.snp.centerYWithinMargins } - - @available(*, deprecated:3.0, message:"Use newer snp.* syntax.") - public var snp_edges: ConstraintItem { return self.snp.edges } - - @available(*, deprecated:3.0, message:"Use newer snp.* syntax.") - public var snp_size: ConstraintItem { return self.snp.size } - - @available(*, deprecated:3.0, message:"Use newer snp.* syntax.") - public var snp_center: ConstraintItem { return self.snp.center } - - @available(iOS, deprecated:3.0, message:"Use newer snp.* syntax.") - @available(iOS 8.0, *) - public var snp_margins: ConstraintItem { return self.snp.margins } - - @available(iOS, deprecated:3.0, message:"Use newer snp.* syntax.") - @available(iOS 8.0, *) - public var snp_centerWithinMargins: ConstraintItem { return self.snp.centerWithinMargins } - - @available(*, deprecated:3.0, message:"Use newer snp.* syntax.") - public func snp_prepareConstraints(_ closure: (_ make: ConstraintMaker) -> Void) -> [Constraint] { - return self.snp.prepareConstraints(closure) - } - - @available(*, deprecated:3.0, message:"Use newer snp.* syntax.") - public func snp_makeConstraints(_ closure: (_ make: ConstraintMaker) -> Void) { - self.snp.makeConstraints(closure) - } - - @available(*, deprecated:3.0, message:"Use newer snp.* syntax.") - public func snp_remakeConstraints(_ closure: (_ make: ConstraintMaker) -> Void) { - self.snp.remakeConstraints(closure) - } - - @available(*, deprecated:3.0, message:"Use newer snp.* syntax.") - public func snp_updateConstraints(_ closure: (_ make: ConstraintMaker) -> Void) { - self.snp.updateConstraints(closure) - } - - @available(*, deprecated:3.0, message:"Use newer snp.* syntax.") - public func snp_removeConstraints() { - self.snp.removeConstraints() - } - - public var snp: ConstraintViewDSL { - return ConstraintViewDSL(view: self) - } - -} diff --git a/Example/Pods/SnapKit/Source/ConstraintView.swift b/Example/Pods/SnapKit/Source/ConstraintView.swift deleted file mode 100644 index 6ff8a76..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintView.swift +++ /dev/null @@ -1,35 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -#if os(iOS) || os(tvOS) - public typealias ConstraintView = UIView -#else - public typealias ConstraintView = NSView -#endif diff --git a/Example/Pods/SnapKit/Source/ConstraintViewDSL.swift b/Example/Pods/SnapKit/Source/ConstraintViewDSL.swift deleted file mode 100644 index 298bdb1..0000000 --- a/Example/Pods/SnapKit/Source/ConstraintViewDSL.swift +++ /dev/null @@ -1,101 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -public struct ConstraintViewDSL: ConstraintAttributesDSL { - - @discardableResult - public func prepareConstraints(_ closure: (_ make: ConstraintMaker) -> Void) -> [Constraint] { - return ConstraintMaker.prepareConstraints(item: self.view, closure: closure) - } - - public func makeConstraints(_ closure: (_ make: ConstraintMaker) -> Void) { - ConstraintMaker.makeConstraints(item: self.view, closure: closure) - } - - public func remakeConstraints(_ closure: (_ make: ConstraintMaker) -> Void) { - ConstraintMaker.remakeConstraints(item: self.view, closure: closure) - } - - public func updateConstraints(_ closure: (_ make: ConstraintMaker) -> Void) { - ConstraintMaker.updateConstraints(item: self.view, closure: closure) - } - - public func removeConstraints() { - ConstraintMaker.removeConstraints(item: self.view) - } - - public var contentHuggingHorizontalPriority: Float { - get { - return self.view.contentHuggingPriority(for: .horizontal).rawValue - } - set { - self.view.setContentHuggingPriority(LayoutPriority(rawValue: newValue), for: .horizontal) - } - } - - public var contentHuggingVerticalPriority: Float { - get { - return self.view.contentHuggingPriority(for: .vertical).rawValue - } - set { - self.view.setContentHuggingPriority(LayoutPriority(rawValue: newValue), for: .vertical) - } - } - - public var contentCompressionResistanceHorizontalPriority: Float { - get { - return self.view.contentCompressionResistancePriority(for: .horizontal).rawValue - } - set { - self.view.setContentCompressionResistancePriority(LayoutPriority(rawValue: newValue), for: .horizontal) - } - } - - public var contentCompressionResistanceVerticalPriority: Float { - get { - return self.view.contentCompressionResistancePriority(for: .vertical).rawValue - } - set { - self.view.setContentCompressionResistancePriority(LayoutPriority(rawValue: newValue), for: .vertical) - } - } - - public var target: AnyObject? { - return self.view - } - - internal let view: ConstraintView - - internal init(view: ConstraintView) { - self.view = view - - } - -} diff --git a/Example/Pods/SnapKit/Source/Debugging.swift b/Example/Pods/SnapKit/Source/Debugging.swift deleted file mode 100644 index 55f5b87..0000000 --- a/Example/Pods/SnapKit/Source/Debugging.swift +++ /dev/null @@ -1,160 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - -public extension LayoutConstraint { - - override public var description: String { - var description = "<" - - description += descriptionForObject(self) - - if let firstItem = conditionalOptional(from: self.firstItem) { - description += " \(descriptionForObject(firstItem))" - } - - if self.firstAttribute != .notAnAttribute { - description += ".\(descriptionForAttribute(self.firstAttribute))" - } - - description += " \(descriptionForRelation(self.relation))" - - if let secondItem = self.secondItem { - description += " \(descriptionForObject(secondItem))" - } - - if self.secondAttribute != .notAnAttribute { - description += ".\(descriptionForAttribute(self.secondAttribute))" - } - - if self.multiplier != 1.0 { - description += " * \(self.multiplier)" - } - - if self.secondAttribute == .notAnAttribute { - description += " \(self.constant)" - } else { - if self.constant > 0.0 { - description += " + \(self.constant)" - } else if self.constant < 0.0 { - description += " - \(abs(self.constant))" - } - } - - if self.priority.rawValue != 1000.0 { - description += " ^\(self.priority)" - } - - description += ">" - - return description - } - -} - -private func descriptionForRelation(_ relation: LayoutRelation) -> String { - switch relation { - case .equal: return "==" - case .greaterThanOrEqual: return ">=" - case .lessThanOrEqual: return "<=" - } -} - -private func descriptionForAttribute(_ attribute: LayoutAttribute) -> String { - #if os(iOS) || os(tvOS) - switch attribute { - case .notAnAttribute: return "notAnAttribute" - case .top: return "top" - case .left: return "left" - case .bottom: return "bottom" - case .right: return "right" - case .leading: return "leading" - case .trailing: return "trailing" - case .width: return "width" - case .height: return "height" - case .centerX: return "centerX" - case .centerY: return "centerY" - case .lastBaseline: return "lastBaseline" - case .firstBaseline: return "firstBaseline" - case .topMargin: return "topMargin" - case .leftMargin: return "leftMargin" - case .bottomMargin: return "bottomMargin" - case .rightMargin: return "rightMargin" - case .leadingMargin: return "leadingMargin" - case .trailingMargin: return "trailingMargin" - case .centerXWithinMargins: return "centerXWithinMargins" - case .centerYWithinMargins: return "centerYWithinMargins" - } - #else - switch attribute { - case .notAnAttribute: return "notAnAttribute" - case .top: return "top" - case .left: return "left" - case .bottom: return "bottom" - case .right: return "right" - case .leading: return "leading" - case .trailing: return "trailing" - case .width: return "width" - case .height: return "height" - case .centerX: return "centerX" - case .centerY: return "centerY" - case .lastBaseline: return "lastBaseline" - case .firstBaseline: return "firstBaseline" - } - #endif -} - -private func conditionalOptional(from object: Optional) -> Optional { - return object -} - -private func conditionalOptional(from object: T) -> Optional { - return Optional.some(object) -} - -private func descriptionForObject(_ object: AnyObject) -> String { - let pointerDescription = String(format: "%p", UInt(bitPattern: ObjectIdentifier(object))) - var desc = "" - - desc += type(of: object).description() - - if let object = object as? ConstraintView { - desc += ":\(object.snp.label() ?? pointerDescription)" - } else if let object = object as? LayoutConstraint { - desc += ":\(object.label ?? pointerDescription)" - } else { - desc += ":\(pointerDescription)" - } - - if let object = object as? LayoutConstraint, let file = object.constraint?.sourceLocation.0, let line = object.constraint?.sourceLocation.1 { - desc += "@\((file as NSString).lastPathComponent)#\(line)" - } - - desc += "" - return desc -} diff --git a/Example/Pods/SnapKit/Source/LayoutConstraint.swift b/Example/Pods/SnapKit/Source/LayoutConstraint.swift deleted file mode 100644 index 8bb5ed2..0000000 --- a/Example/Pods/SnapKit/Source/LayoutConstraint.swift +++ /dev/null @@ -1,57 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -public class LayoutConstraint : NSLayoutConstraint { - - public var label: String? { - get { - return self.identifier - } - set { - self.identifier = newValue - } - } - - internal weak var constraint: Constraint? = nil - -} - -internal func ==(lhs: LayoutConstraint, rhs: LayoutConstraint) -> Bool { - guard lhs.firstItem === rhs.firstItem && - lhs.secondItem === rhs.secondItem && - lhs.firstAttribute == rhs.firstAttribute && - lhs.secondAttribute == rhs.secondAttribute && - lhs.relation == rhs.relation && - lhs.priority == rhs.priority && - lhs.multiplier == rhs.multiplier else { - return false - } - return true -} diff --git a/Example/Pods/SnapKit/Source/LayoutConstraintItem.swift b/Example/Pods/SnapKit/Source/LayoutConstraintItem.swift deleted file mode 100644 index a59de6b..0000000 --- a/Example/Pods/SnapKit/Source/LayoutConstraintItem.swift +++ /dev/null @@ -1,93 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#else - import AppKit -#endif - - -public protocol LayoutConstraintItem: class { -} - -@available(iOS 9.0, OSX 10.11, *) -extension ConstraintLayoutGuide : LayoutConstraintItem { -} - -extension ConstraintView : LayoutConstraintItem { -} - - -extension LayoutConstraintItem { - - internal func prepare() { - if let view = self as? ConstraintView { - view.translatesAutoresizingMaskIntoConstraints = false - } - } - - internal var superview: ConstraintView? { - if let view = self as? ConstraintView { - return view.superview - } - - if #available(iOS 9.0, OSX 10.11, *), let guide = self as? ConstraintLayoutGuide { - return guide.owningView - } - - return nil - } - internal var constraints: [Constraint] { - return self.constraintsSet.allObjects as! [Constraint] - } - - internal func add(constraints: [Constraint]) { - let constraintsSet = self.constraintsSet - for constraint in constraints { - constraintsSet.add(constraint) - } - } - - internal func remove(constraints: [Constraint]) { - let constraintsSet = self.constraintsSet - for constraint in constraints { - constraintsSet.remove(constraint) - } - } - - private var constraintsSet: NSMutableSet { - let constraintsSet: NSMutableSet - - if let existing = objc_getAssociatedObject(self, &constraintsKey) as? NSMutableSet { - constraintsSet = existing - } else { - constraintsSet = NSMutableSet() - objc_setAssociatedObject(self, &constraintsKey, constraintsSet, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) - } - return constraintsSet - - } - -} -private var constraintsKey: UInt8 = 0 diff --git a/Example/Pods/SnapKit/Source/Typealiases.swift b/Example/Pods/SnapKit/Source/Typealiases.swift deleted file mode 100644 index ded96cc..0000000 --- a/Example/Pods/SnapKit/Source/Typealiases.swift +++ /dev/null @@ -1,42 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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 Foundation - -#if os(iOS) || os(tvOS) - import UIKit -#if swift(>=4.2) - typealias LayoutRelation = NSLayoutConstraint.Relation - typealias LayoutAttribute = NSLayoutConstraint.Attribute -#else - typealias LayoutRelation = NSLayoutRelation - typealias LayoutAttribute = NSLayoutAttribute -#endif - typealias LayoutPriority = UILayoutPriority -#else - import AppKit - typealias LayoutRelation = NSLayoutConstraint.Relation - typealias LayoutAttribute = NSLayoutConstraint.Attribute - typealias LayoutPriority = NSLayoutConstraint.Priority -#endif - diff --git a/Example/Pods/SnapKit/Source/UILayoutSupport+Extensions.swift b/Example/Pods/SnapKit/Source/UILayoutSupport+Extensions.swift deleted file mode 100644 index cfbce2e..0000000 --- a/Example/Pods/SnapKit/Source/UILayoutSupport+Extensions.swift +++ /dev/null @@ -1,36 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit -// -// 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. - -#if os(iOS) || os(tvOS) - import UIKit -#endif - - -@available(iOS 8.0, *) -public extension ConstraintLayoutSupport { - - public var snp: ConstraintLayoutSupportDSL { - return ConstraintLayoutSupportDSL(support: self) - } - -} diff --git a/Example/Pods/Target Support Files/JXBanner/JXBanner-Info.plist b/Example/Pods/Target Support Files/JXBanner/JXBanner-Info.plist deleted file mode 100644 index 161a9d3..0000000 --- a/Example/Pods/Target Support Files/JXBanner/JXBanner-Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 0.1.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Example/Pods/Target Support Files/JXBanner/JXBanner-dummy.m b/Example/Pods/Target Support Files/JXBanner/JXBanner-dummy.m deleted file mode 100644 index c9c0489..0000000 --- a/Example/Pods/Target Support Files/JXBanner/JXBanner-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_JXBanner : NSObject -@end -@implementation PodsDummy_JXBanner -@end diff --git a/Example/Pods/Target Support Files/JXBanner/JXBanner-prefix.pch b/Example/Pods/Target Support Files/JXBanner/JXBanner-prefix.pch deleted file mode 100644 index beb2a24..0000000 --- a/Example/Pods/Target Support Files/JXBanner/JXBanner-prefix.pch +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - diff --git a/Example/Pods/Target Support Files/JXBanner/JXBanner-umbrella.h b/Example/Pods/Target Support Files/JXBanner/JXBanner-umbrella.h deleted file mode 100644 index 0485fb7..0000000 --- a/Example/Pods/Target Support Files/JXBanner/JXBanner-umbrella.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - - -FOUNDATION_EXPORT double JXBannerVersionNumber; -FOUNDATION_EXPORT const unsigned char JXBannerVersionString[]; - diff --git a/Example/Pods/Target Support Files/JXBanner/JXBanner.modulemap b/Example/Pods/Target Support Files/JXBanner/JXBanner.modulemap deleted file mode 100644 index 0769c24..0000000 --- a/Example/Pods/Target Support Files/JXBanner/JXBanner.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module JXBanner { - umbrella header "JXBanner-umbrella.h" - - export * - module * { export * } -} diff --git a/Example/Pods/Target Support Files/JXBanner/JXBanner.xcconfig b/Example/Pods/Target Support Files/JXBanner/JXBanner.xcconfig deleted file mode 100644 index 775ac24..0000000 --- a/Example/Pods/Target Support Files/JXBanner/JXBanner.xcconfig +++ /dev/null @@ -1,10 +0,0 @@ -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/JXBanner -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/JXPageControl" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES diff --git a/Example/Pods/Target Support Files/JXPageControl/JXPageControl-Info.plist b/Example/Pods/Target Support Files/JXPageControl/JXPageControl-Info.plist deleted file mode 100644 index 9fb50da..0000000 --- a/Example/Pods/Target Support Files/JXPageControl/JXPageControl-Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 0.1.3 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Example/Pods/Target Support Files/JXPageControl/JXPageControl-dummy.m b/Example/Pods/Target Support Files/JXPageControl/JXPageControl-dummy.m deleted file mode 100644 index cb4ccc8..0000000 --- a/Example/Pods/Target Support Files/JXPageControl/JXPageControl-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_JXPageControl : NSObject -@end -@implementation PodsDummy_JXPageControl -@end diff --git a/Example/Pods/Target Support Files/JXPageControl/JXPageControl-prefix.pch b/Example/Pods/Target Support Files/JXPageControl/JXPageControl-prefix.pch deleted file mode 100644 index beb2a24..0000000 --- a/Example/Pods/Target Support Files/JXPageControl/JXPageControl-prefix.pch +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - diff --git a/Example/Pods/Target Support Files/JXPageControl/JXPageControl-umbrella.h b/Example/Pods/Target Support Files/JXPageControl/JXPageControl-umbrella.h deleted file mode 100644 index a821733..0000000 --- a/Example/Pods/Target Support Files/JXPageControl/JXPageControl-umbrella.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - - -FOUNDATION_EXPORT double JXPageControlVersionNumber; -FOUNDATION_EXPORT const unsigned char JXPageControlVersionString[]; - diff --git a/Example/Pods/Target Support Files/JXPageControl/JXPageControl.modulemap b/Example/Pods/Target Support Files/JXPageControl/JXPageControl.modulemap deleted file mode 100644 index 73a2153..0000000 --- a/Example/Pods/Target Support Files/JXPageControl/JXPageControl.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module JXPageControl { - umbrella header "JXPageControl-umbrella.h" - - export * - module * { export * } -} diff --git a/Example/Pods/Target Support Files/JXPageControl/JXPageControl.xcconfig b/Example/Pods/Target Support Files/JXPageControl/JXPageControl.xcconfig deleted file mode 100644 index 525d14a..0000000 --- a/Example/Pods/Target Support Files/JXPageControl/JXPageControl.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/JXPageControl -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/JXPageControl -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES diff --git a/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example-Info.plist b/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example-Info.plist deleted file mode 100644 index 2243fe6..0000000 --- a/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example-Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example-acknowledgements.markdown b/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example-acknowledgements.markdown deleted file mode 100644 index 7357801..0000000 --- a/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example-acknowledgements.markdown +++ /dev/null @@ -1,72 +0,0 @@ -# Acknowledgements -This application makes use of the following third party libraries: - -## JXBanner - -Copyright (c) 2019 Code_TanJX - -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. - - -## JXPageControl - -Copyright (c) 2019 bboyXFX - -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. - - -## SnapKit - -Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit - -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. - -Generated by CocoaPods - https://cocoapods.org diff --git a/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example-acknowledgements.plist deleted file mode 100644 index fd1f42c..0000000 --- a/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example-acknowledgements.plist +++ /dev/null @@ -1,116 +0,0 @@ - - - - - PreferenceSpecifiers - - - FooterText - This application makes use of the following third party libraries: - Title - Acknowledgements - Type - PSGroupSpecifier - - - FooterText - Copyright (c) 2019 Code_TanJX <code_tanjx@163.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. - - License - MIT - Title - JXBanner - Type - PSGroupSpecifier - - - FooterText - Copyright (c) 2019 bboyXFX <jaixiang.tan@net263.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. - - License - MIT - Title - JXPageControl - Type - PSGroupSpecifier - - - FooterText - Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit - -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. - - License - MIT - Title - SnapKit - Type - PSGroupSpecifier - - - FooterText - Generated by CocoaPods - https://cocoapods.org - Title - - Type - PSGroupSpecifier - - - StringsTable - Acknowledgements - Title - Acknowledgements - - diff --git a/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example-dummy.m b/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example-dummy.m deleted file mode 100644 index 653378e..0000000 --- a/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_Pods_JXBanner_Example : NSObject -@end -@implementation PodsDummy_Pods_JXBanner_Example -@end diff --git a/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example-frameworks.sh b/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example-frameworks.sh deleted file mode 100755 index 4be0ce8..0000000 --- a/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example-frameworks.sh +++ /dev/null @@ -1,167 +0,0 @@ -#!/bin/sh -set -e -set -u -set -o pipefail - -function on_error { - echo "$(realpath -mq "${0}"):$1: error: Unexpected failure" -} -trap 'on_error $LINENO' ERR - -if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then - # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy - # frameworks to, so exit 0 (signalling the script phase was successful). - exit 0 -fi - -echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" -mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - -COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" -SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" - -# Used as a return value for each invocation of `strip_invalid_archs` function. -STRIP_BINARY_RETVAL=0 - -# This protects against multiple targets copying the same framework dependency at the same time. The solution -# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html -RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") - -# Copies and strips a vendored framework -install_framework() -{ - if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then - local source="${BUILT_PRODUCTS_DIR}/$1" - elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then - local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" - elif [ -r "$1" ]; then - local source="$1" - fi - - local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - - if [ -L "${source}" ]; then - echo "Symlinked..." - source="$(readlink "${source}")" - fi - - # Use filter instead of exclude so missing patterns don't throw errors. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" - - local basename - basename="$(basename -s .framework "$1")" - binary="${destination}/${basename}.framework/${basename}" - - if ! [ -r "$binary" ]; then - binary="${destination}/${basename}" - elif [ -L "${binary}" ]; then - echo "Destination binary is symlinked..." - dirname="$(dirname "${binary}")" - binary="${dirname}/$(readlink "${binary}")" - fi - - # Strip invalid architectures so "fat" simulator / device frameworks work on device - if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then - strip_invalid_archs "$binary" - fi - - # Resign the code if required by the build settings to avoid unstable apps - code_sign_if_enabled "${destination}/$(basename "$1")" - - # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. - if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then - local swift_runtime_libs - swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u) - for lib in $swift_runtime_libs; do - echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" - rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" - code_sign_if_enabled "${destination}/${lib}" - done - fi -} - -# Copies and strips a vendored dSYM -install_dsym() { - local source="$1" - if [ -r "$source" ]; then - # Copy the dSYM into a the targets temp dir. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" - - local basename - basename="$(basename -s .framework.dSYM "$source")" - binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" - - # Strip invalid architectures so "fat" simulator / device frameworks work on device - if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then - strip_invalid_archs "$binary" - fi - - if [[ $STRIP_BINARY_RETVAL == 1 ]]; then - # Move the stripped file into its final destination. - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" - else - # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. - touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" - fi - fi -} - -# Signs a framework with the provided identity -code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then - # Use the current code_sign_identity - echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" - - if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - code_sign_cmd="$code_sign_cmd &" - fi - echo "$code_sign_cmd" - eval "$code_sign_cmd" - fi -} - -# Strip invalid architectures -strip_invalid_archs() { - binary="$1" - # Get architectures for current target binary - binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" - # Intersect them with the architectures we are building for - intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" - # If there are no archs supported by this binary then warn the user - if [[ -z "$intersected_archs" ]]; then - echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." - STRIP_BINARY_RETVAL=0 - return - fi - stripped="" - for arch in $binary_archs; do - if ! [[ "${ARCHS}" == *"$arch"* ]]; then - # Strip non-valid architectures in-place - lipo -remove "$arch" -output "$binary" "$binary" - stripped="$stripped $arch" - fi - done - if [[ "$stripped" ]]; then - echo "Stripped $binary of architectures:$stripped" - fi - STRIP_BINARY_RETVAL=1 -} - - -if [[ "$CONFIGURATION" == "Debug" ]]; then - install_framework "${BUILT_PRODUCTS_DIR}/JXBanner/JXBanner.framework" - install_framework "${BUILT_PRODUCTS_DIR}/JXPageControl/JXPageControl.framework" - install_framework "${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework" -fi -if [[ "$CONFIGURATION" == "Release" ]]; then - install_framework "${BUILT_PRODUCTS_DIR}/JXBanner/JXBanner.framework" - install_framework "${BUILT_PRODUCTS_DIR}/JXPageControl/JXPageControl.framework" - install_framework "${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework" -fi -if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - wait -fi diff --git a/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example-umbrella.h b/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example-umbrella.h deleted file mode 100644 index 3a170fa..0000000 --- a/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example-umbrella.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - - -FOUNDATION_EXPORT double Pods_JXBanner_ExampleVersionNumber; -FOUNDATION_EXPORT const unsigned char Pods_JXBanner_ExampleVersionString[]; - diff --git a/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example.debug.xcconfig b/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example.debug.xcconfig deleted file mode 100644 index bb2c65b..0000000 --- a/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example.debug.xcconfig +++ /dev/null @@ -1,11 +0,0 @@ -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/JXBanner" "${PODS_CONFIGURATION_BUILD_DIR}/JXPageControl" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/JXBanner/JXBanner.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXPageControl/JXPageControl.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.framework/Headers" -LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_LDFLAGS = $(inherited) -framework "JXBanner" -framework "JXPageControl" -framework "SnapKit" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_PODFILE_DIR_PATH = ${SRCROOT}/. -PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example.modulemap b/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example.modulemap deleted file mode 100644 index 6daf561..0000000 --- a/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module Pods_JXBanner_Example { - umbrella header "Pods-JXBanner_Example-umbrella.h" - - export * - module * { export * } -} diff --git a/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example.release.xcconfig b/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example.release.xcconfig deleted file mode 100644 index bb2c65b..0000000 --- a/Example/Pods/Target Support Files/Pods-JXBanner_Example/Pods-JXBanner_Example.release.xcconfig +++ /dev/null @@ -1,11 +0,0 @@ -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES -FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/JXBanner" "${PODS_CONFIGURATION_BUILD_DIR}/JXPageControl" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/JXBanner/JXBanner.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/JXPageControl/JXPageControl.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.framework/Headers" -LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_LDFLAGS = $(inherited) -framework "JXBanner" -framework "JXPageControl" -framework "SnapKit" -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_PODFILE_DIR_PATH = ${SRCROOT}/. -PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/SnapKit/SnapKit-Info.plist b/Example/Pods/Target Support Files/SnapKit/SnapKit-Info.plist deleted file mode 100644 index 6631be7..0000000 --- a/Example/Pods/Target Support Files/SnapKit/SnapKit-Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 4.2.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - - - diff --git a/Example/Pods/Target Support Files/SnapKit/SnapKit-dummy.m b/Example/Pods/Target Support Files/SnapKit/SnapKit-dummy.m deleted file mode 100644 index b44e8e5..0000000 --- a/Example/Pods/Target Support Files/SnapKit/SnapKit-dummy.m +++ /dev/null @@ -1,5 +0,0 @@ -#import -@interface PodsDummy_SnapKit : NSObject -@end -@implementation PodsDummy_SnapKit -@end diff --git a/Example/Pods/Target Support Files/SnapKit/SnapKit-prefix.pch b/Example/Pods/Target Support Files/SnapKit/SnapKit-prefix.pch deleted file mode 100644 index beb2a24..0000000 --- a/Example/Pods/Target Support Files/SnapKit/SnapKit-prefix.pch +++ /dev/null @@ -1,12 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - diff --git a/Example/Pods/Target Support Files/SnapKit/SnapKit-umbrella.h b/Example/Pods/Target Support Files/SnapKit/SnapKit-umbrella.h deleted file mode 100644 index 1b1be64..0000000 --- a/Example/Pods/Target Support Files/SnapKit/SnapKit-umbrella.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifdef __OBJC__ -#import -#else -#ifndef FOUNDATION_EXPORT -#if defined(__cplusplus) -#define FOUNDATION_EXPORT extern "C" -#else -#define FOUNDATION_EXPORT extern -#endif -#endif -#endif - - -FOUNDATION_EXPORT double SnapKitVersionNumber; -FOUNDATION_EXPORT const unsigned char SnapKitVersionString[]; - diff --git a/Example/Pods/Target Support Files/SnapKit/SnapKit.modulemap b/Example/Pods/Target Support Files/SnapKit/SnapKit.modulemap deleted file mode 100644 index 4b3e47b..0000000 --- a/Example/Pods/Target Support Files/SnapKit/SnapKit.modulemap +++ /dev/null @@ -1,6 +0,0 @@ -framework module SnapKit { - umbrella header "SnapKit-umbrella.h" - - export * - module * { export * } -} diff --git a/Example/Pods/Target Support Files/SnapKit/SnapKit.xcconfig b/Example/Pods/Target Support Files/SnapKit/SnapKit.xcconfig deleted file mode 100644 index 5ba2657..0000000 --- a/Example/Pods/Target Support Files/SnapKit/SnapKit.xcconfig +++ /dev/null @@ -1,9 +0,0 @@ -CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SnapKit -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -PODS_BUILD_DIR = ${BUILD_DIR} -PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) -PODS_ROOT = ${SRCROOT} -PODS_TARGET_SRCROOT = ${PODS_ROOT}/SnapKit -PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} -SKIP_INSTALL = YES