Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
GeliBusinessPlatform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
CI / CD Analytics
Repository Analytics
Value Stream Analytics
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ljy
GeliBusinessPlatform
Commits
b4cfb21c
Commit
b4cfb21c
authored
Nov 03, 2020
by
刘俊宏
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pod更新
parent
deeb7bb0
Changes
56
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
56 changed files
with
2832 additions
and
2620 deletions
+2832
-2620
GeliBusinessPlatform.xcworkspace/xcuserdata/liujunhong.xcuserdatad/UserInterfaceState.xcuserstate
...ata/liujunhong.xcuserdatad/UserInterfaceState.xcuserstate
+0
-0
Pods/Pods.xcodeproj/project.pbxproj
Pods/Pods.xcodeproj/project.pbxproj
+2046
-2042
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/Alamofire.xcscheme
...rdata/liujunhong.xcuserdatad/xcschemes/Alamofire.xcscheme
+13
-11
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/CryptoSwift.xcscheme
...ata/liujunhong.xcuserdatad/xcschemes/CryptoSwift.xcscheme
+13
-11
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/Dollar.xcscheme
...userdata/liujunhong.xcuserdatad/xcschemes/Dollar.xcscheme
+13
-11
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/ESTabBarController-swift.xcscheme
...g.xcuserdatad/xcschemes/ESTabBarController-swift.xcscheme
+1
-1
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/Hue.xcscheme
.../xcuserdata/liujunhong.xcuserdatad/xcschemes/Hue.xcscheme
+13
-11
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/IQKeyboardManagerSwift.xcscheme
...ong.xcuserdatad/xcschemes/IQKeyboardManagerSwift.xcscheme
+13
-11
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/JZLocationConverter.xcscheme
...unhong.xcuserdatad/xcschemes/JZLocationConverter.xcscheme
+60
-0
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/Kingfisher.xcscheme
...data/liujunhong.xcuserdatad/xcschemes/Kingfisher.xcscheme
+13
-11
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/LGButton.xcscheme
...erdata/liujunhong.xcuserdatad/xcschemes/LGButton.xcscheme
+13
-11
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/MJRefresh.xcscheme
...rdata/liujunhong.xcuserdatad/xcschemes/MJRefresh.xcscheme
+13
-11
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/ObjectMapper.xcscheme
...ta/liujunhong.xcuserdatad/xcschemes/ObjectMapper.xcscheme
+13
-11
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/Pods-GeliBusinessPlatform.xcscheme
....xcuserdatad/xcschemes/Pods-GeliBusinessPlatform.xcscheme
+1
-1
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/ReachabilitySwift.xcscheme
...ujunhong.xcuserdatad/xcschemes/ReachabilitySwift.xcscheme
+1
-1
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/SkeletonView.xcscheme
...ta/liujunhong.xcuserdatad/xcschemes/SkeletonView.xcscheme
+13
-11
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/SnapKit.xcscheme
...serdata/liujunhong.xcuserdatad/xcschemes/SnapKit.xcscheme
+13
-11
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/SwiftDate.xcscheme
...rdata/liujunhong.xcuserdatad/xcschemes/SwiftDate.xcscheme
+13
-11
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/SwifterSwift.xcscheme
...ta/liujunhong.xcuserdatad/xcschemes/SwifterSwift.xcscheme
+13
-11
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/SwiftyJSON.xcscheme
...data/liujunhong.xcuserdatad/xcschemes/SwiftyJSON.xcscheme
+13
-11
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/ViewAnimator.xcscheme
...ta/liujunhong.xcuserdatad/xcschemes/ViewAnimator.xcscheme
+13
-11
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/WYAutoLayout.xcscheme
...ta/liujunhong.xcuserdatad/xcschemes/WYAutoLayout.xcscheme
+13
-11
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/xcschememanagement.plist
...liujunhong.xcuserdatad/xcschemes/xcschememanagement.plist
+3
-41
Pods/SkeletonView/README.md
Pods/SkeletonView/README.md
+183
-190
Pods/SkeletonView/Sources/Appearance/SkeletonAppearance.swift
.../SkeletonView/Sources/Appearance/SkeletonAppearance.swift
+1
-1
Pods/SkeletonView/Sources/Builders/SkeletonLayerBuilder.swift
.../SkeletonView/Sources/Builders/SkeletonLayerBuilder.swift
+5
-0
Pods/SkeletonView/Sources/Builders/SkeletonMultilineLayerBuilder.swift
...View/Sources/Builders/SkeletonMultilineLayerBuilder.swift
+23
-5
Pods/SkeletonView/Sources/Collections/CollectionViews/SkeletonCollectionViewProtocols.swift
...ons/CollectionViews/SkeletonCollectionViewProtocols.swift
+0
-2
Pods/SkeletonView/Sources/Collections/CollectionViews/UICollectionView+CollectionSkeleton.swift
...CollectionViews/UICollectionView+CollectionSkeleton.swift
+2
-2
Pods/SkeletonView/Sources/Collections/SkeletonCollectionDataSource.swift
...ew/Sources/Collections/SkeletonCollectionDataSource.swift
+1
-2
Pods/SkeletonView/Sources/Collections/SkeletonCollectionDelegate.swift
...View/Sources/Collections/SkeletonCollectionDelegate.swift
+0
-2
Pods/SkeletonView/Sources/Collections/TableViews/UITableView+CollectionSkeleton.swift
...llections/TableViews/UITableView+CollectionSkeleton.swift
+2
-3
Pods/SkeletonView/Sources/Debug/SkeletonDebug.swift
Pods/SkeletonView/Sources/Debug/SkeletonDebug.swift
+3
-3
Pods/SkeletonView/Sources/Extensions/CALayer+Extensions.swift
.../SkeletonView/Sources/Extensions/CALayer+Extensions.swift
+56
-37
Pods/SkeletonView/Sources/Extensions/UIColor+Skeleton.swift
Pods/SkeletonView/Sources/Extensions/UIColor+Skeleton.swift
+8
-4
Pods/SkeletonView/Sources/Extensions/UITableView+VisibleSections.swift
...View/Sources/Extensions/UITableView+VisibleSections.swift
+6
-8
Pods/SkeletonView/Sources/Extensions/UIView+Autolayout.swift
Pods/SkeletonView/Sources/Extensions/UIView+Autolayout.swift
+25
-0
Pods/SkeletonView/Sources/Extensions/UIView+Extension.swift
Pods/SkeletonView/Sources/Extensions/UIView+Extension.swift
+6
-4
Pods/SkeletonView/Sources/Extensions/UIView+Frame.swift
Pods/SkeletonView/Sources/Extensions/UIView+Frame.swift
+18
-16
Pods/SkeletonView/Sources/Extensions/UIView+IBInspectable.swift
...keletonView/Sources/Extensions/UIView+IBInspectable.swift
+16
-6
Pods/SkeletonView/Sources/Helpers/AssociationPolicy.swift
Pods/SkeletonView/Sources/Helpers/AssociationPolicy.swift
+1
-0
Pods/SkeletonView/Sources/Helpers/PrepareForSkeletonProtocol.swift
...etonView/Sources/Helpers/PrepareForSkeletonProtocol.swift
+38
-0
Pods/SkeletonView/Sources/Helpers/RecursiveProtocol.swift
Pods/SkeletonView/Sources/Helpers/RecursiveProtocol.swift
+2
-4
Pods/SkeletonView/Sources/Helpers/Swizzling.swift
Pods/SkeletonView/Sources/Helpers/Swizzling.swift
+2
-2
Pods/SkeletonView/Sources/Multilines/ContainsMultilineText.swift
...eletonView/Sources/Multilines/ContainsMultilineText.swift
+1
-4
Pods/SkeletonView/Sources/Multilines/UILabel+Multiline.swift
Pods/SkeletonView/Sources/Multilines/UILabel+Multiline.swift
+8
-1
Pods/SkeletonView/Sources/Multilines/UITextView+Multiline.swift
...keletonView/Sources/Multilines/UITextView+Multiline.swift
+6
-3
Pods/SkeletonView/Sources/Recoverable/Recoverable.swift
Pods/SkeletonView/Sources/Recoverable/Recoverable.swift
+41
-13
Pods/SkeletonView/Sources/Recoverable/RecoverableViewState.swift
...eletonView/Sources/Recoverable/RecoverableViewState.swift
+10
-6
Pods/SkeletonView/Sources/SkeletonAnimationBuilder.swift
Pods/SkeletonView/Sources/SkeletonAnimationBuilder.swift
+16
-16
Pods/SkeletonView/Sources/SkeletonConfig.swift
Pods/SkeletonView/Sources/SkeletonConfig.swift
+6
-8
Pods/SkeletonView/Sources/SkeletonFlow.swift
Pods/SkeletonView/Sources/SkeletonFlow.swift
+1
-1
Pods/SkeletonView/Sources/SkeletonLayer.swift
Pods/SkeletonView/Sources/SkeletonLayer.swift
+14
-11
Pods/SkeletonView/Sources/SkeletonView.swift
Pods/SkeletonView/Sources/SkeletonView.swift
+10
-2
Pods/SkeletonView/Sources/Transitions/UIView+Transitions.swift
...SkeletonView/Sources/Transitions/UIView+Transitions.swift
+0
-1
Pods/Target Support Files/SkeletonView/SkeletonView-Info.plist
...Target Support Files/SkeletonView/SkeletonView-Info.plist
+1
-1
No files found.
GeliBusinessPlatform.xcworkspace/xcuserdata/liujunhong.xcuserdatad/UserInterfaceState.xcuserstate
View file @
b4cfb21c
No preview for this file type
Pods/Pods.xcodeproj/project.pbxproj
View file @
b4cfb21c
This diff is collapsed.
Click to expand it.
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/Alamofire.xcscheme
View file @
b4cfb21c
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"1
2
00"
LastUpgradeVersion =
"1
1
00"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing =
"YES"
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
buildForArchiving =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"EAAA1AD3A8A1B59AB91319EE40752C6D"
...
...
@@ -23,15 +23,14 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
<Testables>
</Testables>
shouldUseLaunchSchemeArgsEnv =
"YES"
buildConfiguration =
"Debug"
>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle =
"0"
...
...
@@ -39,14 +38,17 @@
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
debugServiceExtension =
"internal"
buildConfiguration =
"Debug"
allowLocationSimulation =
"YES"
>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
debugDocumentVersioning =
"YES"
>
debugDocumentVersioning =
"YES"
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
...
...
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/CryptoSwift.xcscheme
View file @
b4cfb21c
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"1
2
00"
LastUpgradeVersion =
"1
1
00"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing =
"YES"
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
buildForArchiving =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"99313990C1D76A6D1D017868B6975CC8"
...
...
@@ -23,15 +23,14 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
<Testables>
</Testables>
shouldUseLaunchSchemeArgsEnv =
"YES"
buildConfiguration =
"Debug"
>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle =
"0"
...
...
@@ -39,14 +38,17 @@
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
debugServiceExtension =
"internal"
buildConfiguration =
"Debug"
allowLocationSimulation =
"YES"
>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
debugDocumentVersioning =
"YES"
>
debugDocumentVersioning =
"YES"
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
...
...
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/Dollar.xcscheme
View file @
b4cfb21c
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"1
2
00"
LastUpgradeVersion =
"1
1
00"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing =
"YES"
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
buildForArchiving =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"F798030A13A5E43528C860AD809CD390"
...
...
@@ -23,15 +23,14 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
<Testables>
</Testables>
shouldUseLaunchSchemeArgsEnv =
"YES"
buildConfiguration =
"Debug"
>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle =
"0"
...
...
@@ -39,14 +38,17 @@
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
debugServiceExtension =
"internal"
buildConfiguration =
"Debug"
allowLocationSimulation =
"YES"
>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
debugDocumentVersioning =
"YES"
>
debugDocumentVersioning =
"YES"
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
...
...
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/ESTabBarController-swift.xcscheme
View file @
b4cfb21c
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"1
2
00"
LastUpgradeVersion =
"1
1
00"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
...
...
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/Hue.xcscheme
View file @
b4cfb21c
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"1
2
00"
LastUpgradeVersion =
"1
1
00"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing =
"YES"
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
buildForArchiving =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"00D9B51B84230E50370AC70ADCF7F8AA"
...
...
@@ -23,15 +23,14 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
<Testables>
</Testables>
shouldUseLaunchSchemeArgsEnv =
"YES"
buildConfiguration =
"Debug"
>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle =
"0"
...
...
@@ -39,14 +38,17 @@
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
debugServiceExtension =
"internal"
buildConfiguration =
"Debug"
allowLocationSimulation =
"YES"
>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
debugDocumentVersioning =
"YES"
>
debugDocumentVersioning =
"YES"
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
...
...
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/IQKeyboardManagerSwift.xcscheme
View file @
b4cfb21c
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"1
2
00"
LastUpgradeVersion =
"1
1
00"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing =
"YES"
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
buildForArchiving =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"B490E7485944099E16C9CBD79119D1D4"
...
...
@@ -23,15 +23,14 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
<Testables>
</Testables>
shouldUseLaunchSchemeArgsEnv =
"YES"
buildConfiguration =
"Debug"
>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle =
"0"
...
...
@@ -39,14 +38,17 @@
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
debugServiceExtension =
"internal"
buildConfiguration =
"Debug"
allowLocationSimulation =
"YES"
>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
debugDocumentVersioning =
"YES"
>
debugDocumentVersioning =
"YES"
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
...
...
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/JZLocationConverter.xcscheme
0 → 100644
View file @
b4cfb21c
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"1100"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing =
"YES"
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"E8572772A2B42B68FDF351C752B8A238"
BuildableName =
"JZLocationConverter.framework"
BlueprintName =
"JZLocationConverter"
ReferencedContainer =
"container:Pods.xcodeproj"
>
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv =
"YES"
buildConfiguration =
"Debug"
>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle =
"0"
useCustomWorkingDirectory =
"NO"
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
debugServiceExtension =
"internal"
buildConfiguration =
"Debug"
allowLocationSimulation =
"YES"
>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
debugDocumentVersioning =
"YES"
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
</AnalyzeAction>
<ArchiveAction
buildConfiguration =
"Release"
revealArchiveInOrganizer =
"YES"
>
</ArchiveAction>
</Scheme>
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/Kingfisher.xcscheme
View file @
b4cfb21c
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"1
2
00"
LastUpgradeVersion =
"1
1
00"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing =
"YES"
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
buildForArchiving =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"E8022D22FAA6690B5E1C379C1BCE1491"
...
...
@@ -23,15 +23,14 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
<Testables>
</Testables>
shouldUseLaunchSchemeArgsEnv =
"YES"
buildConfiguration =
"Debug"
>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle =
"0"
...
...
@@ -39,14 +38,17 @@
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
debugServiceExtension =
"internal"
buildConfiguration =
"Debug"
allowLocationSimulation =
"YES"
>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
debugDocumentVersioning =
"YES"
>
debugDocumentVersioning =
"YES"
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
...
...
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/LGButton.xcscheme
View file @
b4cfb21c
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"1
2
00"
LastUpgradeVersion =
"1
1
00"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing =
"YES"
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
buildForArchiving =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"FD999FE212F29E29DEEA0A85E1DC4D4E"
...
...
@@ -23,15 +23,14 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
<Testables>
</Testables>
shouldUseLaunchSchemeArgsEnv =
"YES"
buildConfiguration =
"Debug"
>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle =
"0"
...
...
@@ -39,14 +38,17 @@
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
debugServiceExtension =
"internal"
buildConfiguration =
"Debug"
allowLocationSimulation =
"YES"
>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
debugDocumentVersioning =
"YES"
>
debugDocumentVersioning =
"YES"
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
...
...
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/MJRefresh.xcscheme
View file @
b4cfb21c
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"1
2
00"
LastUpgradeVersion =
"1
1
00"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing =
"YES"
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
buildForArchiving =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"6868056D761E163D10FDAF8CF1C4D9B8"
...
...
@@ -23,15 +23,14 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
<Testables>
</Testables>
shouldUseLaunchSchemeArgsEnv =
"YES"
buildConfiguration =
"Debug"
>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle =
"0"
...
...
@@ -39,14 +38,17 @@
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
debugServiceExtension =
"internal"
buildConfiguration =
"Debug"
allowLocationSimulation =
"YES"
>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
debugDocumentVersioning =
"YES"
>
debugDocumentVersioning =
"YES"
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
...
...
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/ObjectMapper.xcscheme
View file @
b4cfb21c
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"1
2
00"
LastUpgradeVersion =
"1
1
00"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing =
"YES"
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
buildForArchiving =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"162E649F50FEC62B61BDD87D1BD422B4"
...
...
@@ -23,15 +23,14 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
<Testables>
</Testables>
shouldUseLaunchSchemeArgsEnv =
"YES"
buildConfiguration =
"Debug"
>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle =
"0"
...
...
@@ -39,14 +38,17 @@
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
debugServiceExtension =
"internal"
buildConfiguration =
"Debug"
allowLocationSimulation =
"YES"
>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
debugDocumentVersioning =
"YES"
>
debugDocumentVersioning =
"YES"
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
...
...
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/Pods-GeliBusinessPlatform.xcscheme
View file @
b4cfb21c
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"1
2
00"
LastUpgradeVersion =
"1
1
00"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
...
...
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/ReachabilitySwift.xcscheme
View file @
b4cfb21c
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"1
2
00"
LastUpgradeVersion =
"1
1
00"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
...
...
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/SkeletonView.xcscheme
View file @
b4cfb21c
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"1
2
00"
LastUpgradeVersion =
"1
1
00"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing =
"YES"
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
buildForArchiving =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"8CEEFD1CB630CA790F0396E2E24A4C8C"
...
...
@@ -23,15 +23,14 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
<Testables>
</Testables>
shouldUseLaunchSchemeArgsEnv =
"YES"
buildConfiguration =
"Debug"
>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle =
"0"
...
...
@@ -39,14 +38,17 @@
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
debugServiceExtension =
"internal"
buildConfiguration =
"Debug"
allowLocationSimulation =
"YES"
>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
debugDocumentVersioning =
"YES"
>
debugDocumentVersioning =
"YES"
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
...
...
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/SnapKit.xcscheme
View file @
b4cfb21c
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"1
2
00"
LastUpgradeVersion =
"1
1
00"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing =
"YES"
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
buildForArchiving =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"19622742EBA51E823D6DAE3F8CDBFAD4"
...
...
@@ -23,15 +23,14 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
<Testables>
</Testables>
shouldUseLaunchSchemeArgsEnv =
"YES"
buildConfiguration =
"Debug"
>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle =
"0"
...
...
@@ -39,14 +38,17 @@
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
debugServiceExtension =
"internal"
buildConfiguration =
"Debug"
allowLocationSimulation =
"YES"
>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
debugDocumentVersioning =
"YES"
>
debugDocumentVersioning =
"YES"
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
...
...
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/SwiftDate.xcscheme
View file @
b4cfb21c
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"1
2
00"
LastUpgradeVersion =
"1
1
00"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing =
"YES"
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
buildForArchiving =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"6038CE6006EFBE9D905454CF01909C42"
...
...
@@ -23,15 +23,14 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
<Testables>
</Testables>
shouldUseLaunchSchemeArgsEnv =
"YES"
buildConfiguration =
"Debug"
>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle =
"0"
...
...
@@ -39,14 +38,17 @@
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
debugServiceExtension =
"internal"
buildConfiguration =
"Debug"
allowLocationSimulation =
"YES"
>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
debugDocumentVersioning =
"YES"
>
debugDocumentVersioning =
"YES"
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
...
...
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/SwifterSwift.xcscheme
View file @
b4cfb21c
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"1
2
00"
LastUpgradeVersion =
"1
1
00"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing =
"YES"
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
buildForArchiving =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"5D8BB851D938AE8F1A461F95C1ABD69B"
...
...
@@ -23,15 +23,14 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
<Testables>
</Testables>
shouldUseLaunchSchemeArgsEnv =
"YES"
buildConfiguration =
"Debug"
>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle =
"0"
...
...
@@ -39,14 +38,17 @@
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
debugServiceExtension =
"internal"
buildConfiguration =
"Debug"
allowLocationSimulation =
"YES"
>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
debugDocumentVersioning =
"YES"
>
debugDocumentVersioning =
"YES"
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
...
...
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/SwiftyJSON.xcscheme
View file @
b4cfb21c
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"1
2
00"
LastUpgradeVersion =
"1
1
00"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing =
"YES"
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
buildForArchiving =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"D118A6A04828FD3CDA8640CD2B6796D2"
...
...
@@ -23,15 +23,14 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
<Testables>
</Testables>
shouldUseLaunchSchemeArgsEnv =
"YES"
buildConfiguration =
"Debug"
>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle =
"0"
...
...
@@ -39,14 +38,17 @@
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
debugServiceExtension =
"internal"
buildConfiguration =
"Debug"
allowLocationSimulation =
"YES"
>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
debugDocumentVersioning =
"YES"
>
debugDocumentVersioning =
"YES"
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
...
...
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/ViewAnimator.xcscheme
View file @
b4cfb21c
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"1
2
00"
LastUpgradeVersion =
"1
1
00"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing =
"YES"
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
buildForArchiving =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"91BFC2827E7E6E2B51AB2CFF58AC6317"
...
...
@@ -23,15 +23,14 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
<Testables>
</Testables>
shouldUseLaunchSchemeArgsEnv =
"YES"
buildConfiguration =
"Debug"
>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle =
"0"
...
...
@@ -39,14 +38,17 @@
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
debugServiceExtension =
"internal"
buildConfiguration =
"Debug"
allowLocationSimulation =
"YES"
>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
debugDocumentVersioning =
"YES"
>
debugDocumentVersioning =
"YES"
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
...
...
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/WYAutoLayout.xcscheme
View file @
b4cfb21c
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion =
"1
2
00"
LastUpgradeVersion =
"1
1
00"
version =
"1.3"
>
<BuildAction
parallelizeBuildables =
"YES"
buildImplicitDependencies =
"YES"
>
<BuildActionEntries>
<BuildActionEntry
buildForAnalyzing =
"YES"
buildForTesting =
"YES"
buildForRunning =
"YES"
buildForProfiling =
"YES"
buildForArchiving =
"YES"
buildForAnalyzing =
"YES"
>
buildForArchiving =
"YES"
>
<BuildableReference
BuildableIdentifier =
"primary"
BlueprintIdentifier =
"930887923DC0E8AC2A3589A7987F2BDD"
...
...
@@ -23,15 +23,14 @@
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
<Testables>
</Testables>
shouldUseLaunchSchemeArgsEnv =
"YES"
buildConfiguration =
"Debug"
>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration =
"Debug"
selectedDebuggerIdentifier =
"Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier =
"Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle =
"0"
...
...
@@ -39,14 +38,17 @@
ignoresPersistentStateOnLaunch =
"NO"
debugDocumentVersioning =
"YES"
debugServiceExtension =
"internal"
buildConfiguration =
"Debug"
allowLocationSimulation =
"YES"
>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
savedToolIdentifier =
""
useCustomWorkingDirectory =
"NO"
debugDocumentVersioning =
"YES"
>
debugDocumentVersioning =
"YES"
buildConfiguration =
"Release"
shouldUseLaunchSchemeArgsEnv =
"YES"
>
</ProfileAction>
<AnalyzeAction
buildConfiguration =
"Debug"
>
...
...
Pods/Pods.xcodeproj/xcuserdata/liujunhong.xcuserdatad/xcschemes/xcschememanagement.plist
View file @
b4cfb21c
...
...
@@ -8,139 +8,101 @@
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
1
</integer>
</dict>
<key>
CryptoSwift.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
2
</integer>
</dict>
<key>
Dollar.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
3
</integer>
</dict>
<key>
ESTabBarController-swift.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
4
</integer>
</dict>
<key>
Hue.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
5
</integer>
</dict>
<key>
IQKeyboardManagerSwift.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
6
</integer>
</dict>
<key>
JZLocationConverter.xcscheme
_^#shared#^_
</key>
<key>
JZLocationConverter.xcscheme
</key>
<dict>
<key>
orderHint
</key>
<
integer>
20
</integer
>
<key>
isShown
</key>
<
false/
>
</dict>
<key>
Kingfisher.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
7
</integer>
</dict>
<key>
LGButton.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
8
</integer>
</dict>
<key>
MJRefresh.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
9
</integer>
</dict>
<key>
ObjectMapper.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
10
</integer>
</dict>
<key>
Pods-GeliBusinessPlatform.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
11
</integer>
</dict>
<key>
ReachabilitySwift.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
12
</integer>
</dict>
<key>
SkeletonView.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
13
</integer>
</dict>
<key>
SnapKit.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
14
</integer>
</dict>
<key>
SwiftDate.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
15
</integer>
</dict>
<key>
SwifterSwift.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
16
</integer>
</dict>
<key>
SwiftyJSON.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
17
</integer>
</dict>
<key>
ViewAnimator.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
18
</integer>
</dict>
<key>
WYAutoLayout.xcscheme
</key>
<dict>
<key>
isShown
</key>
<false/>
<key>
orderHint
</key>
<integer>
19
</integer>
</dict>
</dict>
<key>
SuppressBuildableAutocreation
</key>
...
...
Pods/SkeletonView/README.md
View file @
b4cfb21c
This diff is collapsed.
Click to expand it.
Pods/SkeletonView/Sources/Appearance/SkeletonAppearance.swift
View file @
b4cfb21c
...
...
@@ -22,7 +22,7 @@ class SkeletonViewAppearance: Appearance {
var
tintColor
:
UIColor
=
.
skeletonDefault
var
gradient
:
SkeletonGradient
=
SkeletonGradient
(
baseColor
:
.
skeletonDefault
)
var
gradient
=
SkeletonGradient
(
baseColor
:
.
skeletonDefault
)
var
multilineHeight
:
CGFloat
=
15
...
...
Pods/SkeletonView/Sources/Builders/SkeletonLayerBuilder.swift
View file @
b4cfb21c
...
...
@@ -9,25 +9,30 @@ class SkeletonLayerBuilder {
var
colors
:
[
UIColor
]
=
[]
var
holder
:
UIView
?
@discardableResult
func
setSkeletonType
(
_
type
:
SkeletonType
)
->
SkeletonLayerBuilder
{
self
.
skeletonType
=
type
return
self
}
@discardableResult
func
addColor
(
_
color
:
UIColor
)
->
SkeletonLayerBuilder
{
return
addColors
([
color
])
}
@discardableResult
func
addColors
(
_
colors
:
[
UIColor
])
->
SkeletonLayerBuilder
{
self
.
colors
.
append
(
contentsOf
:
colors
)
return
self
}
@discardableResult
func
setHolder
(
_
holder
:
UIView
)
->
SkeletonLayerBuilder
{
self
.
holder
=
holder
return
self
}
@discardableResult
func
build
()
->
SkeletonLayer
?
{
guard
let
type
=
skeletonType
,
let
holder
=
holder
...
...
Pods/SkeletonView/Sources/Builders/SkeletonMultilineLayerBuilder.swift
View file @
b4cfb21c
...
...
@@ -12,42 +12,56 @@ class SkeletonMultilineLayerBuilder {
var
cornerRadius
:
Int
?
var
multilineSpacing
:
CGFloat
=
SkeletonAppearance
.
default
.
multilineSpacing
var
paddingInsets
:
UIEdgeInsets
=
.
zero
var
isRTL
:
Bool
=
false
@discardableResult
func
setSkeletonType
(
_
type
:
SkeletonType
)
->
SkeletonMultilineLayerBuilder
{
self
.
skeletonType
=
type
return
self
}
@discardableResult
func
setIndex
(
_
index
:
Int
)
->
SkeletonMultilineLayerBuilder
{
self
.
index
=
index
return
self
}
@discardableResult
func
setHeight
(
_
height
:
CGFloat
)
->
SkeletonMultilineLayerBuilder
{
self
.
height
=
height
return
self
}
@discardableResult
func
setWidth
(
_
width
:
CGFloat
)
->
SkeletonMultilineLayerBuilder
{
self
.
width
=
width
return
self
}
@discardableResult
func
setCornerRadius
(
_
radius
:
Int
)
->
SkeletonMultilineLayerBuilder
{
self
.
cornerRadius
=
radius
return
self
}
@discardableResult
func
setMultilineSpacing
(
_
spacing
:
CGFloat
)
->
SkeletonMultilineLayerBuilder
{
self
.
multilineSpacing
=
spacing
return
self
}
@discardableResult
func
setPadding
(
_
insets
:
UIEdgeInsets
)
->
SkeletonMultilineLayerBuilder
{
self
.
paddingInsets
=
insets
return
self
}
@discardableResult
func
setIsRTL
(
_
isRTL
:
Bool
)
->
SkeletonMultilineLayerBuilder
{
self
.
isRTL
=
isRTL
return
self
}
func
build
()
->
CALayer
?
{
guard
let
type
=
skeletonType
,
let
index
=
index
,
...
...
@@ -59,7 +73,11 @@ class SkeletonMultilineLayerBuilder {
let
layer
=
type
.
layer
layer
.
anchorPoint
=
.
zero
layer
.
name
=
CALayer
.
skeletonSubLayersName
layer
.
updateLayerFrame
(
for
:
index
,
size
:
CGSize
(
width
:
width
,
height
:
height
),
multilineSpacing
:
self
.
multilineSpacing
,
paddingInsets
:
paddingInsets
)
layer
.
updateLayerFrame
(
for
:
index
,
size
:
CGSize
(
width
:
width
,
height
:
height
),
multilineSpacing
:
multilineSpacing
,
paddingInsets
:
paddingInsets
,
isRTL
:
isRTL
)
layer
.
cornerRadius
=
CGFloat
(
radius
)
layer
.
masksToBounds
=
true
...
...
Pods/SkeletonView/Sources/Collections/CollectionViews/SkeletonCollectionViewProtocols.swift
View file @
b4cfb21c
...
...
@@ -8,7 +8,6 @@
import
UIKit
public
protocol
SkeletonCollectionViewDataSource
:
UICollectionViewDataSource
{
func
numSections
(
in
collectionSkeletonView
:
UICollectionView
)
->
Int
func
collectionSkeletonView
(
_
skeletonView
:
UICollectionView
,
numberOfItemsInSection
section
:
Int
)
->
Int
...
...
@@ -31,4 +30,3 @@ public extension SkeletonCollectionViewDataSource {
}
public
protocol
SkeletonCollectionViewDelegate
:
UICollectionViewDelegate
{
}
Pods/SkeletonView/Sources/Collections/CollectionViews/UICollectionView+CollectionSkeleton.swift
View file @
b4cfb21c
...
...
@@ -11,7 +11,7 @@ import UIKit
extension
UICollectionView
:
CollectionSkeleton
{
var
estimatedNumberOfRows
:
Int
{
guard
let
flowlayout
=
collectionViewLayout
as?
UICollectionViewFlowLayout
else
{
return
0
}
return
Int
(
ceil
(
frame
.
height
/
flowlayout
.
itemSize
.
height
))
return
Int
(
ceil
(
frame
.
height
/
flowlayout
.
itemSize
.
height
))
}
var
skeletonDataSource
:
SkeletonCollectionDataSource
?
{
...
...
@@ -70,7 +70,7 @@ public extension UICollectionView {
self
.
skeletonDataSource
=
dataSource
performBatchUpdates
({
self
.
reloadData
()
})
{
(
done
)
in
})
{
done
in
completion
(
done
)
}
...
...
Pods/SkeletonView/Sources/Collections/SkeletonCollectionDataSource.swift
View file @
b4cfb21c
...
...
@@ -63,7 +63,6 @@ extension SkeletonCollectionDataSource: UICollectionViewDataSource {
func
collectionView
(
_
collectionView
:
UICollectionView
,
viewForSupplementaryElementOfKind
kind
:
String
,
at
indexPath
:
IndexPath
)
->
UICollectionReusableView
{
if
let
viewIdentifier
=
originalCollectionViewDataSource
?
.
collectionSkeletonView
(
collectionView
,
supplementaryViewIdentifierOfKind
:
kind
,
at
:
indexPath
)
{
let
view
=
collectionView
.
dequeueReusableSupplementaryView
(
ofKind
:
kind
,
withReuseIdentifier
:
viewIdentifier
,
for
:
indexPath
)
skeletonViewIfContainerSkeletonIsActive
(
container
:
collectionView
,
view
:
view
)
...
...
Pods/SkeletonView/Sources/Collections/SkeletonCollectionDelegate.swift
View file @
b4cfb21c
...
...
@@ -23,7 +23,6 @@ extension SkeletonCollectionDelegate: UITableViewDelegate {
func
tableView
(
_
tableView
:
UITableView
,
viewForHeaderInSection
section
:
Int
)
->
UIView
?
{
if
let
viewIdentifier
=
originalTableViewDelegate
?
.
collectionSkeletonView
(
tableView
,
identifierForHeaderInSection
:
section
),
let
header
=
tableView
.
dequeueReusableHeaderFooterView
(
withIdentifier
:
viewIdentifier
)
{
skeletonViewIfContainerSkeletonIsActive
(
container
:
tableView
,
view
:
header
)
return
header
}
...
...
@@ -34,7 +33,6 @@ extension SkeletonCollectionDelegate: UITableViewDelegate {
func
tableView
(
_
tableView
:
UITableView
,
viewForFooterInSection
section
:
Int
)
->
UIView
?
{
if
let
viewIdentifier
=
originalTableViewDelegate
?
.
collectionSkeletonView
(
tableView
,
identifierForFooterInSection
:
section
),
let
footer
=
tableView
.
dequeueReusableHeaderFooterView
(
withIdentifier
:
viewIdentifier
)
{
skeletonViewIfContainerSkeletonIsActive
(
container
:
tableView
,
view
:
footer
)
return
footer
}
...
...
Pods/SkeletonView/Sources/Collections/TableViews/UITableView+CollectionSkeleton.swift
View file @
b4cfb21c
...
...
@@ -12,7 +12,7 @@ public typealias ReusableHeaderFooterIdentifier = String
extension
UITableView
:
CollectionSkeleton
{
var
estimatedNumberOfRows
:
Int
{
return
Int
(
ceil
(
frame
.
height
/
rowHeight
))
return
Int
(
ceil
(
frame
.
height
/
rowHeight
))
}
var
skeletonDataSource
:
SkeletonCollectionDataSource
?
{
...
...
@@ -43,8 +43,7 @@ extension UITableView: CollectionSkeleton {
self
.
skeletonDataSource
=
dataSource
if
let
originalDelegate
=
self
.
delegate
as?
SkeletonTableViewDelegate
,
!
(
originalDelegate
is
SkeletonCollectionDelegate
)
{
!
(
originalDelegate
is
SkeletonCollectionDelegate
)
{
let
delegate
=
SkeletonCollectionDelegate
(
tableViewDelegate
:
originalDelegate
)
self
.
skeletonDelegate
=
delegate
}
...
...
Pods/SkeletonView/Sources/Debug/SkeletonDebug.swift
View file @
b4cfb21c
// Copyright © 2018 SkeletonView. All rights reserved.
import
Foundation
...
...
@@ -10,6 +9,7 @@ enum SkeletonEnvironmentKey: String {
extension
Dictionary
{
subscript
(
_
key
:
SkeletonEnvironmentKey
)
->
Value
?
{
// swiftlint:disable:next force_cast
return
self
[
key
.
rawValue
as!
Key
]
}
}
...
...
@@ -19,7 +19,7 @@ func printSkeletonHierarchy(in view: UIView) {
}
func
skeletonLog
(
_
message
:
String
)
{
if
let
_
=
ProcessInfo
.
processInfo
.
environment
[
.
debugMode
]
{
if
ProcessInfo
.
processInfo
.
environment
[
.
debugMode
]
!=
nil
{
print
(
message
)
}
}
...
...
@@ -28,7 +28,7 @@ extension UIView {
public
var
skeletonDescription
:
String
{
var
description
=
"<
\(
type
(
of
:
self
)
)
:
\(
Unmanaged
.
passUnretained
(
self
)
.
toOpaque
()
)
"
let
subSkeletons
=
subviewsSkeletonables
if
subSkeletons
.
count
!=
0
{
if
!
subSkeletons
.
isEmpty
{
description
+=
" | (
\(
subSkeletons
.
count
)
) subSkeletons"
}
if
isSkeletonable
{
...
...
Pods/SkeletonView/Sources/Extensions/CALayer+Extensions.swift
View file @
b4cfb21c
...
...
@@ -30,14 +30,22 @@ extension CAGradientLayer {
struct
SkeletonMultilinesLayerConfig
{
var
lines
:
Int
var
lineHeight
:
CGFloat
?
=
nil
var
lineHeight
:
CGFloat
var
type
:
SkeletonType
var
lastLineFillPercent
:
Int
var
multilineCornerRadius
:
Int
var
multilineSpacing
:
CGFloat
var
paddingInsets
:
UIEdgeInsets
}
var
isRTL
:
Bool
/// Returns padding insets taking into account if the RTL is activated
var
calculatedPaddingInsets
:
UIEdgeInsets
{
UIEdgeInsets
(
top
:
paddingInsets
.
top
,
left
:
isRTL
?
paddingInsets
.
right
:
paddingInsets
.
left
,
bottom
:
paddingInsets
.
bottom
,
right
:
isRTL
?
paddingInsets
.
left
:
paddingInsets
.
right
)
}
}
// MARK: Skeleton sublayers
extension
CALayer
{
...
...
@@ -48,9 +56,10 @@ extension CALayer {
}
func
addMultilinesLayers
(
for
config
:
SkeletonMultilinesLayerConfig
)
{
let
numberOfSublayers
=
config
.
lines
==
1
?
1
:
calculateNumLines
(
for
:
config
)
var
height
=
config
.
lineHeight
??
SkeletonAppearance
.
default
.
multilineHeight
if
numberOfSublayers
==
1
{
let
numberOfSublayers
=
config
.
lines
>
0
?
config
.
lines
:
calculateNumLines
(
for
:
config
)
var
height
=
config
.
lineHeight
if
numberOfSublayers
==
1
&&
SkeletonAppearance
.
default
.
renderSingleLineAsView
{
height
=
bounds
.
height
}
...
...
@@ -60,6 +69,7 @@ extension CALayer {
.
setMultilineSpacing
(
config
.
multilineSpacing
)
.
setPadding
(
config
.
paddingInsets
)
.
setHeight
(
height
)
.
setIsRTL
(
config
.
isRTL
)
(
0
..<
numberOfSublayers
)
.
forEach
{
index
in
let
width
=
calculatedWidthForLine
(
at
:
index
,
totalLines
:
numberOfSublayers
,
lastLineFillPercent
:
config
.
lastLineFillPercent
,
paddingInsets
:
config
.
paddingInsets
)
...
...
@@ -76,16 +86,21 @@ extension CALayer {
let
currentSkeletonSublayers
=
skeletonSublayers
let
numberOfSublayers
=
currentSkeletonSublayers
.
count
let
lastLineFillPercent
=
config
.
lastLineFillPercent
let
paddingInsets
=
config
.
p
addingInsets
let
paddingInsets
=
config
.
calculatedP
addingInsets
let
multilineSpacing
=
config
.
multilineSpacing
var
height
=
config
.
lineHeight
??
SkeletonAppearance
.
default
.
multilineHeight
if
numberOfSublayers
==
1
{
var
height
=
config
.
lineHeight
if
numberOfSublayers
==
1
&&
SkeletonAppearance
.
default
.
renderSingleLineAsView
{
height
=
bounds
.
height
}
for
(
index
,
layer
)
in
currentSkeletonSublayers
.
enumerated
()
{
let
width
=
calculatedWidthForLine
(
at
:
index
,
totalLines
:
numberOfSublayers
,
lastLineFillPercent
:
lastLineFillPercent
,
paddingInsets
:
paddingInsets
)
layer
.
updateLayerFrame
(
for
:
index
,
size
:
CGSize
(
width
:
width
,
height
:
height
),
multilineSpacing
:
multilineSpacing
,
paddingInsets
:
paddingInsets
)
layer
.
updateLayerFrame
(
for
:
index
,
size
:
CGSize
(
width
:
width
,
height
:
height
),
multilineSpacing
:
multilineSpacing
,
paddingInsets
:
paddingInsets
,
isRTL
:
config
.
isRTL
)
}
}
...
...
@@ -97,16 +112,38 @@ extension CALayer {
return
width
}
func
updateLayerFrame
(
for
index
:
Int
,
size
:
CGSize
,
multilineSpacing
:
CGFloat
,
paddingInsets
:
UIEdgeInsets
)
{
let
spaceRequiredForEachLine
=
SkeletonAppearance
.
default
.
multilineHeight
+
multilineSpacing
frame
=
CGRect
(
x
:
paddingInsets
.
left
,
y
:
CGFloat
(
index
)
*
spaceRequiredForEachLine
+
paddingInsets
.
top
,
width
:
size
.
width
,
height
:
size
.
height
)
func
updateLayerFrame
(
for
index
:
Int
,
size
:
CGSize
,
multilineSpacing
:
CGFloat
,
paddingInsets
:
UIEdgeInsets
,
isRTL
:
Bool
)
{
let
spaceRequiredForEachLine
=
size
.
height
+
multilineSpacing
let
newFrame
=
CGRect
(
x
:
paddingInsets
.
left
,
y
:
CGFloat
(
index
)
*
spaceRequiredForEachLine
+
paddingInsets
.
top
,
width
:
size
.
width
,
height
:
size
.
height
)
frame
=
flipRectForRTLIfNeeded
(
newFrame
,
isRTL
:
isRTL
)
}
private
func
calculateNumLines
(
for
config
:
SkeletonMultilinesLayerConfig
)
->
Int
{
let
requiredSpaceForEachLine
=
(
config
.
lineHeight
??
SkeletonAppearance
.
default
.
multilineHeight
)
+
config
.
multilineSpacing
var
numberOfSublayers
=
Int
(
round
(
CGFloat
(
bounds
.
height
-
config
.
paddingInsets
.
top
-
config
.
paddingInsets
.
bottom
)
/
CGFloat
(
requiredSpaceForEachLine
)))
if
config
.
lines
!=
0
,
config
.
lines
<=
numberOfSublayers
{
numberOfSublayers
=
config
.
lines
}
return
numberOfSublayers
let
definedNumberOfLines
=
config
.
lines
let
requiredSpaceForEachLine
=
config
.
lineHeight
+
config
.
multilineSpacing
let
calculatedNumberOfLines
=
Int
(
round
(
CGFloat
(
bounds
.
height
-
config
.
paddingInsets
.
top
-
config
.
paddingInsets
.
bottom
)
/
CGFloat
(
requiredSpaceForEachLine
)))
guard
calculatedNumberOfLines
>
0
else
{
return
1
}
if
definedNumberOfLines
>
0
,
definedNumberOfLines
<=
calculatedNumberOfLines
{
return
definedNumberOfLines
}
return
calculatedNumberOfLines
}
private
func
flipRectForRTLIfNeeded
(
_
rect
:
CGRect
,
isRTL
:
Bool
)
->
CGRect
{
var
newRect
=
rect
if
isRTL
{
newRect
.
origin
.
x
=
(
superlayer
?
.
bounds
.
width
??
0
)
-
rect
.
origin
.
x
-
rect
.
width
}
return
newRect
}
}
...
...
@@ -115,6 +152,7 @@ public extension CALayer {
var
pulse
:
CAAnimation
{
let
pulseAnimation
=
CABasicAnimation
(
keyPath
:
#keyPath(
CALayer.backgroundColor
)
)
pulseAnimation
.
fromValue
=
backgroundColor
//swiftlint:disable:next force_unwrapping
pulseAnimation
.
toValue
=
UIColor
(
cgColor
:
backgroundColor
!
)
.
complementaryColor
.
cgColor
pulseAnimation
.
duration
=
1
pulseAnimation
.
timingFunction
=
CAMediaTimingFunction
(
name
:
CAMediaTimingFunctionName
.
easeInEaseOut
)
...
...
@@ -124,25 +162,6 @@ public extension CALayer {
return
pulseAnimation
}
var
sliding
:
CAAnimation
{
let
startPointAnim
=
CABasicAnimation
(
keyPath
:
#keyPath(
CAGradientLayer.startPoint
)
)
startPointAnim
.
fromValue
=
CGPoint
(
x
:
-
1
,
y
:
0.5
)
startPointAnim
.
toValue
=
CGPoint
(
x
:
1
,
y
:
0.5
)
let
endPointAnim
=
CABasicAnimation
(
keyPath
:
#keyPath(
CAGradientLayer.endPoint
)
)
endPointAnim
.
fromValue
=
CGPoint
(
x
:
0
,
y
:
0.5
)
endPointAnim
.
toValue
=
CGPoint
(
x
:
2
,
y
:
0.5
)
let
animGroup
=
CAAnimationGroup
()
animGroup
.
animations
=
[
startPointAnim
,
endPointAnim
]
animGroup
.
duration
=
1.5
animGroup
.
timingFunction
=
CAMediaTimingFunction
(
name
:
CAMediaTimingFunctionName
.
easeIn
)
animGroup
.
repeatCount
=
.
infinity
animGroup
.
isRemovedOnCompletion
=
false
return
animGroup
}
func
playAnimation
(
_
anim
:
SkeletonLayerAnimation
,
key
:
String
,
completion
:
(()
->
Void
)?
=
nil
)
{
skeletonSublayers
.
recursiveSearch
(
leafBlock
:
{
DispatchQueue
.
main
.
async
{
CATransaction
.
begin
()
}
...
...
Pods/SkeletonView/Sources/Extensions/UIColor+Skeleton.swift
View file @
b4cfb21c
...
...
@@ -22,7 +22,7 @@ extension UIColor {
public
var
complementaryColor
:
UIColor
{
if
#available(iOS 13, tvOS 13, *)
{
return
UIColor
{
traitCollection
in
return
UIColor
{
_
in
return
self
.
isLight
()
?
self
.
darker
:
self
.
lighter
}
}
else
{
...
...
@@ -50,6 +50,7 @@ extension UIColor {
}
public
extension
UIColor
{
// swiftlint:disable operator_usage_whitespace
static
var
greenSea
=
UIColor
(
0x16a085
)
static
var
turquoise
=
UIColor
(
0x1abc9c
)
static
var
emerald
=
UIColor
(
0x2ecc71
)
...
...
@@ -71,13 +72,16 @@ public extension UIColor {
static
var
pomegranate
=
UIColor
(
0xc0392b
)
static
var
silver
=
UIColor
(
0xbdc3c7
)
static
var
asbestos
=
UIColor
(
0x7f8c8d
)
// swiftlint:enable operator_usage_whitespace
static
var
skeletonDefault
:
UIColor
{
if
#available(iOS 13, tvOS 13, *)
{
return
UIColor
{
traitCollection
in
switch
traitCollection
.
userInterfaceStyle
{
case
.
dark
:
return
.
darkClouds
default
:
return
.
clouds
case
.
dark
:
return
.
darkClouds
default
:
return
.
clouds
}
}
}
else
{
...
...
Pods/SkeletonView/Sources/Extensions/UITableView+VisibleSections.swift
View file @
b4cfb21c
...
...
@@ -13,15 +13,13 @@ extension UITableView {
headerRect
=
rectForHeader
(
inSection
:
$1
)
}
if
headerRect
!=
nil
{
let
visiblePartOfTableView
:
CGRect
=
CGRect
(
x
:
contentOffset
.
x
,
if
let
headerRect
=
headerRect
{
let
visiblePartOfTableView
=
CGRect
(
x
:
contentOffset
.
x
,
y
:
contentOffset
.
y
,
width
:
bounds
.
size
.
width
,
height
:
bounds
.
size
.
height
)
height
:
bounds
.
size
.
height
)
if
(
visiblePartOfTableView
.
intersects
(
headerRect
!
)
)
{
if
visiblePartOfTableView
.
intersects
(
headerRect
)
{
return
$0
+
[
$1
]
}
}
...
...
Pods/SkeletonView/Sources/Extensions/UIView+Autolayout.swift
0 → 100644
View file @
b4cfb21c
// Copyright © 2020 SkeletonView. All rights reserved.
import
UIKit
// MARK: Frame
extension
UIView
{
var
widthConstraints
:
[
NSLayoutConstraint
]
{
nonContentSizeLayoutConstraints
.
filter
{
$0
.
firstAttribute
==
NSLayoutConstraint
.
Attribute
.
width
}
}
var
heightConstraints
:
[
NSLayoutConstraint
]
{
nonContentSizeLayoutConstraints
.
filter
{
$0
.
firstAttribute
==
NSLayoutConstraint
.
Attribute
.
height
}
}
@discardableResult
func
setHeight
(
equalToConstant
constant
:
CGFloat
)
->
NSLayoutConstraint
{
let
heightConstraint
=
heightAnchor
.
constraint
(
equalToConstant
:
constant
)
NSLayoutConstraint
.
activate
([
heightConstraint
])
return
heightConstraint
}
var
nonContentSizeLayoutConstraints
:
[
NSLayoutConstraint
]
{
constraints
.
filter
({
"
\(
type
(
of
:
$0
)
)
"
!=
"NSContentSizeLayoutConstraint"
})
}
}
Pods/SkeletonView/Sources/Extensions/UIView+Extension.swift
View file @
b4cfb21c
...
...
@@ -5,6 +5,7 @@ import UIKit
// codebeat:disable[TOO_MANY_IVARS]
enum
ViewAssociatedKeys
{
static
var
skeletonable
=
"skeletonable"
static
var
hiddenWhenSkeletonIsActive
=
"hiddenWhenSkeletonIsActive"
static
var
status
=
"status"
static
var
skeletonLayer
=
"layer"
static
var
flowDelegate
=
"flowDelegate"
...
...
@@ -12,6 +13,7 @@ enum ViewAssociatedKeys {
static
var
viewState
=
"viewState"
static
var
labelViewState
=
"labelViewState"
static
var
imageViewState
=
"imageViewState"
static
var
buttonViewState
=
"buttonViewState"
static
var
currentSkeletonConfig
=
"currentSkeletonConfig"
static
var
skeletonCornerRadius
=
"skeletonCornerRadius"
}
...
...
@@ -38,13 +40,13 @@ extension UIView {
set
{
ao_setOptional
(
newValue
,
pkey
:
&
ViewAssociatedKeys
.
currentSkeletonConfig
)
}
}
var
status
:
Status
!
{
var
status
:
Status
{
get
{
return
ao_get
(
pkey
:
&
ViewAssociatedKeys
.
status
)
as?
Status
??
.
off
}
set
{
ao_set
(
newValue
??
.
off
,
pkey
:
&
ViewAssociatedKeys
.
status
)
}
set
{
ao_set
(
newValue
,
pkey
:
&
ViewAssociatedKeys
.
status
)
}
}
var
isSkeletonAnimated
:
Bool
!
{
var
isSkeletonAnimated
:
Bool
{
get
{
return
ao_get
(
pkey
:
&
ViewAssociatedKeys
.
isSkeletonAnimated
)
as?
Bool
??
false
}
set
{
ao_set
(
newValue
??
false
,
pkey
:
&
ViewAssociatedKeys
.
isSkeletonAnimated
)
}
set
{
ao_set
(
newValue
,
pkey
:
&
ViewAssociatedKeys
.
isSkeletonAnimated
)
}
}
}
Pods/SkeletonView/Sources/Extensions/UIView+Frame.swift
View file @
b4cfb21c
...
...
@@ -10,32 +10,38 @@ import UIKit
// MARK: Frame
extension
UIView
{
var
maxBoundsEstimated
:
CGRect
{
var
definedMaxBounds
:
CGRect
{
if
let
parentStackView
=
(
superview
as?
UIStackView
)
{
var
origin
:
CGPoint
=
.
zero
switch
parentStackView
.
alignment
{
case
.
trailing
:
origin
.
x
=
maxWidthEstimated
origin
.
x
=
definedMaxWidth
default
:
break
}
return
CGRect
(
origin
:
origin
,
size
:
maxSizeEstimated
)
return
CGRect
(
origin
:
origin
,
size
:
definedMaxSize
)
}
return
CGRect
(
origin
:
.
zero
,
size
:
maxSizeEstimated
)
return
CGRect
(
origin
:
.
zero
,
size
:
definedMaxSize
)
}
var
maxSizeEstimated
:
CGSize
{
return
CGSize
(
width
:
maxWidthEstimated
,
height
:
maxHeightEstimated
)
var
definedMaxSize
:
CGSize
{
CGSize
(
width
:
definedMaxWidth
,
height
:
definedMaxHeight
)
}
var
maxWidthEstimated
:
CGFloat
{
let
constraintsWidth
=
nonContentSizeLayoutConstraints
.
filter
({
$0
.
firstAttribute
==
NSLayoutConstraint
.
Attribute
.
width
})
return
max
(
between
:
frame
.
size
.
width
,
andContantsOf
:
constraintsWidth
)
var
definedMaxWidth
:
CGFloat
{
max
(
between
:
frame
.
size
.
width
,
andContantsOf
:
widthConstraints
)
}
var
maxHeightEstimated
:
CGFloat
{
let
constraintsHeight
=
nonContentSizeLayoutConstraints
.
filter
({
$0
.
firstAttribute
==
NSLayoutConstraint
.
Attribute
.
height
})
return
max
(
between
:
frame
.
size
.
height
,
andContantsOf
:
constraintsHeight
)
var
definedMaxHeight
:
CGFloat
{
max
(
between
:
frame
.
size
.
height
,
andContantsOf
:
heightConstraints
)
}
var
isRTL
:
Bool
{
if
#available(iOS 10.0, *)
,
#available(tvOS 10.0, *)
{
return
effectiveUserInterfaceLayoutDirection
==
.
rightToLeft
}
else
{
return
false
}
}
private
func
max
(
between
value
:
CGFloat
,
andContantsOf
constraints
:
[
NSLayoutConstraint
])
->
CGFloat
{
...
...
@@ -46,8 +52,4 @@ extension UIView {
})
return
max
}
var
nonContentSizeLayoutConstraints
:
[
NSLayoutConstraint
]
{
return
constraints
.
filter
({
"
\(
type
(
of
:
$0
)
)
"
!=
"NSContentSizeLayoutConstraint"
})
}
}
Pods/SkeletonView/Sources/Extensions/UIView+IBInspectable.swift
View file @
b4cfb21c
...
...
@@ -9,6 +9,12 @@ public extension UIView {
set
{
skeletonable
=
newValue
}
}
@IBInspectable
var
isHiddenWhenSkeletonIsActive
:
Bool
{
get
{
return
hiddenWhenSkeletonIsActive
}
set
{
hiddenWhenSkeletonIsActive
=
newValue
}
}
@IBInspectable
var
skeletonCornerRadius
:
Float
{
get
{
return
skeletonableCornerRadius
}
...
...
@@ -16,17 +22,21 @@ public extension UIView {
}
var
isSkeletonActive
:
Bool
{
return
status
==
.
on
||
(
subviewsSkeletonables
.
first
(
where
:
{
$0
.
isSkeletonActive
})
!=
nil
)
return
status
==
.
on
||
subviewsSkeletonables
.
contains
(
where
:
{
$0
.
isSkeletonActive
}
)
}
private
var
skeletonable
:
Bool
!
{
private
var
skeletonable
:
Bool
{
get
{
return
ao_get
(
pkey
:
&
ViewAssociatedKeys
.
skeletonable
)
as?
Bool
??
false
}
set
{
ao_set
(
newValue
??
false
,
pkey
:
&
ViewAssociatedKeys
.
skeletonable
)
}
set
{
ao_set
(
newValue
,
pkey
:
&
ViewAssociatedKeys
.
skeletonable
)
}
}
private
var
skeletonableCornerRadius
:
Float
!
{
private
var
hiddenWhenSkeletonIsActive
:
Bool
{
get
{
return
ao_get
(
pkey
:
&
ViewAssociatedKeys
.
hiddenWhenSkeletonIsActive
)
as?
Bool
??
false
}
set
{
ao_set
(
newValue
,
pkey
:
&
ViewAssociatedKeys
.
hiddenWhenSkeletonIsActive
)
}
}
private
var
skeletonableCornerRadius
:
Float
{
get
{
return
ao_get
(
pkey
:
&
ViewAssociatedKeys
.
skeletonCornerRadius
)
as?
Float
??
0.0
}
set
{
ao_set
(
newValue
??
0.0
,
pkey
:
&
ViewAssociatedKeys
.
skeletonCornerRadius
)
}
set
{
ao_set
(
newValue
,
pkey
:
&
ViewAssociatedKeys
.
skeletonCornerRadius
)
}
}
}
Pods/SkeletonView/Sources/Helpers/AssociationPolicy.swift
View file @
b4cfb21c
...
...
@@ -12,6 +12,7 @@ enum AssociationPolicy: UInt {
case
retainNonatomic
=
1
var
objc
:
objc_AssociationPolicy
{
// swiftlint:disable:next force_unwrapping
return
objc_AssociationPolicy
(
rawValue
:
rawValue
)
!
}
}
...
...
Pods/SkeletonView/Sources/Helpers/PrepareForSkeletonProtocol.swift
View file @
b4cfb21c
...
...
@@ -12,15 +12,44 @@ extension UIView {
@objc
func
prepareViewForSkeleton
()
{
startTransition
{
[
weak
self
]
in
self
?
.
backgroundColor
=
.
clear
self
?
.
isUserInteractionEnabled
=
false
}
}
}
extension
UILabel
{
var
desiredHeightBasedOnNumberOfLines
:
CGFloat
{
let
lineHeight
=
multilineTextFont
?
.
lineHeight
??
SkeletonAppearance
.
default
.
multilineHeight
let
spaceNeededForEachLine
=
lineHeight
*
CGFloat
(
numberOfLines
)
let
spaceNeededForSpaces
=
skeletonLineSpacing
*
CGFloat
(
numberOfLines
-
1
)
let
padding
=
paddingInsets
.
top
+
paddingInsets
.
bottom
return
spaceNeededForEachLine
+
spaceNeededForSpaces
+
padding
}
func
updateHeightConstraintsIfNeeded
()
{
guard
numberOfLines
>
1
else
{
return
}
let
desiredHeight
=
desiredHeightBasedOnNumberOfLines
if
desiredHeight
>
definedMaxHeight
{
backupHeightConstraints
=
heightConstraints
NSLayoutConstraint
.
deactivate
(
heightConstraints
)
setHeight
(
equalToConstant
:
desiredHeight
)
}
}
func
restoreBackupHeightConstraints
()
{
guard
!
backupHeightConstraints
.
isEmpty
else
{
return
}
NSLayoutConstraint
.
deactivate
(
heightConstraints
)
NSLayoutConstraint
.
activate
(
backupHeightConstraints
)
backupHeightConstraints
.
removeAll
()
}
override
func
prepareViewForSkeleton
()
{
backgroundColor
=
.
clear
resignFirstResponder
()
startTransition
{
[
weak
self
]
in
self
?
.
updateHeightConstraintsIfNeeded
()
self
?
.
textColor
=
.
clear
}
}
...
...
@@ -44,3 +73,12 @@ extension UIImageView {
}
}
}
extension
UIButton
{
override
func
prepareViewForSkeleton
()
{
backgroundColor
=
.
clear
startTransition
{
[
weak
self
]
in
self
?
.
setTitle
(
nil
,
for
:
.
normal
)
}
}
}
Pods/SkeletonView/Sources/Helpers/RecursiveProtocol.swift
View file @
b4cfb21c
...
...
@@ -9,7 +9,7 @@ protocol IterableElement {}
extension
UIView
:
IterableElement
{}
extension
CALayer
:
IterableElement
{}
//MARK: Recursive
//
MARK: Recursive
protocol
Recursive
{
associatedtype
Element
:
IterableElement
func
recursiveSearch
(
leafBlock
:
VoidBlock
,
recursiveBlock
:
RecursiveBlock
<
Element
>
)
...
...
@@ -17,12 +17,10 @@ protocol Recursive {
extension
Array
:
Recursive
where
Element
:
IterableElement
{
func
recursiveSearch
(
leafBlock
:
VoidBlock
,
recursiveBlock
:
RecursiveBlock
<
Element
>
)
{
guard
count
>
0
else
{
guard
!
isEmpty
else
{
leafBlock
()
return
}
forEach
{
recursiveBlock
(
$0
)
}
}
}
Pods/SkeletonView/Sources/Helpers/Swizzling.swift
View file @
b4cfb21c
...
...
@@ -5,7 +5,7 @@ import Foundation
extension
DispatchQueue
{
private
static
var
_onceTracker
=
[
String
]()
class
func
once
(
token
:
String
,
block
:
()
->
Void
)
{
class
func
once
(
token
:
String
,
block
:
()
->
Void
)
{
objc_sync_enter
(
self
);
defer
{
objc_sync_exit
(
self
)
}
guard
!
_onceTracker
.
contains
(
token
)
else
{
return
}
...
...
@@ -19,7 +19,7 @@ func swizzle(selector originalSelector: Selector, with swizzledSelector: Selecto
let
swizzledMethod
=
class_getInstanceMethod
(
usingClass
,
swizzledSelector
)
else
{
return
}
if
(
class_addMethod
(
inClass
,
swizzledSelector
,
method_getImplementation
(
originalMethod
),
method_getTypeEncoding
(
originalMethod
)
))
{
if
class_addMethod
(
inClass
,
swizzledSelector
,
method_getImplementation
(
originalMethod
),
method_getTypeEncoding
(
originalMethod
))
{
class_replaceMethod
(
inClass
,
originalSelector
,
method_getImplementation
(
swizzledMethod
),
method_getTypeEncoding
(
swizzledMethod
))
}
else
{
method_exchangeImplementations
(
originalMethod
,
swizzledMethod
)
...
...
Pods/SkeletonView/Sources/Multilines/ContainsMultilineText.swift
View file @
b4cfb21c
...
...
@@ -7,6 +7,7 @@ enum MultilineAssociatedKeys {
static
var
multilineCornerRadius
=
"multilineCornerRadius"
static
var
multilineSpacing
=
"multilineSpacing"
static
var
paddingInsets
=
"paddingInsets"
static
var
backupHeightConstraints
=
"backupHeightConstraints"
}
protocol
ContainsMultilineText
{
...
...
@@ -17,7 +18,3 @@ protocol ContainsMultilineText {
var
multilineSpacing
:
CGFloat
{
get
}
var
paddingInsets
:
UIEdgeInsets
{
get
}
}
extension
ContainsMultilineText
{
var
numLines
:
Int
{
return
0
}
}
Pods/SkeletonView/Sources/Multilines/UILabel+Multiline.swift
View file @
b4cfb21c
...
...
@@ -8,17 +8,19 @@ public extension UILabel {
get
{
return
lastLineFillingPercent
}
set
{
lastLineFillingPercent
=
min
(
newValue
,
100
)
}
}
@IBInspectable
var
linesCornerRadius
:
Int
{
get
{
return
multilineCornerRadius
}
set
{
multilineCornerRadius
=
min
(
newValue
,
10
)
}
}
@IBInspectable
var
skeletonLineSpacing
:
CGFloat
{
get
{
return
multilineSpacing
}
set
{
multilineSpacing
=
min
(
newValue
,
10
)
}
}
@IBInspectable
var
skeletonPaddingInsets
:
UIEdgeInsets
{
get
{
return
paddingInsets
}
set
{
paddingInsets
=
newValue
}
...
...
@@ -53,4 +55,9 @@ extension UILabel: ContainsMultilineText {
get
{
return
ao_get
(
pkey
:
&
MultilineAssociatedKeys
.
paddingInsets
)
as?
UIEdgeInsets
??
.
zero
}
set
{
ao_set
(
newValue
,
pkey
:
&
MultilineAssociatedKeys
.
paddingInsets
)
}
}
var
backupHeightConstraints
:
[
NSLayoutConstraint
]
{
get
{
return
ao_get
(
pkey
:
&
MultilineAssociatedKeys
.
backupHeightConstraints
)
as?
[
NSLayoutConstraint
]
??
[]
}
set
{
ao_set
(
newValue
,
pkey
:
&
MultilineAssociatedKeys
.
backupHeightConstraints
)
}
}
}
Pods/SkeletonView/Sources/Multilines/UITextView+Multiline.swift
View file @
b4cfb21c
...
...
@@ -21,7 +21,6 @@ public extension UITextView {
set
{
multilineSpacing
=
min
(
newValue
,
10
)
}
}
@IBInspectable
var
skeletonPaddingInsets
:
UIEdgeInsets
{
get
{
return
paddingInsets
}
set
{
paddingInsets
=
newValue
}
...
...
@@ -30,7 +29,11 @@ public extension UITextView {
extension
UITextView
:
ContainsMultilineText
{
var
multilineTextFont
:
UIFont
?
{
return
font
font
}
var
numLines
:
Int
{
-
1
}
var
lastLineFillingPercent
:
Int
{
...
...
Pods/SkeletonView/Sources/Recoverable/Recoverable.swift
View file @
b4cfb21c
...
...
@@ -24,20 +24,21 @@ extension UIView: Recoverable {
}
@objc
func
recoverViewState
(
forced
:
Bool
)
{
guard
let
s
afe
ViewState
=
viewState
else
{
return
}
guard
let
s
tored
ViewState
=
viewState
else
{
return
}
startTransition
{
[
weak
self
]
in
self
?
.
layer
.
cornerRadius
=
safeViewState
.
cornerRadius
self
?
.
layer
.
masksToBounds
=
safeViewState
.
clipToBounds
self
?
.
layer
.
cornerRadius
=
storedViewState
.
cornerRadius
self
?
.
layer
.
masksToBounds
=
storedViewState
.
clipToBounds
self
?
.
isUserInteractionEnabled
=
storedViewState
.
isUserInteractionsEnabled
if
s
afeViewState
.
backgroundColor
!=
self
?
.
backgroundColo
r
||
forced
{
self
?
.
backgroundColor
=
s
afe
ViewState
.
backgroundColor
if
s
elf
?
.
backgroundColor
==
.
clea
r
||
forced
{
self
?
.
backgroundColor
=
s
tored
ViewState
.
backgroundColor
}
}
}
}
extension
UILabel
{
extension
UILabel
{
var
labelState
:
RecoverableTextViewState
?
{
get
{
return
ao_get
(
pkey
:
&
ViewAssociatedKeys
.
labelViewState
)
as?
RecoverableTextViewState
}
set
{
ao_setOptional
(
newValue
,
pkey
:
&
ViewAssociatedKeys
.
labelViewState
)
}
...
...
@@ -51,14 +52,18 @@ extension UILabel{
override
func
recoverViewState
(
forced
:
Bool
)
{
super
.
recoverViewState
(
forced
:
forced
)
startTransition
{
[
weak
self
]
in
self
?
.
textColor
=
self
?
.
labelState
?
.
textColor
self
?
.
text
=
self
?
.
labelState
?
.
text
self
?
.
isUserInteractionEnabled
=
self
?
.
labelState
?
.
isUserInteractionsEnabled
??
false
guard
let
storedLabelState
=
self
?
.
labelState
else
{
return
}
self
?
.
restoreBackupHeightConstraints
()
if
self
?
.
textColor
==
.
clear
||
forced
{
self
?
.
textColor
=
storedLabelState
.
textColor
}
}
}
}
extension
UITextView
{
extension
UITextView
{
var
textState
:
RecoverableTextViewState
?
{
get
{
return
ao_get
(
pkey
:
&
ViewAssociatedKeys
.
labelViewState
)
as?
RecoverableTextViewState
}
set
{
ao_setOptional
(
newValue
,
pkey
:
&
ViewAssociatedKeys
.
labelViewState
)
}
...
...
@@ -72,9 +77,11 @@ extension UITextView{
override
func
recoverViewState
(
forced
:
Bool
)
{
super
.
recoverViewState
(
forced
:
forced
)
startTransition
{
[
weak
self
]
in
self
?
.
textColor
=
self
?
.
textState
?
.
textColor
self
?
.
text
=
self
?
.
textState
?
.
text
self
?
.
isUserInteractionEnabled
=
self
?
.
textState
?
.
isUserInteractionsEnabled
??
false
guard
let
storedLabelState
=
self
?
.
textState
else
{
return
}
if
self
?
.
textColor
==
.
clear
||
forced
{
self
?
.
textColor
=
storedLabelState
.
textColor
}
}
}
}
...
...
@@ -97,3 +104,24 @@ extension UIImageView {
}
}
}
extension
UIButton
{
var
buttonState
:
RecoverableButtonViewState
?
{
get
{
return
ao_get
(
pkey
:
&
ViewAssociatedKeys
.
buttonViewState
)
as?
RecoverableButtonViewState
}
set
{
ao_setOptional
(
newValue
,
pkey
:
&
ViewAssociatedKeys
.
buttonViewState
)
}
}
override
func
saveViewState
()
{
super
.
saveViewState
()
buttonState
=
RecoverableButtonViewState
(
view
:
self
)
}
override
func
recoverViewState
(
forced
:
Bool
)
{
super
.
recoverViewState
(
forced
:
forced
)
startTransition
{
[
weak
self
]
in
if
self
?
.
title
(
for
:
.
normal
)
==
nil
{
self
?
.
setTitle
(
self
?
.
buttonState
?
.
title
,
for
:
.
normal
)
}
}
}
}
Pods/SkeletonView/Sources/Recoverable/RecoverableViewState.swift
View file @
b4cfb21c
...
...
@@ -12,29 +12,25 @@ struct RecoverableViewState {
var
backgroundColor
:
UIColor
?
var
cornerRadius
:
CGFloat
var
clipToBounds
:
Bool
var
isUserInteractionsEnabled
:
Bool
init
(
view
:
UIView
)
{
self
.
backgroundColor
=
view
.
backgroundColor
self
.
clipToBounds
=
view
.
layer
.
masksToBounds
self
.
cornerRadius
=
view
.
layer
.
cornerRadius
self
.
isUserInteractionsEnabled
=
view
.
isUserInteractionEnabled
}
}
struct
RecoverableTextViewState
{
var
text
:
String
?
var
textColor
:
UIColor
?
var
isUserInteractionsEnabled
:
Bool
init
(
view
:
UILabel
)
{
self
.
textColor
=
view
.
textColor
self
.
text
=
view
.
text
self
.
isUserInteractionsEnabled
=
view
.
isUserInteractionEnabled
}
init
(
view
:
UITextView
)
{
self
.
textColor
=
view
.
textColor
self
.
text
=
view
.
text
self
.
isUserInteractionsEnabled
=
view
.
isUserInteractionEnabled
}
}
...
...
@@ -45,3 +41,11 @@ struct RecoverableImageViewState {
self
.
image
=
view
.
image
}
}
struct
RecoverableButtonViewState
{
var
title
:
String
?
init
(
view
:
UIButton
)
{
self
.
title
=
view
.
titleLabel
?
.
text
}
}
Pods/SkeletonView/Sources/SkeletonAnimationBuilder.swift
View file @
b4cfb21c
...
...
@@ -18,42 +18,42 @@ public enum GradientDirection {
case
topLeftBottomRight
case
bottomRightTopLeft
public
func
slidingAnimation
(
duration
:
CFTimeInterval
=
1.5
)
->
SkeletonLayerAnimation
{
return
SkeletonAnimationBuilder
()
.
makeSlidingAnimation
(
withDirection
:
self
,
duration
:
duration
)
public
func
slidingAnimation
(
duration
:
CFTimeInterval
=
1.5
,
autoreverses
:
Bool
=
false
)
->
SkeletonLayerAnimation
{
return
SkeletonAnimationBuilder
()
.
makeSlidingAnimation
(
withDirection
:
self
,
duration
:
duration
,
autoreverses
:
autoreverses
)
}
// codebeat:disable[ABC]
var
startPoint
:
GradientAnimationPoint
{
switch
self
{
case
.
leftRight
:
return
(
from
:
CGPoint
(
x
:
-
1
,
y
:
0.5
),
to
:
CGPoint
(
x
:
1
,
y
:
0.5
))
return
(
from
:
CGPoint
(
x
:
-
1
,
y
:
0.5
),
to
:
CGPoint
(
x
:
1
,
y
:
0.5
))
case
.
rightLeft
:
return
(
from
:
CGPoint
(
x
:
1
,
y
:
0.5
),
to
:
CGPoint
(
x
:
-
1
,
y
:
0.5
))
return
(
from
:
CGPoint
(
x
:
1
,
y
:
0.5
),
to
:
CGPoint
(
x
:
-
1
,
y
:
0.5
))
case
.
topBottom
:
return
(
from
:
CGPoint
(
x
:
0.5
,
y
:
-
1
),
to
:
CGPoint
(
x
:
0.5
,
y
:
1
))
return
(
from
:
CGPoint
(
x
:
0.5
,
y
:
-
1
),
to
:
CGPoint
(
x
:
0.5
,
y
:
1
))
case
.
bottomTop
:
return
(
from
:
CGPoint
(
x
:
0.5
,
y
:
1
),
to
:
CGPoint
(
x
:
0.5
,
y
:
-
1
))
return
(
from
:
CGPoint
(
x
:
0.5
,
y
:
1
),
to
:
CGPoint
(
x
:
0.5
,
y
:
-
1
))
case
.
topLeftBottomRight
:
return
(
from
:
CGPoint
(
x
:
-
1
,
y
:
-
1
),
to
:
CGPoint
(
x
:
1
,
y
:
1
))
return
(
from
:
CGPoint
(
x
:
-
1
,
y
:
-
1
),
to
:
CGPoint
(
x
:
1
,
y
:
1
))
case
.
bottomRightTopLeft
:
return
(
from
:
CGPoint
(
x
:
1
,
y
:
1
),
to
:
CGPoint
(
x
:
-
1
,
y
:
-
1
))
return
(
from
:
CGPoint
(
x
:
1
,
y
:
1
),
to
:
CGPoint
(
x
:
-
1
,
y
:
-
1
))
}
}
var
endPoint
:
GradientAnimationPoint
{
switch
self
{
case
.
leftRight
:
return
(
from
:
CGPoint
(
x
:
0
,
y
:
0.5
),
to
:
CGPoint
(
x
:
2
,
y
:
0.5
))
return
(
from
:
CGPoint
(
x
:
0
,
y
:
0.5
),
to
:
CGPoint
(
x
:
2
,
y
:
0.5
))
case
.
rightLeft
:
return
(
from
:
CGPoint
(
x
:
2
,
y
:
0.5
),
to
:
CGPoint
(
x
:
0
,
y
:
0.5
))
return
(
from
:
CGPoint
(
x
:
2
,
y
:
0.5
),
to
:
CGPoint
(
x
:
0
,
y
:
0.5
))
case
.
topBottom
:
return
(
from
:
CGPoint
(
x
:
0.5
,
y
:
0
),
to
:
CGPoint
(
x
:
0.5
,
y
:
2
))
return
(
from
:
CGPoint
(
x
:
0.5
,
y
:
0
),
to
:
CGPoint
(
x
:
0.5
,
y
:
2
))
case
.
bottomTop
:
return
(
from
:
CGPoint
(
x
:
0.5
,
y
:
2
),
to
:
CGPoint
(
x
:
0.5
,
y
:
0
))
return
(
from
:
CGPoint
(
x
:
0.5
,
y
:
2
),
to
:
CGPoint
(
x
:
0.5
,
y
:
0
))
case
.
topLeftBottomRight
:
return
(
from
:
CGPoint
(
x
:
0
,
y
:
0
),
to
:
CGPoint
(
x
:
2
,
y
:
2
))
return
(
from
:
CGPoint
(
x
:
0
,
y
:
0
),
to
:
CGPoint
(
x
:
2
,
y
:
2
))
case
.
bottomRightTopLeft
:
return
(
from
:
CGPoint
(
x
:
2
,
y
:
2
),
to
:
CGPoint
(
x
:
0
,
y
:
0
))
return
(
from
:
CGPoint
(
x
:
2
,
y
:
2
),
to
:
CGPoint
(
x
:
0
,
y
:
0
))
}
}
// codebeat:enable[ABC]
...
...
@@ -62,9 +62,8 @@ public enum GradientDirection {
public
class
SkeletonAnimationBuilder
{
public
init
()
{
}
public
func
makeSlidingAnimation
(
withDirection
direction
:
GradientDirection
,
duration
:
CFTimeInterval
=
1.5
)
->
SkeletonLayerAnimation
{
public
func
makeSlidingAnimation
(
withDirection
direction
:
GradientDirection
,
duration
:
CFTimeInterval
=
1.5
,
autoreverses
:
Bool
=
false
)
->
SkeletonLayerAnimation
{
return
{
layer
in
let
startPointAnim
=
CABasicAnimation
(
keyPath
:
#keyPath(
CAGradientLayer.startPoint
)
)
startPointAnim
.
fromValue
=
direction
.
startPoint
.
from
startPointAnim
.
toValue
=
direction
.
startPoint
.
to
...
...
@@ -78,6 +77,7 @@ public class SkeletonAnimationBuilder {
animGroup
.
duration
=
duration
animGroup
.
timingFunction
=
CAMediaTimingFunction
(
name
:
CAMediaTimingFunctionName
.
easeIn
)
animGroup
.
repeatCount
=
.
infinity
animGroup
.
autoreverses
=
autoreverses
animGroup
.
isRemovedOnCompletion
=
false
return
animGroup
...
...
Pods/SkeletonView/Sources/SkeletonConfig.swift
View file @
b4cfb21c
...
...
@@ -22,14 +22,12 @@ struct SkeletonConfig {
/// Transition style
var
transition
:
SkeletonTransitionStyle
init
(
type
:
SkeletonType
,
init
(
type
:
SkeletonType
,
colors
:
[
UIColor
],
gradientDirection
:
GradientDirection
?
=
nil
,
animated
:
Bool
=
false
,
animation
:
SkeletonLayerAnimation
?
=
nil
,
transition
:
SkeletonTransitionStyle
=
.
crossDissolve
(
0.25
)
)
{
transition
:
SkeletonTransitionStyle
=
.
crossDissolve
(
0.25
))
{
self
.
type
=
type
self
.
colors
=
colors
self
.
gradientDirection
=
gradientDirection
...
...
Pods/SkeletonView/Sources/SkeletonFlow.swift
View file @
b4cfb21c
...
...
@@ -2,7 +2,7 @@
import
UIKit
protocol
SkeletonFlowDelegate
{
protocol
SkeletonFlowDelegate
:
AnyObject
{
func
willBeginShowingSkeletons
(
rootView
:
UIView
)
func
didShowSkeletons
(
rootView
:
UIView
)
func
willBeginUpdatingSkeletons
(
rootView
:
UIView
)
...
...
Pods/SkeletonView/Sources/SkeletonLayer.swift
View file @
b4cfb21c
...
...
@@ -23,12 +23,12 @@ public enum SkeletonType {
}
}
var
layerAnimation
:
SkeletonLayerAnimation
{
func
defaultLayerAnimation
(
isRTL
:
Bool
)
->
SkeletonLayerAnimation
{
switch
self
{
case
.
solid
:
return
{
$0
.
pulse
}
case
.
gradient
:
return
{
$0
.
sliding
}
return
{
SkeletonAnimationBuilder
()
.
makeSlidingAnimation
(
withDirection
:
isRTL
?
.
rightLeft
:
.
leftRight
)
}()
}
}
}
...
...
@@ -49,7 +49,7 @@ struct SkeletonLayer {
self
.
holder
=
holder
self
.
maskLayer
=
type
.
layer
self
.
maskLayer
.
anchorPoint
=
.
zero
self
.
maskLayer
.
bounds
=
holder
.
maxBoundsEstimated
self
.
maskLayer
.
bounds
=
holder
.
definedMaxBounds
self
.
maskLayer
.
cornerRadius
=
CGFloat
(
holder
.
skeletonCornerRadius
)
addTextLinesIfNeeded
()
self
.
maskLayer
.
tint
(
withColors
:
colors
)
...
...
@@ -61,7 +61,7 @@ struct SkeletonLayer {
}
func
layoutIfNeeded
()
{
if
let
bounds
=
holder
?
.
maxBoundsEstimated
{
if
let
bounds
=
holder
?
.
definedMaxBounds
{
maskLayer
.
bounds
=
bounds
}
updateLinesIfNeeded
()
...
...
@@ -83,34 +83,37 @@ struct SkeletonLayer {
/// If there is more than one line, or custom preferences have been set for a single line, draw custom layers
func
addTextLinesIfNeeded
()
{
guard
let
textView
=
holderAsTextView
else
{
return
}
let
lineHeight
=
textView
.
multilineTextFont
?
.
lineHeight
??
SkeletonAppearance
.
default
.
multilineHeight
let
config
=
SkeletonMultilinesLayerConfig
(
lines
:
textView
.
numLines
,
lineHeight
:
textView
.
multilineTextFont
?
.
lineHeight
,
lineHeight
:
lineHeight
,
type
:
type
,
lastLineFillPercent
:
textView
.
lastLineFillingPercent
,
multilineCornerRadius
:
textView
.
multilineCornerRadius
,
multilineSpacing
:
textView
.
multilineSpacing
,
paddingInsets
:
textView
.
paddingInsets
)
paddingInsets
:
textView
.
paddingInsets
,
isRTL
:
holder
?
.
isRTL
??
false
)
maskLayer
.
addMultilinesLayers
(
for
:
config
)
}
func
updateLinesIfNeeded
()
{
guard
let
textView
=
holderAsTextView
else
{
return
}
let
lineHeight
=
textView
.
multilineTextFont
?
.
lineHeight
??
SkeletonAppearance
.
default
.
multilineHeight
let
config
=
SkeletonMultilinesLayerConfig
(
lines
:
textView
.
numLines
,
lineHeight
:
textView
.
multilineTextFont
?
.
lineHeight
,
lineHeight
:
lineHeight
,
type
:
type
,
lastLineFillPercent
:
textView
.
lastLineFillingPercent
,
multilineCornerRadius
:
textView
.
multilineCornerRadius
,
multilineSpacing
:
textView
.
multilineSpacing
,
paddingInsets
:
textView
.
paddingInsets
)
paddingInsets
:
textView
.
paddingInsets
,
isRTL
:
holder
?
.
isRTL
??
false
)
maskLayer
.
updateMultilinesLayers
(
for
:
config
)
}
var
holderAsTextView
:
ContainsMultilineText
?
{
guard
let
textView
=
holder
as?
ContainsMultilineText
,
(
textView
.
numLines
==
0
||
textView
.
numLines
>
1
||
textView
.
numLines
==
1
&&
!
SkeletonAppearance
.
default
.
renderSingleLineAsView
)
else
{
(
textView
.
numLines
==
-
1
||
textView
.
numLines
==
0
||
textView
.
numLines
>
1
||
textView
.
numLines
==
1
&&
!
SkeletonAppearance
.
default
.
renderSingleLineAsView
)
else
{
return
nil
}
return
textView
...
...
@@ -119,7 +122,7 @@ struct SkeletonLayer {
extension
SkeletonLayer
{
func
start
(
_
anim
:
SkeletonLayerAnimation
?
=
nil
,
completion
:
(()
->
Void
)?
=
nil
)
{
let
animation
=
anim
??
type
.
layerAnimation
let
animation
=
anim
??
type
.
defaultLayerAnimation
(
isRTL
:
holder
?
.
isRTL
??
false
)
contentLayer
.
playAnimation
(
animation
,
key
:
"skeletonAnimation"
,
completion
:
completion
)
}
...
...
Pods/SkeletonView/Sources/SkeletonView.swift
View file @
b4cfb21c
...
...
@@ -94,6 +94,7 @@ public extension UIView {
extension
UIView
{
@objc
func
skeletonLayoutSubviews
()
{
guard
Thread
.
isMainThread
else
{
return
}
skeletonLayoutSubviews
()
guard
isSkeletonActive
else
{
return
}
layoutSkeletonIfNeeded
()
...
...
@@ -113,6 +114,9 @@ extension UIView {
}
private
func
recursiveShowSkeleton
(
skeletonConfig
config
:
SkeletonConfig
,
root
:
UIView
?
=
nil
)
{
if
isHiddenWhenSkeletonIsActive
{
isHidden
=
true
}
guard
isSkeletonable
&&
!
isSkeletonActive
else
{
return
}
currentSkeletonConfig
=
config
swizzleLayoutSubviews
()
...
...
@@ -120,7 +124,7 @@ extension UIView {
addDummyDataSourceIfNeeded
()
subviewsSkeletonables
.
recursiveSearch
(
leafBlock
:
{
showSkeletonIfNotActive
(
skeletonConfig
:
config
)
}){
subview
in
})
{
subview
in
subview
.
recursiveShowSkeleton
(
skeletonConfig
:
config
)
}
...
...
@@ -148,7 +152,8 @@ extension UIView {
currentSkeletonConfig
=
config
updateDummyDataSourceIfNeeded
()
subviewsSkeletonables
.
recursiveSearch
(
leafBlock
:
{
if
skeletonLayer
?
.
type
!=
config
.
type
{
if
let
skeletonLayer
=
skeletonLayer
,
skeletonLayer
.
type
!=
config
.
type
{
removeSkeletonLayer
()
addSkeletonLayer
(
skeletonConfig
:
config
)
}
else
{
...
...
@@ -181,6 +186,9 @@ extension UIView {
private
func
recursiveHideSkeleton
(
reloadDataAfter
reload
:
Bool
,
transition
:
SkeletonTransitionStyle
,
root
:
UIView
?
=
nil
)
{
guard
isSkeletonActive
else
{
return
}
if
isHiddenWhenSkeletonIsActive
{
isHidden
=
false
}
currentSkeletonConfig
?
.
transition
=
transition
isUserInteractionEnabled
=
true
removeDummyDataSourceIfNeeded
(
reloadAfter
:
reload
)
...
...
Pods/SkeletonView/Sources/Transitions/UIView+Transitions.swift
View file @
b4cfb21c
...
...
@@ -8,7 +8,6 @@ extension CALayer {
switch
transition
{
case
.
none
:
completion
?()
break
case
.
crossDissolve
(
let
duration
):
layer
.
contentLayer
.
setOpacity
(
from
:
0
,
to
:
1
,
duration
:
duration
,
completion
:
completion
)
}
...
...
Pods/Target Support Files/SkeletonView/SkeletonView-Info.plist
View file @
b4cfb21c
...
...
@@ -15,7 +15,7 @@
<key>
CFBundlePackageType
</key>
<string>
FMWK
</string>
<key>
CFBundleShortVersionString
</key>
<string>
1.
8.7
</string>
<string>
1.
11.0
</string>
<key>
CFBundleSignature
</key>
<string>
????
</string>
<key>
CFBundleVersion
</key>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment