diff --git a/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/CRRefresh.podspec b/CRRefresh.podspec index 8f94599..74e7628 100644 --- a/CRRefresh.podspec +++ b/CRRefresh.podspec @@ -9,16 +9,16 @@ Pod::Spec.new do |s| s.name = "CRRefresh" - s.version = "1.1.3" + s.version = "1.1.4" s.summary = "An easy way to use pull-to-refresh" s.homepage = "https://github.com/CRAnimation/CRRefresh" s.license = 'MIT' s.author = { "W_C__L" => "wangchonglei93@icloud.com" } - s.platform = :ios, "8.0" - s.swift_version = '4.2' + s.platform = :ios, "9.0" + s.swift_version = '5.0' s.source = { :git => "https://github.com/CRAnimation/CRRefresh.git", :tag => s.version.to_s } - s.source_files = ['CRRefresh/CRRefresh/*.{swift}','CRRefresh/CRRefresh/Animators/**/*.{swift}'] - s.resources = 'CRRefresh/CRRefresh/Animators/**/*.{bundle}' + s.source_files = ['Sources/CRRefresh/*.{swift}','Sources/CRRefresh/Animators/**/*.{swift}'] + s.resources = 'Sources/CRRefresh/Animators/**/*.{bundle}' s.frameworks = "UIKit" s.requires_arc = true diff --git a/CRRefresh/Info.plist b/CRRefresh/Info.plist deleted file mode 100644 index fbe1e6b..0000000 --- a/CRRefresh/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/Demo/BaseViewController.swift b/Demo/BaseViewController.swift index ca59577..14d358f 100644 --- a/Demo/BaseViewController.swift +++ b/Demo/BaseViewController.swift @@ -205,7 +205,7 @@ func getSystemVersion() -> Double { } public extension UIColor { - public convenience init(rgb: (r: CGFloat, g: CGFloat, b: CGFloat)) { + convenience init(rgb: (r: CGFloat, g: CGFloat, b: CGFloat)) { self.init(red: rgb.r/255, green: rgb.g/255, blue: rgb.b/255, alpha: 1.0) } } diff --git a/CRRefresh.xcodeproj/project.pbxproj b/Demo/CRRefresh.xcodeproj/project.pbxproj similarity index 61% rename from CRRefresh.xcodeproj/project.pbxproj rename to Demo/CRRefresh.xcodeproj/project.pbxproj index 03579b0..55171c7 100644 --- a/CRRefresh.xcodeproj/project.pbxproj +++ b/Demo/CRRefresh.xcodeproj/project.pbxproj @@ -7,42 +7,43 @@ objects = { /* Begin PBXBuildFile section */ - 9702BC8A1E7A8F1800705296 /* NormalFooter.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 9702BC861E7A8F1800705296 /* NormalFooter.bundle */; }; - 9702BC8B1E7A8F1800705296 /* NormalFooterAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9702BC871E7A8F1800705296 /* NormalFooterAnimator.swift */; }; - 9702BC8C1E7A8F1800705296 /* NormalHeader.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 9702BC881E7A8F1800705296 /* NormalHeader.bundle */; }; - 9702BC8D1E7A8F1800705296 /* NormalHeaderAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9702BC891E7A8F1800705296 /* NormalHeaderAnimator.swift */; }; - 9717BBAA1EB1C01E00AD6864 /* FastCheckLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9717BBA91EB1C01E00AD6864 /* FastCheckLayer.swift */; }; - 974647E31E8A4F93003A3019 /* FastAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 974647E01E8A4F93003A3019 /* FastAnimator.swift */; }; - 974647E41E8A4F93003A3019 /* FastArrowLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 974647E11E8A4F93003A3019 /* FastArrowLayer.swift */; }; - 974647E51E8A4F93003A3019 /* FastCircleLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 974647E21E8A4F93003A3019 /* FastCircleLayer.swift */; }; - 974647E71E8A545B003A3019 /* FastLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 974647E61E8A545B003A3019 /* FastLayer.swift */; }; - 9753C6691E76A12A00CCBBA0 /* SlackLoadingAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753C65B1E76A12A00CCBBA0 /* SlackLoadingAnimator.swift */; }; - 9753C66A1E76A12A00CCBBA0 /* WCLLoadingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753C65C1E76A12A00CCBBA0 /* WCLLoadingView.swift */; }; - 9753C66B1E76A12A00CCBBA0 /* CRRefreshAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753C65D1E76A12A00CCBBA0 /* CRRefreshAnimator.swift */; }; - 9753C66C1E76A12A00CCBBA0 /* CRRefreshBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753C65E1E76A12A00CCBBA0 /* CRRefreshBundle.swift */; }; - 9753C66D1E76A12A00CCBBA0 /* CRRefreshComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753C65F1E76A12A00CCBBA0 /* CRRefreshComponent.swift */; }; - 9753C66E1E76A12A00CCBBA0 /* CRRefreshExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753C6601E76A12A00CCBBA0 /* CRRefreshExtension.swift */; }; - 9753C66F1E76A12A00CCBBA0 /* CRRefreshFooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753C6611E76A12A00CCBBA0 /* CRRefreshFooterView.swift */; }; - 9753C6701E76A12A00CCBBA0 /* CRRefreshHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753C6621E76A12A00CCBBA0 /* CRRefreshHeaderView.swift */; }; - 9753C6711E76A12A00CCBBA0 /* CRRefreshProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753C6631E76A12A00CCBBA0 /* CRRefreshProtocol.swift */; }; - 9753C67A1E76A13C00CCBBA0 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753C6791E76A13C00CCBBA0 /* AppDelegate.swift */; }; - 9753C67C1E76A13C00CCBBA0 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753C67B1E76A13C00CCBBA0 /* ViewController.swift */; }; - 9753C6811E76A13C00CCBBA0 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9753C6801E76A13C00CCBBA0 /* Assets.xcassets */; }; - 9753C6841E76A13C00CCBBA0 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9753C6821E76A13C00CCBBA0 /* LaunchScreen.storyboard */; }; - 9753C68C1E76A16D00CCBBA0 /* BaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753C6891E76A16D00CCBBA0 /* BaseViewController.swift */; }; - 9753C68D1E76A16D00CCBBA0 /* NavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753C68A1E76A16D00CCBBA0 /* NavigationController.swift */; }; - 9753C68E1E76A16D00CCBBA0 /* RefreshController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753C68B1E76A16D00CCBBA0 /* RefreshController.swift */; }; - 9753C6941E76A1D500CCBBA0 /* NormalCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753C6901E76A1D500CCBBA0 /* NormalCell.swift */; }; - 9753C6951E76A1D500CCBBA0 /* NormalCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9753C6911E76A1D500CCBBA0 /* NormalCell.xib */; }; - 9753C6961E76A1D500CCBBA0 /* RefreshCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753C6921E76A1D500CCBBA0 /* RefreshCell.swift */; }; - 9753C6971E76A1D500CCBBA0 /* RefreshCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9753C6931E76A1D500CCBBA0 /* RefreshCell.xib */; }; + 3E265D092528F20D00C3D489 /* CRRefreshAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265CEC2528F20D00C3D489 /* CRRefreshAnimator.swift */; }; + 3E265D0A2528F20D00C3D489 /* UIColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265CED2528F20D00C3D489 /* UIColorExtension.swift */; }; + 3E265D0B2528F20D00C3D489 /* RamotionBounceLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265CF02528F20D00C3D489 /* RamotionBounceLayer.swift */; }; + 3E265D0C2528F20D00C3D489 /* RamotionAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265CF12528F20D00C3D489 /* RamotionAnimator.swift */; }; + 3E265D0D2528F20D00C3D489 /* RamotionWaveLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265CF22528F20D00C3D489 /* RamotionWaveLayer.swift */; }; + 3E265D0E2528F20D00C3D489 /* RamotionBallLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265CF32528F20D00C3D489 /* RamotionBallLayer.swift */; }; + 3E265D0F2528F20D00C3D489 /* SlackLoadingAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265CF52528F20D00C3D489 /* SlackLoadingAnimator.swift */; }; + 3E265D102528F20D00C3D489 /* WCLLoadingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265CF62528F20D00C3D489 /* WCLLoadingView.swift */; }; + 3E265D112528F20D00C3D489 /* FastAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265CF82528F20D00C3D489 /* FastAnimator.swift */; }; + 3E265D122528F20D00C3D489 /* FastLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265CF92528F20D00C3D489 /* FastLayer.swift */; }; + 3E265D132528F20D00C3D489 /* FastArrowLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265CFA2528F20D00C3D489 /* FastArrowLayer.swift */; }; + 3E265D142528F20D00C3D489 /* FastCheckLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265CFB2528F20D00C3D489 /* FastCheckLayer.swift */; }; + 3E265D152528F20D00C3D489 /* FastCircleLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265CFC2528F20D00C3D489 /* FastCircleLayer.swift */; }; + 3E265D162528F20D00C3D489 /* NormalHeader.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 3E265CFE2528F20D00C3D489 /* NormalHeader.bundle */; }; + 3E265D172528F20D00C3D489 /* NormalHeaderAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265CFF2528F20D00C3D489 /* NormalHeaderAnimator.swift */; }; + 3E265D182528F20D00C3D489 /* NormalFooterAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265D002528F20D00C3D489 /* NormalFooterAnimator.swift */; }; + 3E265D192528F20D00C3D489 /* NormalFooter.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 3E265D012528F20D00C3D489 /* NormalFooter.bundle */; }; + 3E265D1A2528F20D00C3D489 /* CRRefreshBundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265D022528F20D00C3D489 /* CRRefreshBundle.swift */; }; + 3E265D1B2528F20D00C3D489 /* CRRefreshHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265D032528F20D00C3D489 /* CRRefreshHeaderView.swift */; }; + 3E265D1C2528F20D00C3D489 /* CRRefreshExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265D042528F20D00C3D489 /* CRRefreshExtension.swift */; }; + 3E265D1D2528F20D00C3D489 /* CRRefreshProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265D052528F20D00C3D489 /* CRRefreshProtocol.swift */; }; + 3E265D1E2528F20D00C3D489 /* CRRefreshComponent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265D062528F20D00C3D489 /* CRRefreshComponent.swift */; }; + 3E265D1F2528F20D00C3D489 /* CRRefreshFooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265D072528F20D00C3D489 /* CRRefreshFooterView.swift */; }; + 3E265D342528F22600C3D489 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265D232528F22600C3D489 /* ViewController.swift */; }; + 3E265D352528F22600C3D489 /* NormalCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265D252528F22600C3D489 /* NormalCell.swift */; }; + 3E265D362528F22600C3D489 /* NormalCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3E265D262528F22600C3D489 /* NormalCell.xib */; }; + 3E265D372528F22600C3D489 /* RefreshCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3E265D272528F22600C3D489 /* RefreshCell.xib */; }; + 3E265D382528F22600C3D489 /* RefreshCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265D282528F22600C3D489 /* RefreshCell.swift */; }; + 3E265D392528F22600C3D489 /* BaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265D2C2528F22600C3D489 /* BaseViewController.swift */; }; + 3E265D3A2528F22600C3D489 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3E265D2D2528F22600C3D489 /* Assets.xcassets */; }; + 3E265D3B2528F22600C3D489 /* RefreshController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265D2E2528F22600C3D489 /* RefreshController.swift */; }; + 3E265D3C2528F22600C3D489 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3E265D2F2528F22600C3D489 /* LaunchScreen.storyboard */; }; + 3E265D3D2528F22600C3D489 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265D312528F22600C3D489 /* AppDelegate.swift */; }; + 3E265D3E2528F22600C3D489 /* NavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E265D322528F22600C3D489 /* NavigationController.swift */; }; + 3E265D3F2528F22600C3D489 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3E265D332528F22600C3D489 /* Info.plist */; }; 9753C6981E76A28300CCBBA0 /* CRRefresh.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9753C6461E76A0D200CCBBA0 /* CRRefresh.framework */; settings = {ATTRIBUTES = (Required, ); }; }; 9753C69D1E76A4EE00CCBBA0 /* CRRefresh.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9753C6461E76A0D200CCBBA0 /* CRRefresh.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 9753C6A01E76B36300CCBBA0 /* RamotionAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753C69F1E76B36300CCBBA0 /* RamotionAnimator.swift */; }; - 9753C6A81E76F88A00CCBBA0 /* RamotionWaveLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753C6A71E76F88A00CCBBA0 /* RamotionWaveLayer.swift */; }; - 9753C6AA1E77755600CCBBA0 /* RamotionBounceLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753C6A91E77755600CCBBA0 /* RamotionBounceLayer.swift */; }; - 9753C6AC1E77C2E000CCBBA0 /* RamotionBallLayer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9753C6AB1E77C2E000CCBBA0 /* RamotionBallLayer.swift */; }; - 97884D03200DD20A0017692A /* UIColorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97884D02200DD20A0017692A /* UIColorExtension.swift */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -59,44 +60,43 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 9702BC861E7A8F1800705296 /* NormalFooter.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = NormalFooter.bundle; sourceTree = ""; }; - 9702BC871E7A8F1800705296 /* NormalFooterAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NormalFooterAnimator.swift; sourceTree = ""; }; - 9702BC881E7A8F1800705296 /* NormalHeader.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = NormalHeader.bundle; sourceTree = ""; }; - 9702BC891E7A8F1800705296 /* NormalHeaderAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NormalHeaderAnimator.swift; sourceTree = ""; }; - 9717BBA91EB1C01E00AD6864 /* FastCheckLayer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FastCheckLayer.swift; sourceTree = ""; }; - 974647E01E8A4F93003A3019 /* FastAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FastAnimator.swift; sourceTree = ""; }; - 974647E11E8A4F93003A3019 /* FastArrowLayer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FastArrowLayer.swift; sourceTree = ""; }; - 974647E21E8A4F93003A3019 /* FastCircleLayer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FastCircleLayer.swift; sourceTree = ""; }; - 974647E61E8A545B003A3019 /* FastLayer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FastLayer.swift; sourceTree = ""; }; + 3E265CEC2528F20D00C3D489 /* CRRefreshAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRRefreshAnimator.swift; sourceTree = ""; }; + 3E265CED2528F20D00C3D489 /* UIColorExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorExtension.swift; sourceTree = ""; }; + 3E265CF02528F20D00C3D489 /* RamotionBounceLayer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RamotionBounceLayer.swift; sourceTree = ""; }; + 3E265CF12528F20D00C3D489 /* RamotionAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RamotionAnimator.swift; sourceTree = ""; }; + 3E265CF22528F20D00C3D489 /* RamotionWaveLayer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RamotionWaveLayer.swift; sourceTree = ""; }; + 3E265CF32528F20D00C3D489 /* RamotionBallLayer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RamotionBallLayer.swift; sourceTree = ""; }; + 3E265CF52528F20D00C3D489 /* SlackLoadingAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SlackLoadingAnimator.swift; sourceTree = ""; }; + 3E265CF62528F20D00C3D489 /* WCLLoadingView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WCLLoadingView.swift; sourceTree = ""; }; + 3E265CF82528F20D00C3D489 /* FastAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FastAnimator.swift; sourceTree = ""; }; + 3E265CF92528F20D00C3D489 /* FastLayer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FastLayer.swift; sourceTree = ""; }; + 3E265CFA2528F20D00C3D489 /* FastArrowLayer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FastArrowLayer.swift; sourceTree = ""; }; + 3E265CFB2528F20D00C3D489 /* FastCheckLayer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FastCheckLayer.swift; sourceTree = ""; }; + 3E265CFC2528F20D00C3D489 /* FastCircleLayer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FastCircleLayer.swift; sourceTree = ""; }; + 3E265CFE2528F20D00C3D489 /* NormalHeader.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = NormalHeader.bundle; sourceTree = ""; }; + 3E265CFF2528F20D00C3D489 /* NormalHeaderAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NormalHeaderAnimator.swift; sourceTree = ""; }; + 3E265D002528F20D00C3D489 /* NormalFooterAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NormalFooterAnimator.swift; sourceTree = ""; }; + 3E265D012528F20D00C3D489 /* NormalFooter.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = NormalFooter.bundle; sourceTree = ""; }; + 3E265D022528F20D00C3D489 /* CRRefreshBundle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRRefreshBundle.swift; sourceTree = ""; }; + 3E265D032528F20D00C3D489 /* CRRefreshHeaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRRefreshHeaderView.swift; sourceTree = ""; }; + 3E265D042528F20D00C3D489 /* CRRefreshExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRRefreshExtension.swift; sourceTree = ""; }; + 3E265D052528F20D00C3D489 /* CRRefreshProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRRefreshProtocol.swift; sourceTree = ""; }; + 3E265D062528F20D00C3D489 /* CRRefreshComponent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRRefreshComponent.swift; sourceTree = ""; }; + 3E265D072528F20D00C3D489 /* CRRefreshFooterView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRRefreshFooterView.swift; sourceTree = ""; }; + 3E265D232528F22600C3D489 /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 3E265D252528F22600C3D489 /* NormalCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NormalCell.swift; sourceTree = ""; }; + 3E265D262528F22600C3D489 /* NormalCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = NormalCell.xib; sourceTree = ""; }; + 3E265D272528F22600C3D489 /* RefreshCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RefreshCell.xib; sourceTree = ""; }; + 3E265D282528F22600C3D489 /* RefreshCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RefreshCell.swift; sourceTree = ""; }; + 3E265D2C2528F22600C3D489 /* BaseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseViewController.swift; sourceTree = ""; }; + 3E265D2D2528F22600C3D489 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 3E265D2E2528F22600C3D489 /* RefreshController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RefreshController.swift; sourceTree = ""; }; + 3E265D302528F22600C3D489 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 3E265D312528F22600C3D489 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 3E265D322528F22600C3D489 /* NavigationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigationController.swift; sourceTree = ""; }; + 3E265D332528F22600C3D489 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 9753C6461E76A0D200CCBBA0 /* CRRefresh.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CRRefresh.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9753C64A1E76A0D200CCBBA0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 9753C65B1E76A12A00CCBBA0 /* SlackLoadingAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SlackLoadingAnimator.swift; sourceTree = ""; }; - 9753C65C1E76A12A00CCBBA0 /* WCLLoadingView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WCLLoadingView.swift; sourceTree = ""; }; - 9753C65D1E76A12A00CCBBA0 /* CRRefreshAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRRefreshAnimator.swift; sourceTree = ""; }; - 9753C65E1E76A12A00CCBBA0 /* CRRefreshBundle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRRefreshBundle.swift; sourceTree = ""; }; - 9753C65F1E76A12A00CCBBA0 /* CRRefreshComponent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRRefreshComponent.swift; sourceTree = ""; }; - 9753C6601E76A12A00CCBBA0 /* CRRefreshExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRRefreshExtension.swift; sourceTree = ""; }; - 9753C6611E76A12A00CCBBA0 /* CRRefreshFooterView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRRefreshFooterView.swift; sourceTree = ""; }; - 9753C6621E76A12A00CCBBA0 /* CRRefreshHeaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRRefreshHeaderView.swift; sourceTree = ""; }; - 9753C6631E76A12A00CCBBA0 /* CRRefreshProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CRRefreshProtocol.swift; sourceTree = ""; }; 9753C6771E76A13C00CCBBA0 /* Demo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Demo.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 9753C6791E76A13C00CCBBA0 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 9753C67B1E76A13C00CCBBA0 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - 9753C6801E76A13C00CCBBA0 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 9753C6831E76A13C00CCBBA0 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 9753C6851E76A13C00CCBBA0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 9753C6891E76A16D00CCBBA0 /* BaseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseViewController.swift; sourceTree = ""; }; - 9753C68A1E76A16D00CCBBA0 /* NavigationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NavigationController.swift; sourceTree = ""; }; - 9753C68B1E76A16D00CCBBA0 /* RefreshController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RefreshController.swift; sourceTree = ""; }; - 9753C6901E76A1D500CCBBA0 /* NormalCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NormalCell.swift; sourceTree = ""; }; - 9753C6911E76A1D500CCBBA0 /* NormalCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = NormalCell.xib; sourceTree = ""; }; - 9753C6921E76A1D500CCBBA0 /* RefreshCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RefreshCell.swift; sourceTree = ""; }; - 9753C6931E76A1D500CCBBA0 /* RefreshCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RefreshCell.xib; sourceTree = ""; }; - 9753C69F1E76B36300CCBBA0 /* RamotionAnimator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RamotionAnimator.swift; sourceTree = ""; }; - 9753C6A71E76F88A00CCBBA0 /* RamotionWaveLayer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RamotionWaveLayer.swift; sourceTree = ""; }; - 9753C6A91E77755600CCBBA0 /* RamotionBounceLayer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RamotionBounceLayer.swift; sourceTree = ""; }; - 9753C6AB1E77C2E000CCBBA0 /* RamotionBallLayer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RamotionBallLayer.swift; sourceTree = ""; }; - 97884D02200DD20A0017692A /* UIColorExtension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIColorExtension.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -118,128 +118,128 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 974647DF1E8A4F93003A3019 /* FastAnimator */ = { + 3E265CEB2528F20D00C3D489 /* CRRefresh */ = { isa = PBXGroup; children = ( - 974647E01E8A4F93003A3019 /* FastAnimator.swift */, - 974647E61E8A545B003A3019 /* FastLayer.swift */, - 974647E11E8A4F93003A3019 /* FastArrowLayer.swift */, - 974647E21E8A4F93003A3019 /* FastCircleLayer.swift */, - 9717BBA91EB1C01E00AD6864 /* FastCheckLayer.swift */, + 3E265CEE2528F20D00C3D489 /* Animators */, + 3E265CEC2528F20D00C3D489 /* CRRefreshAnimator.swift */, + 3E265CED2528F20D00C3D489 /* UIColorExtension.swift */, + 3E265D022528F20D00C3D489 /* CRRefreshBundle.swift */, + 3E265D032528F20D00C3D489 /* CRRefreshHeaderView.swift */, + 3E265D042528F20D00C3D489 /* CRRefreshExtension.swift */, + 3E265D052528F20D00C3D489 /* CRRefreshProtocol.swift */, + 3E265D062528F20D00C3D489 /* CRRefreshComponent.swift */, + 3E265D072528F20D00C3D489 /* CRRefreshFooterView.swift */, + 3E265D082528F20D00C3D489 /* Assets */, ); - path = FastAnimator; + name = CRRefresh; + path = ../Sources/CRRefresh; sourceTree = ""; }; - 9753C63C1E76A0D200CCBBA0 = { + 3E265CEE2528F20D00C3D489 /* Animators */ = { isa = PBXGroup; children = ( - 9753C6481E76A0D200CCBBA0 /* CRRefresh */, - 9753C6781E76A13C00CCBBA0 /* Demo */, - 9753C6471E76A0D200CCBBA0 /* Products */, + 3E265CEF2528F20D00C3D489 /* RamotionAnimator */, + 3E265CF42528F20D00C3D489 /* SlackLoadingAnimator */, + 3E265CF72528F20D00C3D489 /* FastAnimator */, + 3E265CFD2528F20D00C3D489 /* NormalAnimator */, ); + path = Animators; sourceTree = ""; }; - 9753C6471E76A0D200CCBBA0 /* Products */ = { + 3E265CEF2528F20D00C3D489 /* RamotionAnimator */ = { isa = PBXGroup; children = ( - 9753C6461E76A0D200CCBBA0 /* CRRefresh.framework */, - 9753C6771E76A13C00CCBBA0 /* Demo.app */, + 3E265CF02528F20D00C3D489 /* RamotionBounceLayer.swift */, + 3E265CF12528F20D00C3D489 /* RamotionAnimator.swift */, + 3E265CF22528F20D00C3D489 /* RamotionWaveLayer.swift */, + 3E265CF32528F20D00C3D489 /* RamotionBallLayer.swift */, ); - name = Products; + path = RamotionAnimator; sourceTree = ""; }; - 9753C6481E76A0D200CCBBA0 /* CRRefresh */ = { + 3E265CF42528F20D00C3D489 /* SlackLoadingAnimator */ = { isa = PBXGroup; children = ( - 9753C6511E76A12A00CCBBA0 /* CRRefresh */, - 9753C64A1E76A0D200CCBBA0 /* Info.plist */, + 3E265CF52528F20D00C3D489 /* SlackLoadingAnimator.swift */, + 3E265CF62528F20D00C3D489 /* WCLLoadingView.swift */, ); - path = CRRefresh; + path = SlackLoadingAnimator; sourceTree = ""; }; - 9753C6511E76A12A00CCBBA0 /* CRRefresh */ = { + 3E265CF72528F20D00C3D489 /* FastAnimator */ = { isa = PBXGroup; children = ( - 9753C6521E76A12A00CCBBA0 /* Animators */, - 9753C65D1E76A12A00CCBBA0 /* CRRefreshAnimator.swift */, - 9753C65E1E76A12A00CCBBA0 /* CRRefreshBundle.swift */, - 9753C65F1E76A12A00CCBBA0 /* CRRefreshComponent.swift */, - 9753C6601E76A12A00CCBBA0 /* CRRefreshExtension.swift */, - 9753C6611E76A12A00CCBBA0 /* CRRefreshFooterView.swift */, - 9753C6621E76A12A00CCBBA0 /* CRRefreshHeaderView.swift */, - 9753C6631E76A12A00CCBBA0 /* CRRefreshProtocol.swift */, - 97884D02200DD20A0017692A /* UIColorExtension.swift */, + 3E265CF82528F20D00C3D489 /* FastAnimator.swift */, + 3E265CF92528F20D00C3D489 /* FastLayer.swift */, + 3E265CFA2528F20D00C3D489 /* FastArrowLayer.swift */, + 3E265CFB2528F20D00C3D489 /* FastCheckLayer.swift */, + 3E265CFC2528F20D00C3D489 /* FastCircleLayer.swift */, ); - path = CRRefresh; + path = FastAnimator; sourceTree = ""; }; - 9753C6521E76A12A00CCBBA0 /* Animators */ = { + 3E265CFD2528F20D00C3D489 /* NormalAnimator */ = { isa = PBXGroup; children = ( - 974647DF1E8A4F93003A3019 /* FastAnimator */, - 9753C69E1E76B35600CCBBA0 /* RamotionAnimator */, - 9753C6531E76A12A00CCBBA0 /* NormalAnimator */, - 9753C65A1E76A12A00CCBBA0 /* SlackLoadingAnimator */, + 3E265CFE2528F20D00C3D489 /* NormalHeader.bundle */, + 3E265CFF2528F20D00C3D489 /* NormalHeaderAnimator.swift */, + 3E265D002528F20D00C3D489 /* NormalFooterAnimator.swift */, + 3E265D012528F20D00C3D489 /* NormalFooter.bundle */, ); - path = Animators; + path = NormalAnimator; sourceTree = ""; }; - 9753C6531E76A12A00CCBBA0 /* NormalAnimator */ = { + 3E265D082528F20D00C3D489 /* Assets */ = { isa = PBXGroup; children = ( - 9702BC861E7A8F1800705296 /* NormalFooter.bundle */, - 9702BC871E7A8F1800705296 /* NormalFooterAnimator.swift */, - 9702BC881E7A8F1800705296 /* NormalHeader.bundle */, - 9702BC891E7A8F1800705296 /* NormalHeaderAnimator.swift */, ); - path = NormalAnimator; + path = Assets; sourceTree = ""; }; - 9753C65A1E76A12A00CCBBA0 /* SlackLoadingAnimator */ = { + 3E265D222528F22600C3D489 /* Demo */ = { isa = PBXGroup; children = ( - 9753C65B1E76A12A00CCBBA0 /* SlackLoadingAnimator.swift */, - 9753C65C1E76A12A00CCBBA0 /* WCLLoadingView.swift */, + 3E265D312528F22600C3D489 /* AppDelegate.swift */, + 3E265D2D2528F22600C3D489 /* Assets.xcassets */, + 3E265D2C2528F22600C3D489 /* BaseViewController.swift */, + 3E265D242528F22600C3D489 /* Cells */, + 3E265D332528F22600C3D489 /* Info.plist */, + 3E265D2F2528F22600C3D489 /* LaunchScreen.storyboard */, + 3E265D322528F22600C3D489 /* NavigationController.swift */, + 3E265D2E2528F22600C3D489 /* RefreshController.swift */, + 3E265D232528F22600C3D489 /* ViewController.swift */, ); - path = SlackLoadingAnimator; + name = Demo; sourceTree = ""; }; - 9753C6781E76A13C00CCBBA0 /* Demo */ = { + 3E265D242528F22600C3D489 /* Cells */ = { isa = PBXGroup; children = ( - 9753C6791E76A13C00CCBBA0 /* AppDelegate.swift */, - 9753C6891E76A16D00CCBBA0 /* BaseViewController.swift */, - 9753C68A1E76A16D00CCBBA0 /* NavigationController.swift */, - 9753C67B1E76A13C00CCBBA0 /* ViewController.swift */, - 9753C68B1E76A16D00CCBBA0 /* RefreshController.swift */, - 9753C68F1E76A1D500CCBBA0 /* Cells */, - 9753C6801E76A13C00CCBBA0 /* Assets.xcassets */, - 9753C6821E76A13C00CCBBA0 /* LaunchScreen.storyboard */, - 9753C6851E76A13C00CCBBA0 /* Info.plist */, + 3E265D252528F22600C3D489 /* NormalCell.swift */, + 3E265D262528F22600C3D489 /* NormalCell.xib */, + 3E265D272528F22600C3D489 /* RefreshCell.xib */, + 3E265D282528F22600C3D489 /* RefreshCell.swift */, ); - path = Demo; + path = Cells; sourceTree = ""; }; - 9753C68F1E76A1D500CCBBA0 /* Cells */ = { + 9753C63C1E76A0D200CCBBA0 = { isa = PBXGroup; children = ( - 9753C6901E76A1D500CCBBA0 /* NormalCell.swift */, - 9753C6911E76A1D500CCBBA0 /* NormalCell.xib */, - 9753C6921E76A1D500CCBBA0 /* RefreshCell.swift */, - 9753C6931E76A1D500CCBBA0 /* RefreshCell.xib */, + 3E265D222528F22600C3D489 /* Demo */, + 3E265CEB2528F20D00C3D489 /* CRRefresh */, + 9753C6471E76A0D200CCBBA0 /* Products */, ); - path = Cells; sourceTree = ""; }; - 9753C69E1E76B35600CCBBA0 /* RamotionAnimator */ = { + 9753C6471E76A0D200CCBBA0 /* Products */ = { isa = PBXGroup; children = ( - 9753C69F1E76B36300CCBBA0 /* RamotionAnimator.swift */, - 9753C6A91E77755600CCBBA0 /* RamotionBounceLayer.swift */, - 9753C6A71E76F88A00CCBBA0 /* RamotionWaveLayer.swift */, - 9753C6AB1E77C2E000CCBBA0 /* RamotionBallLayer.swift */, + 9753C6461E76A0D200CCBBA0 /* CRRefresh.framework */, + 9753C6771E76A13C00CCBBA0 /* Demo.app */, ); - path = RamotionAnimator; + name = Products; sourceTree = ""; }; /* End PBXGroup section */ @@ -316,7 +316,7 @@ }; buildConfigurationList = 9753C6401E76A0D200CCBBA0 /* Build configuration list for PBXProject "CRRefresh" */; compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, @@ -338,8 +338,13 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 9702BC8A1E7A8F1800705296 /* NormalFooter.bundle in Resources */, - 9702BC8C1E7A8F1800705296 /* NormalHeader.bundle in Resources */, + 3E265D162528F20D00C3D489 /* NormalHeader.bundle in Resources */, + 3E265D362528F22600C3D489 /* NormalCell.xib in Resources */, + 3E265D192528F20D00C3D489 /* NormalFooter.bundle in Resources */, + 3E265D3C2528F22600C3D489 /* LaunchScreen.storyboard in Resources */, + 3E265D372528F22600C3D489 /* RefreshCell.xib in Resources */, + 3E265D3A2528F22600C3D489 /* Assets.xcassets in Resources */, + 3E265D3F2528F22600C3D489 /* Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -347,10 +352,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 9753C6841E76A13C00CCBBA0 /* LaunchScreen.storyboard in Resources */, - 9753C6951E76A1D500CCBBA0 /* NormalCell.xib in Resources */, - 9753C6811E76A13C00CCBBA0 /* Assets.xcassets in Resources */, - 9753C6971E76A1D500CCBBA0 /* RefreshCell.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -361,27 +362,34 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 9753C66C1E76A12A00CCBBA0 /* CRRefreshBundle.swift in Sources */, - 974647E51E8A4F93003A3019 /* FastCircleLayer.swift in Sources */, - 9753C66B1E76A12A00CCBBA0 /* CRRefreshAnimator.swift in Sources */, - 9702BC8D1E7A8F1800705296 /* NormalHeaderAnimator.swift in Sources */, - 9753C6A01E76B36300CCBBA0 /* RamotionAnimator.swift in Sources */, - 9753C6AC1E77C2E000CCBBA0 /* RamotionBallLayer.swift in Sources */, - 9702BC8B1E7A8F1800705296 /* NormalFooterAnimator.swift in Sources */, - 9753C6691E76A12A00CCBBA0 /* SlackLoadingAnimator.swift in Sources */, - 97884D03200DD20A0017692A /* UIColorExtension.swift in Sources */, - 974647E31E8A4F93003A3019 /* FastAnimator.swift in Sources */, - 9753C66E1E76A12A00CCBBA0 /* CRRefreshExtension.swift in Sources */, - 9753C66D1E76A12A00CCBBA0 /* CRRefreshComponent.swift in Sources */, - 9753C6701E76A12A00CCBBA0 /* CRRefreshHeaderView.swift in Sources */, - 974647E41E8A4F93003A3019 /* FastArrowLayer.swift in Sources */, - 9753C66A1E76A12A00CCBBA0 /* WCLLoadingView.swift in Sources */, - 9753C6A81E76F88A00CCBBA0 /* RamotionWaveLayer.swift in Sources */, - 9753C66F1E76A12A00CCBBA0 /* CRRefreshFooterView.swift in Sources */, - 9717BBAA1EB1C01E00AD6864 /* FastCheckLayer.swift in Sources */, - 9753C6711E76A12A00CCBBA0 /* CRRefreshProtocol.swift in Sources */, - 974647E71E8A545B003A3019 /* FastLayer.swift in Sources */, - 9753C6AA1E77755600CCBBA0 /* RamotionBounceLayer.swift in Sources */, + 3E265D1C2528F20D00C3D489 /* CRRefreshExtension.swift in Sources */, + 3E265D1B2528F20D00C3D489 /* CRRefreshHeaderView.swift in Sources */, + 3E265D122528F20D00C3D489 /* FastLayer.swift in Sources */, + 3E265D1A2528F20D00C3D489 /* CRRefreshBundle.swift in Sources */, + 3E265D342528F22600C3D489 /* ViewController.swift in Sources */, + 3E265D3E2528F22600C3D489 /* NavigationController.swift in Sources */, + 3E265D1D2528F20D00C3D489 /* CRRefreshProtocol.swift in Sources */, + 3E265D172528F20D00C3D489 /* NormalHeaderAnimator.swift in Sources */, + 3E265D352528F22600C3D489 /* NormalCell.swift in Sources */, + 3E265D132528F20D00C3D489 /* FastArrowLayer.swift in Sources */, + 3E265D0F2528F20D00C3D489 /* SlackLoadingAnimator.swift in Sources */, + 3E265D0A2528F20D00C3D489 /* UIColorExtension.swift in Sources */, + 3E265D112528F20D00C3D489 /* FastAnimator.swift in Sources */, + 3E265D182528F20D00C3D489 /* NormalFooterAnimator.swift in Sources */, + 3E265D3B2528F22600C3D489 /* RefreshController.swift in Sources */, + 3E265D0D2528F20D00C3D489 /* RamotionWaveLayer.swift in Sources */, + 3E265D152528F20D00C3D489 /* FastCircleLayer.swift in Sources */, + 3E265D1F2528F20D00C3D489 /* CRRefreshFooterView.swift in Sources */, + 3E265D0E2528F20D00C3D489 /* RamotionBallLayer.swift in Sources */, + 3E265D102528F20D00C3D489 /* WCLLoadingView.swift in Sources */, + 3E265D0C2528F20D00C3D489 /* RamotionAnimator.swift in Sources */, + 3E265D382528F22600C3D489 /* RefreshCell.swift in Sources */, + 3E265D3D2528F22600C3D489 /* AppDelegate.swift in Sources */, + 3E265D392528F22600C3D489 /* BaseViewController.swift in Sources */, + 3E265D1E2528F20D00C3D489 /* CRRefreshComponent.swift in Sources */, + 3E265D142528F20D00C3D489 /* FastCheckLayer.swift in Sources */, + 3E265D092528F20D00C3D489 /* CRRefreshAnimator.swift in Sources */, + 3E265D0B2528F20D00C3D489 /* RamotionBounceLayer.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -389,23 +397,16 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 9753C6941E76A1D500CCBBA0 /* NormalCell.swift in Sources */, - 9753C67C1E76A13C00CCBBA0 /* ViewController.swift in Sources */, - 9753C68D1E76A16D00CCBBA0 /* NavigationController.swift in Sources */, - 9753C68E1E76A16D00CCBBA0 /* RefreshController.swift in Sources */, - 9753C67A1E76A13C00CCBBA0 /* AppDelegate.swift in Sources */, - 9753C68C1E76A16D00CCBBA0 /* BaseViewController.swift in Sources */, - 9753C6961E76A1D500CCBBA0 /* RefreshCell.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXVariantGroup section */ - 9753C6821E76A13C00CCBBA0 /* LaunchScreen.storyboard */ = { + 3E265D2F2528F22600C3D489 /* LaunchScreen.storyboard */ = { isa = PBXVariantGroup; children = ( - 9753C6831E76A13C00CCBBA0 /* Base */, + 3E265D302528F22600C3D489 /* Base */, ); name = LaunchScreen.storyboard; sourceTree = ""; @@ -537,14 +538,14 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = CRRefresh/Info.plist; + INFOPLIST_FILE = "$(SRCROOT)/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = WCL.CRRefresh; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -557,14 +558,14 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = CRRefresh/Info.plist; + INFOPLIST_FILE = "$(SRCROOT)/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = WCL.CRRefresh; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Release; }; @@ -577,7 +578,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "WCL.CRRefresh-.Demo"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -590,7 +591,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "WCL.CRRefresh-.Demo"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; }; name = Release; }; diff --git a/CRRefresh.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Demo/CRRefresh.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from CRRefresh.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to Demo/CRRefresh.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/CRRefresh.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Demo/CRRefresh.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from CRRefresh.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to Demo/CRRefresh.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/CRRefresh.xcodeproj/xcshareddata/xcschemes/CRRefresh.xcscheme b/Demo/CRRefresh.xcodeproj/xcshareddata/xcschemes/CRRefresh.xcscheme similarity index 100% rename from CRRefresh.xcodeproj/xcshareddata/xcschemes/CRRefresh.xcscheme rename to Demo/CRRefresh.xcodeproj/xcshareddata/xcschemes/CRRefresh.xcscheme diff --git a/Demo/RefreshController.swift b/Demo/RefreshController.swift index 393c7bf..c6b19c9 100644 --- a/Demo/RefreshController.swift +++ b/Demo/RefreshController.swift @@ -78,10 +78,13 @@ class RefreshController: BaseViewController { print("开始加载") DispatchQueue.main.asyncAfter(deadline: .now() + 2, execute: { self?.count += 10 - self?.tableView.cr.noticeNoMoreData() + self?.tableView.cr.endLoadingMore() self?.tableView.reloadData() }) } + + tableView.isPagingEnabled = true + } //MARK: Override diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..0c028c3 --- /dev/null +++ b/Package.swift @@ -0,0 +1,23 @@ +// swift-tools-version:5.3 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "CRRefresh", + platforms: [.iOS(.v9)], + products: [ + .library( + name: "CRRefresh", + targets: ["CRRefresh"]), + ], + targets: [ + .target( + name: "CRRefresh", + resources: [ + .copy("Assets/"), + // .process("Resources/config.json"), + // .copy("Resources/HTML") + ]), + ] +) diff --git a/CRRefresh/CRRefresh/Animators/FastAnimator/FastAnimator.swift b/Sources/CRRefresh/Animators/FastAnimator/FastAnimator.swift similarity index 100% rename from CRRefresh/CRRefresh/Animators/FastAnimator/FastAnimator.swift rename to Sources/CRRefresh/Animators/FastAnimator/FastAnimator.swift diff --git a/CRRefresh/CRRefresh/Animators/FastAnimator/FastArrowLayer.swift b/Sources/CRRefresh/Animators/FastAnimator/FastArrowLayer.swift similarity index 100% rename from CRRefresh/CRRefresh/Animators/FastAnimator/FastArrowLayer.swift rename to Sources/CRRefresh/Animators/FastAnimator/FastArrowLayer.swift diff --git a/CRRefresh/CRRefresh/Animators/FastAnimator/FastCheckLayer.swift b/Sources/CRRefresh/Animators/FastAnimator/FastCheckLayer.swift similarity index 95% rename from CRRefresh/CRRefresh/Animators/FastAnimator/FastCheckLayer.swift rename to Sources/CRRefresh/Animators/FastAnimator/FastCheckLayer.swift index 5338054..2d814d3 100644 --- a/CRRefresh/CRRefresh/Animators/FastAnimator/FastCheckLayer.swift +++ b/Sources/CRRefresh/Animators/FastAnimator/FastCheckLayer.swift @@ -71,6 +71,12 @@ class FastCheckLayer: CALayer { required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } + + override init(layer: Any) { + color = .init(rgb: (214, 214, 214)) + lineWidth = 1 + super.init(layer: layer) + } //MARK: Privater Methods private func drawCheck() { diff --git a/CRRefresh/CRRefresh/Animators/FastAnimator/FastCircleLayer.swift b/Sources/CRRefresh/Animators/FastAnimator/FastCircleLayer.swift similarity index 97% rename from CRRefresh/CRRefresh/Animators/FastAnimator/FastCircleLayer.swift rename to Sources/CRRefresh/Animators/FastAnimator/FastCircleLayer.swift index bcfa699..ff98f72 100644 --- a/CRRefresh/CRRefresh/Animators/FastAnimator/FastCircleLayer.swift +++ b/Sources/CRRefresh/Animators/FastAnimator/FastCircleLayer.swift @@ -73,6 +73,13 @@ class FastCircleLayer: CALayer { required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } + + override init(layer: Any) { + color = .init(rgb: (214, 214, 214)) + pointColor = .init(rgb: (165, 165, 165)) + lineWidth = 1 + super.init(layer: layer) + } //MARK: Public Methods func startAnimation() { diff --git a/CRRefresh/CRRefresh/Animators/FastAnimator/FastLayer.swift b/Sources/CRRefresh/Animators/FastAnimator/FastLayer.swift similarity index 91% rename from CRRefresh/CRRefresh/Animators/FastAnimator/FastLayer.swift rename to Sources/CRRefresh/Animators/FastAnimator/FastLayer.swift index 1d593b8..4baf0b7 100644 --- a/CRRefresh/CRRefresh/Animators/FastAnimator/FastLayer.swift +++ b/Sources/CRRefresh/Animators/FastAnimator/FastLayer.swift @@ -37,12 +37,6 @@ class FastLayer: CALayer { let lineWidth: CGFloat - //MARK: Public Methods - - - //MARK: Override - - //MARK: Initial Methods init(frame: CGRect, color: UIColor = .init(rgb: (214, 214, 214)), arrowColor: UIColor = .init(rgb: (165, 165, 165)), lineWidth: CGFloat = 1) { self.color = color @@ -58,6 +52,13 @@ class FastLayer: CALayer { required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } + + override init(layer: Any) { + color = .init(rgb: (214, 214, 214)) + arrowColor = .init(rgb: (165, 165, 165)) + lineWidth = 1 + super.init(layer: layer) + } //MARK: Privater Methods private func initCircle() { diff --git a/CRRefresh/CRRefresh/Animators/NormalAnimator/NormalFooterAnimator.swift b/Sources/CRRefresh/Animators/NormalAnimator/NormalFooterAnimator.swift similarity index 98% rename from CRRefresh/CRRefresh/Animators/NormalAnimator/NormalFooterAnimator.swift rename to Sources/CRRefresh/Animators/NormalAnimator/NormalFooterAnimator.swift index 7da1cb3..03aa154 100755 --- a/CRRefresh/CRRefresh/Animators/NormalAnimator/NormalFooterAnimator.swift +++ b/Sources/CRRefresh/Animators/NormalAnimator/NormalFooterAnimator.swift @@ -88,6 +88,8 @@ open class NormalFooterAnimator: UIView, CRRefreshProtocol { open func refresh(view: CRRefreshComponent, stateDidChange state: CRRefreshState) { switch state { + case .idle: + titleLabel.text = loadingMoreDescription case .refreshing : titleLabel.text = loadingDescription break diff --git a/CRRefresh/CRRefresh/Animators/NormalAnimator/NormalHeaderAnimator.swift b/Sources/CRRefresh/Animators/NormalAnimator/NormalHeaderAnimator.swift similarity index 100% rename from CRRefresh/CRRefresh/Animators/NormalAnimator/NormalHeaderAnimator.swift rename to Sources/CRRefresh/Animators/NormalAnimator/NormalHeaderAnimator.swift diff --git a/CRRefresh/CRRefresh/Animators/RamotionAnimator/RamotionAnimator.swift b/Sources/CRRefresh/Animators/RamotionAnimator/RamotionAnimator.swift similarity index 100% rename from CRRefresh/CRRefresh/Animators/RamotionAnimator/RamotionAnimator.swift rename to Sources/CRRefresh/Animators/RamotionAnimator/RamotionAnimator.swift diff --git a/CRRefresh/CRRefresh/Animators/RamotionAnimator/RamotionBallLayer.swift b/Sources/CRRefresh/Animators/RamotionAnimator/RamotionBallLayer.swift similarity index 100% rename from CRRefresh/CRRefresh/Animators/RamotionAnimator/RamotionBallLayer.swift rename to Sources/CRRefresh/Animators/RamotionAnimator/RamotionBallLayer.swift diff --git a/CRRefresh/CRRefresh/Animators/RamotionAnimator/RamotionBounceLayer.swift b/Sources/CRRefresh/Animators/RamotionAnimator/RamotionBounceLayer.swift similarity index 100% rename from CRRefresh/CRRefresh/Animators/RamotionAnimator/RamotionBounceLayer.swift rename to Sources/CRRefresh/Animators/RamotionAnimator/RamotionBounceLayer.swift diff --git a/CRRefresh/CRRefresh/Animators/RamotionAnimator/RamotionWaveLayer.swift b/Sources/CRRefresh/Animators/RamotionAnimator/RamotionWaveLayer.swift similarity index 100% rename from CRRefresh/CRRefresh/Animators/RamotionAnimator/RamotionWaveLayer.swift rename to Sources/CRRefresh/Animators/RamotionAnimator/RamotionWaveLayer.swift diff --git a/CRRefresh/CRRefresh/Animators/SlackLoadingAnimator/SlackLoadingAnimator.swift b/Sources/CRRefresh/Animators/SlackLoadingAnimator/SlackLoadingAnimator.swift similarity index 100% rename from CRRefresh/CRRefresh/Animators/SlackLoadingAnimator/SlackLoadingAnimator.swift rename to Sources/CRRefresh/Animators/SlackLoadingAnimator/SlackLoadingAnimator.swift diff --git a/CRRefresh/CRRefresh/Animators/SlackLoadingAnimator/WCLLoadingView.swift b/Sources/CRRefresh/Animators/SlackLoadingAnimator/WCLLoadingView.swift similarity index 100% rename from CRRefresh/CRRefresh/Animators/SlackLoadingAnimator/WCLLoadingView.swift rename to Sources/CRRefresh/Animators/SlackLoadingAnimator/WCLLoadingView.swift diff --git a/CRRefresh/CRRefresh/Animators/NormalAnimator/NormalFooter.bundle/en.lproj/Localizable.strings b/Sources/CRRefresh/Assets/NormalFooter.bundle/en.lproj/Localizable.strings similarity index 100% rename from CRRefresh/CRRefresh/Animators/NormalAnimator/NormalFooter.bundle/en.lproj/Localizable.strings rename to Sources/CRRefresh/Assets/NormalFooter.bundle/en.lproj/Localizable.strings diff --git a/CRRefresh/CRRefresh/Animators/NormalAnimator/NormalFooter.bundle/zh.lproj/Localizable.strings b/Sources/CRRefresh/Assets/NormalFooter.bundle/zh.lproj/Localizable.strings similarity index 100% rename from CRRefresh/CRRefresh/Animators/NormalAnimator/NormalFooter.bundle/zh.lproj/Localizable.strings rename to Sources/CRRefresh/Assets/NormalFooter.bundle/zh.lproj/Localizable.strings diff --git a/CRRefresh/CRRefresh/Animators/NormalAnimator/NormalHeader.bundle/en.lproj/Localizable.strings b/Sources/CRRefresh/Assets/NormalHeader.bundle/en.lproj/Localizable.strings similarity index 100% rename from CRRefresh/CRRefresh/Animators/NormalAnimator/NormalHeader.bundle/en.lproj/Localizable.strings rename to Sources/CRRefresh/Assets/NormalHeader.bundle/en.lproj/Localizable.strings diff --git a/CRRefresh/CRRefresh/Animators/NormalAnimator/NormalHeader.bundle/images/refresh_arrow@2x.png b/Sources/CRRefresh/Assets/NormalHeader.bundle/images/refresh_arrow@2x.png similarity index 100% rename from CRRefresh/CRRefresh/Animators/NormalAnimator/NormalHeader.bundle/images/refresh_arrow@2x.png rename to Sources/CRRefresh/Assets/NormalHeader.bundle/images/refresh_arrow@2x.png diff --git a/CRRefresh/CRRefresh/Animators/NormalAnimator/NormalHeader.bundle/images/refresh_arrow@3x.png b/Sources/CRRefresh/Assets/NormalHeader.bundle/images/refresh_arrow@3x.png similarity index 100% rename from CRRefresh/CRRefresh/Animators/NormalAnimator/NormalHeader.bundle/images/refresh_arrow@3x.png rename to Sources/CRRefresh/Assets/NormalHeader.bundle/images/refresh_arrow@3x.png diff --git a/CRRefresh/CRRefresh/Animators/NormalAnimator/NormalHeader.bundle/zh.lproj/Localizable.strings b/Sources/CRRefresh/Assets/NormalHeader.bundle/zh.lproj/Localizable.strings similarity index 100% rename from CRRefresh/CRRefresh/Animators/NormalAnimator/NormalHeader.bundle/zh.lproj/Localizable.strings rename to Sources/CRRefresh/Assets/NormalHeader.bundle/zh.lproj/Localizable.strings diff --git a/CRRefresh/CRRefresh/CRRefreshAnimator.swift b/Sources/CRRefresh/CRRefreshAnimator.swift similarity index 100% rename from CRRefresh/CRRefresh/CRRefreshAnimator.swift rename to Sources/CRRefresh/CRRefreshAnimator.swift diff --git a/CRRefresh/CRRefresh/CRRefreshBundle.swift b/Sources/CRRefresh/CRRefreshBundle.swift similarity index 100% rename from CRRefresh/CRRefresh/CRRefreshBundle.swift rename to Sources/CRRefresh/CRRefreshBundle.swift diff --git a/CRRefresh/CRRefresh/CRRefreshComponent.swift b/Sources/CRRefresh/CRRefreshComponent.swift similarity index 100% rename from CRRefresh/CRRefresh/CRRefreshComponent.swift rename to Sources/CRRefresh/CRRefreshComponent.swift diff --git a/CRRefresh/CRRefresh/CRRefreshExtension.swift b/Sources/CRRefresh/CRRefreshExtension.swift similarity index 100% rename from CRRefresh/CRRefresh/CRRefreshExtension.swift rename to Sources/CRRefresh/CRRefreshExtension.swift diff --git a/CRRefresh/CRRefresh/CRRefreshFooterView.swift b/Sources/CRRefresh/CRRefreshFooterView.swift similarity index 98% rename from CRRefresh/CRRefresh/CRRefreshFooterView.swift rename to Sources/CRRefresh/CRRefreshFooterView.swift index ff2f162..bf5b525 100644 --- a/CRRefresh/CRRefresh/CRRefreshFooterView.swift +++ b/Sources/CRRefresh/CRRefreshFooterView.swift @@ -110,7 +110,7 @@ open class CRRefreshFooterView: CRRefreshComponent { open override func sizeChange(change: [NSKeyValueChangeKey : Any]?) { guard let scrollView = scrollView else { return } super.sizeChange(change: change) - let targetY = scrollView.contentSize.height + scrollViewInsets.bottom + let targetY = scrollView.contentSize.height if self.frame.origin.y != targetY { var rect = self.frame rect.origin.y = targetY diff --git a/CRRefresh/CRRefresh/CRRefreshHeaderView.swift b/Sources/CRRefresh/CRRefreshHeaderView.swift similarity index 96% rename from CRRefresh/CRRefresh/CRRefreshHeaderView.swift rename to Sources/CRRefresh/CRRefreshHeaderView.swift index 1eea8a5..2f8c535 100644 --- a/CRRefresh/CRRefresh/CRRefreshHeaderView.swift +++ b/Sources/CRRefresh/CRRefreshHeaderView.swift @@ -66,10 +66,16 @@ open class CRRefreshHeaderView: CRRefreshComponent { insets.top += animator.execute insetTDelta = -animator.execute holdInsetTDelta = -(animator.execute - animator.hold) - UIView.animate(withDuration: CRRefreshComponent.animationDuration, animations: { + var point = scrollView.contentOffset; + point.y = -insets.top + UIView.animate(withDuration: CRRefreshComponent.animationDuration, animations: { + scrollView.contentOffset.y = self.previousOffsetY scrollView.contentInset = insets - scrollView.contentOffset.y = -insets.top +// scrollView.contentOffset.y = -insets.top + scrollView.setContentOffset(point, animated: false); + + }) { (finished) in DispatchQueue.main.async { self.handler?() diff --git a/CRRefresh/CRRefresh/CRRefreshProtocol.swift b/Sources/CRRefresh/CRRefreshProtocol.swift similarity index 100% rename from CRRefresh/CRRefresh/CRRefreshProtocol.swift rename to Sources/CRRefresh/CRRefreshProtocol.swift diff --git a/CRRefresh/CRRefresh/UIColorExtension.swift b/Sources/CRRefresh/UIColorExtension.swift similarity index 100% rename from CRRefresh/CRRefresh/UIColorExtension.swift rename to Sources/CRRefresh/UIColorExtension.swift