From 74f704f2534f1d9ee93017dc8d1f5620c16e6096 Mon Sep 17 00:00:00 2001 From: Takuma Yoshida Date: Tue, 8 Sep 2015 09:34:37 +0900 Subject: [PATCH 01/31] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index cb1acff..2deb41a 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ This is also [spinner loader](https://github.com/yoavlt/LiquidLoader) components - [x] liquid animation - [x] easily custoizable - [x] Objective-C compatible +- [x] Swift2.0 You can play a demo with [appetize.io](https://appetize.io/app/f4t42hgqbnbma4m12jcg3aeebg?device=iphone5s&scale=75&orientation=portrait) @@ -53,6 +54,8 @@ or, if you use [Carthage](https://github.com/Carthage/Carthage), add the followi github "yoavlt/LiquidFloatingActionButton" ``` +Please use `swift-2.0` branch if you adopt latest Xcode. + ## License LiquidFloatingActionButton is available under the MIT license. See the LICENSE file for more info. From cf904c8438eae1550a349b9a89b6da1c93f81ebe Mon Sep 17 00:00:00 2001 From: Takuma Yoshida Date: Tue, 8 Sep 2015 10:42:00 +0900 Subject: [PATCH 02/31] Support iOS 7.0+ for minimum deployment target --- Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj | 2 ++ Example/Pods/Pods.xcodeproj/project.pbxproj | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj b/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj index fb3637f..8794560 100644 --- a/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj +++ b/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj @@ -488,6 +488,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = LiquidFloatingActionButton/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MODULE_NAME = ExampleApp; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -500,6 +501,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = LiquidFloatingActionButton/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MODULE_NAME = ExampleApp; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index 57e5a13..5139fcb 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -571,7 +571,7 @@ GCC_PREFIX_HEADER = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton-prefix.pch"; INFOPLIST_FILE = "Target Support Files/LiquidFloatingActionButton/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.modulemap"; MTL_ENABLE_DEBUG_INFO = YES; @@ -599,7 +599,7 @@ GCC_PREFIX_HEADER = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton-prefix.pch"; INFOPLIST_FILE = "Target Support Files/LiquidFloatingActionButton/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.modulemap"; MTL_ENABLE_DEBUG_INFO = NO; From 38349f5c86d1a57e26c94f39a6e1d7451c2bf9fd Mon Sep 17 00:00:00 2001 From: Takuma Yoshida Date: Tue, 8 Sep 2015 10:45:45 +0900 Subject: [PATCH 03/31] Bump version to 0.1.2 --- Example/Podfile.lock | 6 +- .../LiquidFloatingActionButton.podspec.json | 6 +- Example/Pods/Manifest.lock | 6 +- Example/Pods/Pods.xcodeproj/project.pbxproj | 578 +++++++++--------- .../LiquidFloatingActionButton.xcscheme | 22 +- .../LiquidFloatingActionButton/Info.plist | 2 +- ...iquidFloatingActionButton-Private.xcconfig | 6 - .../LiquidFloatingActionButton.xcconfig | 5 + ...FloatingActionButton_Example-frameworks.sh | 42 +- ...dFloatingActionButton_Example-resources.sh | 2 +- ...idFloatingActionButton_Tests-frameworks.sh | 42 +- ...uidFloatingActionButton_Tests-resources.sh | 2 +- LiquidFloatingActionButton.podspec | 4 +- 13 files changed, 389 insertions(+), 334 deletions(-) delete mode 100644 Example/Pods/Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton-Private.xcconfig diff --git a/Example/Podfile.lock b/Example/Podfile.lock index bcd06c0..e191597 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - LiquidFloatingActionButton (0.1.1) + - LiquidFloatingActionButton (0.1.2) DEPENDENCIES: - LiquidFloatingActionButton (from `../`) @@ -9,6 +9,6 @@ EXTERNAL SOURCES: :path: ../ SPEC CHECKSUMS: - LiquidFloatingActionButton: dcdae1e59eb07eccbf60c027001a4d6731c345c9 + LiquidFloatingActionButton: 438a98371cfba6856ef37a40c106a75462b237b9 -COCOAPODS: 0.38.2 +COCOAPODS: 0.39.0.beta.4 diff --git a/Example/Pods/Local Podspecs/LiquidFloatingActionButton.podspec.json b/Example/Pods/Local Podspecs/LiquidFloatingActionButton.podspec.json index dc8ed83..06f7286 100644 --- a/Example/Pods/Local Podspecs/LiquidFloatingActionButton.podspec.json +++ b/Example/Pods/Local Podspecs/LiquidFloatingActionButton.podspec.json @@ -1,6 +1,6 @@ { "name": "LiquidFloatingActionButton", - "version": "0.1.1", + "version": "0.1.2", "summary": "Material Design Floating Action Button in liquid state", "description": "Material Design Floating Action Button in liquid state inspired by http://www.materialup.com/posts/material-in-a-liquid-state", "homepage": "https://github.com/yoavlt/LiquidFloatingActionButton", @@ -10,10 +10,10 @@ }, "source": { "git": "https://github.com/yoavlt/LiquidFloatingActionButton.git", - "tag": "0.1.1" + "tag": "0.1.2" }, "platforms": { - "ios": "8.0" + "ios": "7.0" }, "requires_arc": true, "source_files": "Pod/Classes/**/*", diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index bcd06c0..e191597 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -1,5 +1,5 @@ PODS: - - LiquidFloatingActionButton (0.1.1) + - LiquidFloatingActionButton (0.1.2) DEPENDENCIES: - LiquidFloatingActionButton (from `../`) @@ -9,6 +9,6 @@ EXTERNAL SOURCES: :path: ../ SPEC CHECKSUMS: - LiquidFloatingActionButton: dcdae1e59eb07eccbf60c027001a4d6731c345c9 + LiquidFloatingActionButton: 438a98371cfba6856ef37a40c106a75462b237b9 -COCOAPODS: 0.38.2 +COCOAPODS: 0.39.0.beta.4 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index 5139fcb..6ed6432 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -7,187 +7,189 @@ objects = { /* Begin PBXBuildFile section */ - 119D7BE15D8F40D677D1963E8771581F /* LiquidFloatingActionButton-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C7E15A88CD6876DCC1AD51D7A7E065BB /* LiquidFloatingActionButton-dummy.m */; }; - 185BF330B9153872400679C5EF897FF5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 807F4BC91B1C2F5FE755D0D4A427FB5B /* Foundation.framework */; }; - 1C2D993376073527FD246F1088AF4E1E /* Pods-LiquidFloatingActionButton_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 41701A3078F24067307605B779D934B7 /* Pods-LiquidFloatingActionButton_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1D56C07ED2BA8F14A6A68D2F0E276BE0 /* Pods-LiquidFloatingActionButton_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D9077E4927E9695422A79FEB4EF8C602 /* Pods-LiquidFloatingActionButton_Tests-dummy.m */; }; - 2E3CDA4A2AD6793E68281F2CE4EE20E5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 807F4BC91B1C2F5FE755D0D4A427FB5B /* Foundation.framework */; }; - 372673E70D2E1D1799E46902786D8A66 /* UIColorEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9B3B2F709E55FAC4B39F970DBBCE111 /* UIColorEx.swift */; }; - 3A2AB24B1859502FC4B3FAB340C5F938 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8CB81E45CE784A0CD510C822D68AC14D /* Pods-LiquidFloatingActionButton_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 557B94E3F314A7422DC672F88508DBAC /* CGRectEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24229DEF3BCE65BA9E5C89FAB140A066 /* CGRectEx.swift */; }; - A33604F863089E4618497F1B701F2F1E /* Pods-LiquidFloatingActionButton_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 79C263860CAD5EA0C20020CFB66689AC /* Pods-LiquidFloatingActionButton_Example-dummy.m */; }; - A8587ADDB0A1E7CD5877F3D300FECFE0 /* LiquidFloatingActionButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D6D675310BDE71031F1A86D85D66687 /* LiquidFloatingActionButton.swift */; }; - AE2FC46B013703B174D95B6883ABF919 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 807F4BC91B1C2F5FE755D0D4A427FB5B /* Foundation.framework */; }; - C5BDE0BE60DD05F2BE2A2986E15E5BA4 /* LiquidFloatingActionButton-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D0A3130D226D2E1DA50B7883093650A3 /* LiquidFloatingActionButton-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CFF1FA7BE5F8DEFC8D914592416B77B2 /* ArrayEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8E82F1B8E8E62ABF5AA859AAE4917AF0 /* ArrayEx.swift */; }; - D1B359A562E5E8604A8482A253BBC67C /* CGPointEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC40B44BE3933B69B279E15245A12568 /* CGPointEx.swift */; }; - F1B303C3BC05512DDA1A27F9B41BF71B /* LiquidUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4D8DCB4F58711278DCFBD77552F4A92 /* LiquidUtil.swift */; }; - FEDDA81A592B36D58D78693376C3657C /* LiquittableCircle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F1014CD2AE290F5375F0B8EE781706D /* LiquittableCircle.swift */; }; - FF41A1F7098EB544F8C80873C6A2D33D /* LiquidFloatingActionButton.bundle in Resources */ = {isa = PBXBuildFile; fileRef = F919A111BF638059A3A4AF55BCE6DDE8 /* LiquidFloatingActionButton.bundle */; }; - FFAAA726F6C9D81CB152674E925DEC2E /* SimpleCircleLiquidEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5B2CD1F965CE7AD227881600F03FA6C /* SimpleCircleLiquidEngine.swift */; }; + 0A7AD9C15F76099151628B9C5C35D2BD /* UIColorEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = E42CA325B79684C726C19F85607900FC /* UIColorEx.swift */; }; + 130317FCA600E666EA59F57FFAFFF387 /* LiquidFloatingActionButton-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 62863AE2F5A2991C09D96D91F96AB20F /* LiquidFloatingActionButton-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1C2D993376073527FD246F1088AF4E1E /* Pods-LiquidFloatingActionButton_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A4A759ED5E8ED2278F9D307ABD11FC5 /* Pods-LiquidFloatingActionButton_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1D56C07ED2BA8F14A6A68D2F0E276BE0 /* Pods-LiquidFloatingActionButton_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 97232F629F7FC2174E1BE76D76737706 /* Pods-LiquidFloatingActionButton_Tests-dummy.m */; }; + 2572B555E0BB6788A4D3731F0C47A939 /* ArrayEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE4D599ADD8C5817A257D99E31E5E9F /* ArrayEx.swift */; }; + 2E3CDA4A2AD6793E68281F2CE4EE20E5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BF44673BAE0B3D0502B0E8BAE57BE02 /* Foundation.framework */; }; + 3A2AB24B1859502FC4B3FAB340C5F938 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FD568EC2ADE52671E9F40F5B7FE5D901 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 52A117DCCE317F6B7A88A280D029A029 /* LiquidUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 11A544CA5E636439F49F8B9F78D6C1A6 /* LiquidUtil.swift */; }; + 54AC26F999C5FDC9E5B3820BD6B6959C /* LiquidFloatingActionButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0571D78403C61D07EC5E5A03EF3C2C7 /* LiquidFloatingActionButton.swift */; }; + 5A5257075A8B1C3E53FB09685EF59DCB /* LiquidFloatingActionButton-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2CCB74AB01D76E6A48B35EBF5BD59801 /* LiquidFloatingActionButton-dummy.m */; }; + 6EC4DD10BB58BA1E85E5AD799AB70903 /* CGPointEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5798F86F5740823498DF2B386EFECF4B /* CGPointEx.swift */; }; + 8051066CFC8552283EB90A214CF772DF /* CGRectEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94C714ADB336B316538AA295B551E08D /* CGRectEx.swift */; }; + 8D9422957C9F80DB9E90D3979C1BDF77 /* SimpleCircleLiquidEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E2A79CD87105F47157836D6FE3B6078 /* SimpleCircleLiquidEngine.swift */; }; + A33604F863089E4618497F1B701F2F1E /* Pods-LiquidFloatingActionButton_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 15F42031AA343001A7E2C8D3D69C9DE2 /* Pods-LiquidFloatingActionButton_Example-dummy.m */; }; + ACCC8C618B6E5693EC3A4CB4AEA8D7EE /* LiquittableCircle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9131CB4D66BE4644E58417A00FF025FB /* LiquittableCircle.swift */; }; + AE2FC46B013703B174D95B6883ABF919 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BF44673BAE0B3D0502B0E8BAE57BE02 /* Foundation.framework */; }; + BA14B2A9D6402CAAEEA13AFCFA724DD2 /* LiquidFloatingActionButton.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 36153C0EC3676355EBA5CEE2F6EDE936 /* LiquidFloatingActionButton.bundle */; }; + BFFB405C2C761FD7C1B7B33D25CCC13C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3BF44673BAE0B3D0502B0E8BAE57BE02 /* Foundation.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 3326D4EA62E6D10455A0FAC1D765F136 /* PBXContainerItemProxy */ = { + 69F69795D612A244FEE055A538D29F3B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 5C594EA68A07180C4CB76C704FDACDC1; - remoteInfo = "LiquidFloatingActionButton-LiquidFloatingActionButton"; + remoteGlobalIDString = 4B6EA48CB3BF157DFBE8AD0B5390FD54; + remoteInfo = LiquidFloatingActionButton; }; - B7FDF736E24B99809699C3C40B3FBBD0 /* PBXContainerItemProxy */ = { + CEA852144866EBE7AA8EFEFC7D6F37DF /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = D06B761E12B23CA5F4948260AB5E3E2B; - remoteInfo = LiquidFloatingActionButton; + remoteGlobalIDString = 5EB2706E8DDAC8712C6B9B96871D4022; + remoteInfo = "LiquidFloatingActionButton-LiquidFloatingActionButton"; }; - F541CC5D0E547F0FABF9DFD2C40F9AD1 /* PBXContainerItemProxy */ = { + F331CD435AB3B01E81CA0D2143187A9A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = D06B761E12B23CA5F4948260AB5E3E2B; + remoteGlobalIDString = 4B6EA48CB3BF157DFBE8AD0B5390FD54; remoteInfo = LiquidFloatingActionButton; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 0870801A4696ED1AA5FA6C54E780C599 /* LiquidFloatingActionButton-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LiquidFloatingActionButton-prefix.pch"; sourceTree = ""; }; - 0D6D675310BDE71031F1A86D85D66687 /* LiquidFloatingActionButton.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiquidFloatingActionButton.swift; sourceTree = ""; }; - 24229DEF3BCE65BA9E5C89FAB140A066 /* CGRectEx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CGRectEx.swift; sourceTree = ""; }; - 329867621ACFBF779E0D81423D7B711F /* LiquidFloatingActionButton.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LiquidFloatingActionButton.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 11A544CA5E636439F49F8B9F78D6C1A6 /* LiquidUtil.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiquidUtil.swift; sourceTree = ""; }; + 15C6FC5FD383058121E6098617B98C67 /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LiquidFloatingActionButton_Example.debug.xcconfig"; sourceTree = ""; }; + 15F42031AA343001A7E2C8D3D69C9DE2 /* Pods-LiquidFloatingActionButton_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-LiquidFloatingActionButton_Example-dummy.m"; sourceTree = ""; }; + 1A4A759ED5E8ED2278F9D307ABD11FC5 /* Pods-LiquidFloatingActionButton_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-LiquidFloatingActionButton_Example-umbrella.h"; sourceTree = ""; }; + 2CCB74AB01D76E6A48B35EBF5BD59801 /* LiquidFloatingActionButton-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LiquidFloatingActionButton-dummy.m"; sourceTree = ""; }; + 2CE4D599ADD8C5817A257D99E31E5E9F /* ArrayEx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ArrayEx.swift; sourceTree = ""; }; 32A2AF2E2F4B1499E450931CC0CAD202 /* Pods-LiquidFloatingActionButton_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-LiquidFloatingActionButton_Example.modulemap"; sourceTree = ""; }; - 339F90D5E79204E8BDC21F3AF4C0325F /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 34A4795691704A615AA138BF95042DC5 /* Pods-LiquidFloatingActionButton_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-LiquidFloatingActionButton_Example-acknowledgements.markdown"; sourceTree = ""; }; + 36153C0EC3676355EBA5CEE2F6EDE936 /* LiquidFloatingActionButton.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LiquidFloatingActionButton.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 37A83F173235565EDE9A076A15250F07 /* Pods-LiquidFloatingActionButton_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LiquidFloatingActionButton_Example-resources.sh"; sourceTree = ""; }; - 41701A3078F24067307605B779D934B7 /* Pods-LiquidFloatingActionButton_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-LiquidFloatingActionButton_Example-umbrella.h"; sourceTree = ""; }; + 3BF44673BAE0B3D0502B0E8BAE57BE02 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 4EB840C0FCFA128ECC2A9B932415D6A8 /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LiquidFloatingActionButton_Example.release.xcconfig"; sourceTree = ""; }; 5326C5CA8426C0CF6D677E91BF2A2C52 /* Pods_LiquidFloatingActionButton_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LiquidFloatingActionButton_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5798F86F5740823498DF2B386EFECF4B /* CGPointEx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CGPointEx.swift; sourceTree = ""; }; + 5B850A0AE5BE721D248F258FB455C96E /* LiquidFloatingActionButton-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LiquidFloatingActionButton-prefix.pch"; sourceTree = ""; }; + 62863AE2F5A2991C09D96D91F96AB20F /* LiquidFloatingActionButton-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LiquidFloatingActionButton-umbrella.h"; sourceTree = ""; }; 63AA079CA68C8594DE2EFCEECD70391B /* Pods-LiquidFloatingActionButton_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-LiquidFloatingActionButton_Tests-acknowledgements.plist"; sourceTree = ""; }; - 79C263860CAD5EA0C20020CFB66689AC /* Pods-LiquidFloatingActionButton_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-LiquidFloatingActionButton_Example-dummy.m"; sourceTree = ""; }; + 70722508FEFCEA523F7B8F66D9DDF4F5 /* LiquidFloatingActionButton.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = LiquidFloatingActionButton.modulemap; sourceTree = ""; }; + 716CC647A2F2BF005786C35BB4874F98 /* LiquidFloatingActionButton.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LiquidFloatingActionButton.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 7BD5E598A90E9B5D7F5BE26DD5C7B6D6 /* Pods-LiquidFloatingActionButton_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LiquidFloatingActionButton_Tests-resources.sh"; sourceTree = ""; }; - 7F1014CD2AE290F5375F0B8EE781706D /* LiquittableCircle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiquittableCircle.swift; sourceTree = ""; }; - 807F4BC91B1C2F5FE755D0D4A427FB5B /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 873AFE486B10F729482FC627D4865F8E /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LiquidFloatingActionButton_Tests.debug.xcconfig"; sourceTree = ""; }; - 8CB81E45CE784A0CD510C822D68AC14D /* Pods-LiquidFloatingActionButton_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-LiquidFloatingActionButton_Tests-umbrella.h"; sourceTree = ""; }; + 82BC29399E8CB5DE4082F0C18B2BA3DC /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 8DB80E76EE113421A98CB8EE23DE90D4 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8E82F1B8E8E62ABF5AA859AAE4917AF0 /* ArrayEx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ArrayEx.swift; sourceTree = ""; }; 8EF67744D713AB87F9A34356FCB4C593 /* Pods-LiquidFloatingActionButton_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-LiquidFloatingActionButton_Tests.modulemap"; sourceTree = ""; }; - 93B52232525F2995D27E55C5082C9833 /* LiquidFloatingActionButton-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "LiquidFloatingActionButton-Private.xcconfig"; sourceTree = ""; }; + 9131CB4D66BE4644E58417A00FF025FB /* LiquittableCircle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiquittableCircle.swift; sourceTree = ""; }; + 94C714ADB336B316538AA295B551E08D /* CGRectEx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CGRectEx.swift; sourceTree = ""; }; 96F405472686341EFEEAB4A3B7E44B87 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 97232F629F7FC2174E1BE76D76737706 /* Pods-LiquidFloatingActionButton_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-LiquidFloatingActionButton_Tests-dummy.m"; sourceTree = ""; }; + 9B73872B15E9C56304335676CC951C90 /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LiquidFloatingActionButton_Tests.debug.xcconfig"; sourceTree = ""; }; + 9E2A79CD87105F47157836D6FE3B6078 /* SimpleCircleLiquidEngine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SimpleCircleLiquidEngine.swift; sourceTree = ""; }; A206D3FB01DAFF8C15F21FB01DFFCE5C /* Pods-LiquidFloatingActionButton_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LiquidFloatingActionButton_Example-frameworks.sh"; sourceTree = ""; }; - ABA02E81D896C5C32929FE69E9A8CDEE /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LiquidFloatingActionButton_Example.release.xcconfig"; sourceTree = ""; }; - AC0E0D813B48263918505658676B0E85 /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LiquidFloatingActionButton_Tests.release.xcconfig"; sourceTree = ""; }; - AC40B44BE3933B69B279E15245A12568 /* CGPointEx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CGPointEx.swift; sourceTree = ""; }; + AA63D17174A63F13D3434AAB04CB95CD /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LiquidFloatingActionButton_Tests.release.xcconfig"; sourceTree = ""; }; B80DBE465AE8ED339A23BA7027E83E9C /* Pods-LiquidFloatingActionButton_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-LiquidFloatingActionButton_Example-acknowledgements.plist"; sourceTree = ""; }; - B9B3B2F709E55FAC4B39F970DBBCE111 /* UIColorEx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIColorEx.swift; sourceTree = ""; }; BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - C4D8DCB4F58711278DCFBD77552F4A92 /* LiquidUtil.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiquidUtil.swift; sourceTree = ""; }; - C7E15A88CD6876DCC1AD51D7A7E065BB /* LiquidFloatingActionButton-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LiquidFloatingActionButton-dummy.m"; sourceTree = ""; }; - D0A3130D226D2E1DA50B7883093650A3 /* LiquidFloatingActionButton-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LiquidFloatingActionButton-umbrella.h"; sourceTree = ""; }; + C0571D78403C61D07EC5E5A03EF3C2C7 /* LiquidFloatingActionButton.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiquidFloatingActionButton.swift; sourceTree = ""; }; D2E296184E24EBA83C604214BE7B30AF /* Pods-LiquidFloatingActionButton_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-LiquidFloatingActionButton_Tests-acknowledgements.markdown"; sourceTree = ""; }; - D32DD17D1BA46C6311DE0766A1FABAAE /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LiquidFloatingActionButton_Example.debug.xcconfig"; sourceTree = ""; }; - D9077E4927E9695422A79FEB4EF8C602 /* Pods-LiquidFloatingActionButton_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-LiquidFloatingActionButton_Tests-dummy.m"; sourceTree = ""; }; + D34A96F77F9058408C76176EF3F40314 /* LiquidFloatingActionButton.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LiquidFloatingActionButton.xcconfig; sourceTree = ""; }; E365F5D85C8B589E45B7CA5165A49929 /* Pods-LiquidFloatingActionButton_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LiquidFloatingActionButton_Tests-frameworks.sh"; sourceTree = ""; }; - E5B2CD1F965CE7AD227881600F03FA6C /* SimpleCircleLiquidEngine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SimpleCircleLiquidEngine.swift; sourceTree = ""; }; - EC0689E2454E7805611C945C7839241C /* LiquidFloatingActionButton.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LiquidFloatingActionButton.xcconfig; sourceTree = ""; }; - EF975982DD1096120E110F80991633B4 /* LiquidFloatingActionButton.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = LiquidFloatingActionButton.modulemap; sourceTree = ""; }; - F919A111BF638059A3A4AF55BCE6DDE8 /* LiquidFloatingActionButton.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LiquidFloatingActionButton.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + E42CA325B79684C726C19F85607900FC /* UIColorEx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIColorEx.swift; sourceTree = ""; }; FB636B7F6C23BB05B0708C64E64D2387 /* Pods_LiquidFloatingActionButton_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LiquidFloatingActionButton_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FD568EC2ADE52671E9F40F5B7FE5D901 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-LiquidFloatingActionButton_Tests-umbrella.h"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 27A08932DD2FACB967E4FFB535D35AD9 /* Frameworks */ = { + 15DB6940D2D4C6862D67F2617631D325 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 2E3CDA4A2AD6793E68281F2CE4EE20E5 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2F0218E3C956C79C7BA26354AED022E8 /* Frameworks */ = { + 27A08932DD2FACB967E4FFB535D35AD9 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - AE2FC46B013703B174D95B6883ABF919 /* Foundation.framework in Frameworks */, + 2E3CDA4A2AD6793E68281F2CE4EE20E5 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 6328C9B79847B98EF9E193439E1EDAF3 /* Frameworks */ = { + 2F0218E3C956C79C7BA26354AED022E8 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + AE2FC46B013703B174D95B6883ABF919 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 67C35F330B7A2A35BE33229CDC69BDCC /* Frameworks */ = { + 4D8771435540695A399902459F085E20 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 185BF330B9153872400679C5EF897FF5 /* Foundation.framework in Frameworks */, + BFFB405C2C761FD7C1B7B33D25CCC13C /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 14DB5A48698101126F92439C8D5718BC /* Support Files */ = { + 2B483F03EA79C3C9DDEEF7DB0181AFC0 /* Development Pods */ = { isa = PBXGroup; children = ( - 339F90D5E79204E8BDC21F3AF4C0325F /* Info.plist */, - EF975982DD1096120E110F80991633B4 /* LiquidFloatingActionButton.modulemap */, - EC0689E2454E7805611C945C7839241C /* LiquidFloatingActionButton.xcconfig */, - 93B52232525F2995D27E55C5082C9833 /* LiquidFloatingActionButton-Private.xcconfig */, - C7E15A88CD6876DCC1AD51D7A7E065BB /* LiquidFloatingActionButton-dummy.m */, - 0870801A4696ED1AA5FA6C54E780C599 /* LiquidFloatingActionButton-prefix.pch */, - D0A3130D226D2E1DA50B7883093650A3 /* LiquidFloatingActionButton-umbrella.h */, + AE2F18FBC8136A267123CC803D2C583B /* LiquidFloatingActionButton */, ); - name = "Support Files"; - path = "Example/Pods/Target Support Files/LiquidFloatingActionButton"; + name = "Development Pods"; sourceTree = ""; }; - 2776B6B28B66CE6D69A94ABA52913152 /* Pod */ = { + 53F661C0CA7190D2CF05023FB33D61E4 /* iOS */ = { isa = PBXGroup; children = ( - E01B48F704A9767771567FD1883A3375 /* Classes */, + 3BF44673BAE0B3D0502B0E8BAE57BE02 /* Foundation.framework */, ); - path = Pod; + name = iOS; sourceTree = ""; }; - 2B483F03EA79C3C9DDEEF7DB0181AFC0 /* Development Pods */ = { + 6DC6B0B137923F69A8A557546B1E9E58 /* Products */ = { isa = PBXGroup; children = ( - 685DC04CDF65DA44D0A982081D5C4623 /* LiquidFloatingActionButton */, + 36153C0EC3676355EBA5CEE2F6EDE936 /* LiquidFloatingActionButton.bundle */, + 716CC647A2F2BF005786C35BB4874F98 /* LiquidFloatingActionButton.framework */, + 5326C5CA8426C0CF6D677E91BF2A2C52 /* Pods_LiquidFloatingActionButton_Example.framework */, + FB636B7F6C23BB05B0708C64E64D2387 /* Pods_LiquidFloatingActionButton_Tests.framework */, ); - name = "Development Pods"; + name = Products; sourceTree = ""; }; - 53F661C0CA7190D2CF05023FB33D61E4 /* iOS */ = { + 7DB346D0F39D3F0E887471402A8071AB = { isa = PBXGroup; children = ( - 807F4BC91B1C2F5FE755D0D4A427FB5B /* Foundation.framework */, + BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */, + 2B483F03EA79C3C9DDEEF7DB0181AFC0 /* Development Pods */, + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, + 6DC6B0B137923F69A8A557546B1E9E58 /* Products */, + F4BDFB4BCFC42C98938E70B06FC40921 /* Targets Support Files */, ); - name = iOS; sourceTree = ""; }; - 685DC04CDF65DA44D0A982081D5C4623 /* LiquidFloatingActionButton */ = { + 80DA2BFE26A78E748CCDAD5FE668A48C /* Classes */ = { isa = PBXGroup; children = ( - 2776B6B28B66CE6D69A94ABA52913152 /* Pod */, - 14DB5A48698101126F92439C8D5718BC /* Support Files */, + 2CE4D599ADD8C5817A257D99E31E5E9F /* ArrayEx.swift */, + 5798F86F5740823498DF2B386EFECF4B /* CGPointEx.swift */, + 94C714ADB336B316538AA295B551E08D /* CGRectEx.swift */, + C0571D78403C61D07EC5E5A03EF3C2C7 /* LiquidFloatingActionButton.swift */, + 11A544CA5E636439F49F8B9F78D6C1A6 /* LiquidUtil.swift */, + 9131CB4D66BE4644E58417A00FF025FB /* LiquittableCircle.swift */, + 9E2A79CD87105F47157836D6FE3B6078 /* SimpleCircleLiquidEngine.swift */, + E42CA325B79684C726C19F85607900FC /* UIColorEx.swift */, ); - name = LiquidFloatingActionButton; - path = ../..; + path = Classes; sourceTree = ""; }; - 7DB346D0F39D3F0E887471402A8071AB = { + AE2F18FBC8136A267123CC803D2C583B /* LiquidFloatingActionButton */ = { isa = PBXGroup; children = ( - BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */, - 2B483F03EA79C3C9DDEEF7DB0181AFC0 /* Development Pods */, - BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, - CCA510CFBEA2D207524CDA0D73C3B561 /* Products */, - F4BDFB4BCFC42C98938E70B06FC40921 /* Targets Support Files */, + F49E6C75BCE430958DB1CC52D1914458 /* Pod */, + D401308214B3B3372E1C579337305FF5 /* Support Files */, ); + name = LiquidFloatingActionButton; + path = ../..; sourceTree = ""; }; BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { @@ -198,15 +200,18 @@ name = Frameworks; sourceTree = ""; }; - CCA510CFBEA2D207524CDA0D73C3B561 /* Products */ = { + D401308214B3B3372E1C579337305FF5 /* Support Files */ = { isa = PBXGroup; children = ( - F919A111BF638059A3A4AF55BCE6DDE8 /* LiquidFloatingActionButton.bundle */, - 329867621ACFBF779E0D81423D7B711F /* LiquidFloatingActionButton.framework */, - 5326C5CA8426C0CF6D677E91BF2A2C52 /* Pods_LiquidFloatingActionButton_Example.framework */, - FB636B7F6C23BB05B0708C64E64D2387 /* Pods_LiquidFloatingActionButton_Tests.framework */, + 82BC29399E8CB5DE4082F0C18B2BA3DC /* Info.plist */, + 70722508FEFCEA523F7B8F66D9DDF4F5 /* LiquidFloatingActionButton.modulemap */, + D34A96F77F9058408C76176EF3F40314 /* LiquidFloatingActionButton.xcconfig */, + 2CCB74AB01D76E6A48B35EBF5BD59801 /* LiquidFloatingActionButton-dummy.m */, + 5B850A0AE5BE721D248F258FB455C96E /* LiquidFloatingActionButton-prefix.pch */, + 62863AE2F5A2991C09D96D91F96AB20F /* LiquidFloatingActionButton-umbrella.h */, ); - name = Products; + name = "Support Files"; + path = "Example/Pods/Target Support Files/LiquidFloatingActionButton"; sourceTree = ""; }; D6E0DF24DD4243EB00821C0996A56027 /* Pods-LiquidFloatingActionButton_Example */ = { @@ -216,32 +221,17 @@ 32A2AF2E2F4B1499E450931CC0CAD202 /* Pods-LiquidFloatingActionButton_Example.modulemap */, 34A4795691704A615AA138BF95042DC5 /* Pods-LiquidFloatingActionButton_Example-acknowledgements.markdown */, B80DBE465AE8ED339A23BA7027E83E9C /* Pods-LiquidFloatingActionButton_Example-acknowledgements.plist */, - 79C263860CAD5EA0C20020CFB66689AC /* Pods-LiquidFloatingActionButton_Example-dummy.m */, + 15F42031AA343001A7E2C8D3D69C9DE2 /* Pods-LiquidFloatingActionButton_Example-dummy.m */, A206D3FB01DAFF8C15F21FB01DFFCE5C /* Pods-LiquidFloatingActionButton_Example-frameworks.sh */, 37A83F173235565EDE9A076A15250F07 /* Pods-LiquidFloatingActionButton_Example-resources.sh */, - 41701A3078F24067307605B779D934B7 /* Pods-LiquidFloatingActionButton_Example-umbrella.h */, - D32DD17D1BA46C6311DE0766A1FABAAE /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */, - ABA02E81D896C5C32929FE69E9A8CDEE /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */, + 1A4A759ED5E8ED2278F9D307ABD11FC5 /* Pods-LiquidFloatingActionButton_Example-umbrella.h */, + 15C6FC5FD383058121E6098617B98C67 /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */, + 4EB840C0FCFA128ECC2A9B932415D6A8 /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */, ); name = "Pods-LiquidFloatingActionButton_Example"; path = "Target Support Files/Pods-LiquidFloatingActionButton_Example"; sourceTree = ""; }; - E01B48F704A9767771567FD1883A3375 /* Classes */ = { - isa = PBXGroup; - children = ( - 8E82F1B8E8E62ABF5AA859AAE4917AF0 /* ArrayEx.swift */, - AC40B44BE3933B69B279E15245A12568 /* CGPointEx.swift */, - 24229DEF3BCE65BA9E5C89FAB140A066 /* CGRectEx.swift */, - 0D6D675310BDE71031F1A86D85D66687 /* LiquidFloatingActionButton.swift */, - C4D8DCB4F58711278DCFBD77552F4A92 /* LiquidUtil.swift */, - 7F1014CD2AE290F5375F0B8EE781706D /* LiquittableCircle.swift */, - E5B2CD1F965CE7AD227881600F03FA6C /* SimpleCircleLiquidEngine.swift */, - B9B3B2F709E55FAC4B39F970DBBCE111 /* UIColorEx.swift */, - ); - path = Classes; - sourceTree = ""; - }; E05C697D61064335D42A08CC9BD13553 /* Pods-LiquidFloatingActionButton_Tests */ = { isa = PBXGroup; children = ( @@ -249,17 +239,25 @@ 8EF67744D713AB87F9A34356FCB4C593 /* Pods-LiquidFloatingActionButton_Tests.modulemap */, D2E296184E24EBA83C604214BE7B30AF /* Pods-LiquidFloatingActionButton_Tests-acknowledgements.markdown */, 63AA079CA68C8594DE2EFCEECD70391B /* Pods-LiquidFloatingActionButton_Tests-acknowledgements.plist */, - D9077E4927E9695422A79FEB4EF8C602 /* Pods-LiquidFloatingActionButton_Tests-dummy.m */, + 97232F629F7FC2174E1BE76D76737706 /* Pods-LiquidFloatingActionButton_Tests-dummy.m */, E365F5D85C8B589E45B7CA5165A49929 /* Pods-LiquidFloatingActionButton_Tests-frameworks.sh */, 7BD5E598A90E9B5D7F5BE26DD5C7B6D6 /* Pods-LiquidFloatingActionButton_Tests-resources.sh */, - 8CB81E45CE784A0CD510C822D68AC14D /* Pods-LiquidFloatingActionButton_Tests-umbrella.h */, - 873AFE486B10F729482FC627D4865F8E /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */, - AC0E0D813B48263918505658676B0E85 /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */, + FD568EC2ADE52671E9F40F5B7FE5D901 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h */, + 9B73872B15E9C56304335676CC951C90 /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */, + AA63D17174A63F13D3434AAB04CB95CD /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */, ); name = "Pods-LiquidFloatingActionButton_Tests"; path = "Target Support Files/Pods-LiquidFloatingActionButton_Tests"; sourceTree = ""; }; + F49E6C75BCE430958DB1CC52D1914458 /* Pod */ = { + isa = PBXGroup; + children = ( + 80DA2BFE26A78E748CCDAD5FE668A48C /* Classes */, + ); + path = Pod; + sourceTree = ""; + }; F4BDFB4BCFC42C98938E70B06FC40921 /* Targets Support Files */ = { isa = PBXGroup; children = ( @@ -280,19 +278,19 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 6603C3E0EEAD076EDDFBB82ED39B10E9 /* Headers */ = { + 1FC3159C29F757FE0AEE740AA959524F /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 1C2D993376073527FD246F1088AF4E1E /* Pods-LiquidFloatingActionButton_Example-umbrella.h in Headers */, + 130317FCA600E666EA59F57FFAFFF387 /* LiquidFloatingActionButton-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - D6BB510E54FE05B7BB7CF8737132434D /* Headers */ = { + 6603C3E0EEAD076EDDFBB82ED39B10E9 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - C5BDE0BE60DD05F2BE2A2986E15E5BA4 /* LiquidFloatingActionButton-umbrella.h in Headers */, + 1C2D993376073527FD246F1088AF4E1E /* Pods-LiquidFloatingActionButton_Example-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -310,13 +308,32 @@ buildRules = ( ); dependencies = ( - A7A9C65A9F84557ACD10D06E0983FB2F /* PBXTargetDependency */, + A24A18B58CF52257ED6006BD70BEB1BA /* PBXTargetDependency */, ); name = "Pods-LiquidFloatingActionButton_Example"; productName = "Pods-LiquidFloatingActionButton_Example"; productReference = 5326C5CA8426C0CF6D677E91BF2A2C52 /* Pods_LiquidFloatingActionButton_Example.framework */; productType = "com.apple.product-type.framework"; }; + 4B6EA48CB3BF157DFBE8AD0B5390FD54 /* LiquidFloatingActionButton */ = { + isa = PBXNativeTarget; + buildConfigurationList = 83F990A709292C954BF97ABFF601FED6 /* Build configuration list for PBXNativeTarget "LiquidFloatingActionButton" */; + buildPhases = ( + 2D7B58F037108E8E4F408A2DFDCFC22A /* Sources */, + 4D8771435540695A399902459F085E20 /* Frameworks */, + 945188E787FF4EF1A9E3BB49051A2645 /* Resources */, + 1FC3159C29F757FE0AEE740AA959524F /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + 411001C527B9918F675DCB729D860F57 /* PBXTargetDependency */, + ); + name = LiquidFloatingActionButton; + productName = LiquidFloatingActionButton; + productReference = 716CC647A2F2BF005786C35BB4874F98 /* LiquidFloatingActionButton.framework */; + productType = "com.apple.product-type.framework"; + }; 549EC8F1186C4136AD3D4CBFF076E300 /* Pods-LiquidFloatingActionButton_Tests */ = { isa = PBXNativeTarget; buildConfigurationList = 3C569544DC2589FEA8D7DA4B3A85C3AC /* Build configuration list for PBXNativeTarget "Pods-LiquidFloatingActionButton_Tests" */; @@ -328,20 +345,20 @@ buildRules = ( ); dependencies = ( - 12B6BAA8C6602214AB46FA2D805B8728 /* PBXTargetDependency */, + BFD2B3EF26CC41AF6E4D00D3AEC3602E /* PBXTargetDependency */, ); name = "Pods-LiquidFloatingActionButton_Tests"; productName = "Pods-LiquidFloatingActionButton_Tests"; productReference = FB636B7F6C23BB05B0708C64E64D2387 /* Pods_LiquidFloatingActionButton_Tests.framework */; productType = "com.apple.product-type.framework"; }; - 5C594EA68A07180C4CB76C704FDACDC1 /* LiquidFloatingActionButton-LiquidFloatingActionButton */ = { + 5EB2706E8DDAC8712C6B9B96871D4022 /* LiquidFloatingActionButton-LiquidFloatingActionButton */ = { isa = PBXNativeTarget; - buildConfigurationList = 0C792007487704ECD508926E22B28D84 /* Build configuration list for PBXNativeTarget "LiquidFloatingActionButton-LiquidFloatingActionButton" */; + buildConfigurationList = 43C6F5C7E0A668A9E2826F951EE11118 /* Build configuration list for PBXNativeTarget "LiquidFloatingActionButton-LiquidFloatingActionButton" */; buildPhases = ( - DA4B01E8CB60ECB02AB9D49B15690A98 /* Sources */, - 6328C9B79847B98EF9E193439E1EDAF3 /* Frameworks */, - 2163FD848D71C7B44DFD59EAE3DEBC71 /* Resources */, + B6F2DB5FFDF38CAFF3A717267BBFD9AC /* Sources */, + 15DB6940D2D4C6862D67F2617631D325 /* Frameworks */, + F50913E42085B3490EF86EA23248CB85 /* Resources */, ); buildRules = ( ); @@ -349,28 +366,9 @@ ); name = "LiquidFloatingActionButton-LiquidFloatingActionButton"; productName = "LiquidFloatingActionButton-LiquidFloatingActionButton"; - productReference = F919A111BF638059A3A4AF55BCE6DDE8 /* LiquidFloatingActionButton.bundle */; + productReference = 36153C0EC3676355EBA5CEE2F6EDE936 /* LiquidFloatingActionButton.bundle */; productType = "com.apple.product-type.bundle"; }; - D06B761E12B23CA5F4948260AB5E3E2B /* LiquidFloatingActionButton */ = { - isa = PBXNativeTarget; - buildConfigurationList = 22D2C8D0FDB8CFC84D01AE079B36F70F /* Build configuration list for PBXNativeTarget "LiquidFloatingActionButton" */; - buildPhases = ( - 99C120920E96BD54DA6394DB7F3B9A4A /* Sources */, - 67C35F330B7A2A35BE33229CDC69BDCC /* Frameworks */, - F173D603BE122D871ACA3E632BEE427F /* Resources */, - D6BB510E54FE05B7BB7CF8737132434D /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - 6687F538798316F3559C4E50B39DD78B /* PBXTargetDependency */, - ); - name = LiquidFloatingActionButton; - productName = LiquidFloatingActionButton; - productReference = 329867621ACFBF779E0D81423D7B711F /* LiquidFloatingActionButton.framework */; - productType = "com.apple.product-type.framework"; - }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -388,12 +386,12 @@ en, ); mainGroup = 7DB346D0F39D3F0E887471402A8071AB; - productRefGroup = CCA510CFBEA2D207524CDA0D73C3B561 /* Products */; + productRefGroup = 6DC6B0B137923F69A8A557546B1E9E58 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - D06B761E12B23CA5F4948260AB5E3E2B /* LiquidFloatingActionButton */, - 5C594EA68A07180C4CB76C704FDACDC1 /* LiquidFloatingActionButton-LiquidFloatingActionButton */, + 4B6EA48CB3BF157DFBE8AD0B5390FD54 /* LiquidFloatingActionButton */, + 5EB2706E8DDAC8712C6B9B96871D4022 /* LiquidFloatingActionButton-LiquidFloatingActionButton */, 43800D6302E8EC6CA16A563D575B6A60 /* Pods-LiquidFloatingActionButton_Example */, 549EC8F1186C4136AD3D4CBFF076E300 /* Pods-LiquidFloatingActionButton_Tests */, ); @@ -401,18 +399,18 @@ /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 2163FD848D71C7B44DFD59EAE3DEBC71 /* Resources */ = { + 945188E787FF4EF1A9E3BB49051A2645 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + BA14B2A9D6402CAAEEA13AFCFA724DD2 /* LiquidFloatingActionButton.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - F173D603BE122D871ACA3E632BEE427F /* Resources */ = { + F50913E42085B3490EF86EA23248CB85 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - FF41A1F7098EB544F8C80873C6A2D33D /* LiquidFloatingActionButton.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -427,31 +425,31 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 31A557A1BF26AB18648988FD4AA328B2 /* Sources */ = { + 2D7B58F037108E8E4F408A2DFDCFC22A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A33604F863089E4618497F1B701F2F1E /* Pods-LiquidFloatingActionButton_Example-dummy.m in Sources */, + 2572B555E0BB6788A4D3731F0C47A939 /* ArrayEx.swift in Sources */, + 6EC4DD10BB58BA1E85E5AD799AB70903 /* CGPointEx.swift in Sources */, + 8051066CFC8552283EB90A214CF772DF /* CGRectEx.swift in Sources */, + 5A5257075A8B1C3E53FB09685EF59DCB /* LiquidFloatingActionButton-dummy.m in Sources */, + 54AC26F999C5FDC9E5B3820BD6B6959C /* LiquidFloatingActionButton.swift in Sources */, + 52A117DCCE317F6B7A88A280D029A029 /* LiquidUtil.swift in Sources */, + ACCC8C618B6E5693EC3A4CB4AEA8D7EE /* LiquittableCircle.swift in Sources */, + 8D9422957C9F80DB9E90D3979C1BDF77 /* SimpleCircleLiquidEngine.swift in Sources */, + 0A7AD9C15F76099151628B9C5C35D2BD /* UIColorEx.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 99C120920E96BD54DA6394DB7F3B9A4A /* Sources */ = { + 31A557A1BF26AB18648988FD4AA328B2 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - CFF1FA7BE5F8DEFC8D914592416B77B2 /* ArrayEx.swift in Sources */, - D1B359A562E5E8604A8482A253BBC67C /* CGPointEx.swift in Sources */, - 557B94E3F314A7422DC672F88508DBAC /* CGRectEx.swift in Sources */, - 119D7BE15D8F40D677D1963E8771581F /* LiquidFloatingActionButton-dummy.m in Sources */, - A8587ADDB0A1E7CD5877F3D300FECFE0 /* LiquidFloatingActionButton.swift in Sources */, - F1B303C3BC05512DDA1A27F9B41BF71B /* LiquidUtil.swift in Sources */, - FEDDA81A592B36D58D78693376C3657C /* LiquittableCircle.swift in Sources */, - FFAAA726F6C9D81CB152674E925DEC2E /* SimpleCircleLiquidEngine.swift in Sources */, - 372673E70D2E1D1799E46902786D8A66 /* UIColorEx.swift in Sources */, + A33604F863089E4618497F1B701F2F1E /* Pods-LiquidFloatingActionButton_Example-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - DA4B01E8CB60ECB02AB9D49B15690A98 /* Sources */ = { + B6F2DB5FFDF38CAFF3A717267BBFD9AC /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -461,28 +459,28 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 12B6BAA8C6602214AB46FA2D805B8728 /* PBXTargetDependency */ = { + 411001C527B9918F675DCB729D860F57 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = LiquidFloatingActionButton; - target = D06B761E12B23CA5F4948260AB5E3E2B /* LiquidFloatingActionButton */; - targetProxy = F541CC5D0E547F0FABF9DFD2C40F9AD1 /* PBXContainerItemProxy */; + name = "LiquidFloatingActionButton-LiquidFloatingActionButton"; + target = 5EB2706E8DDAC8712C6B9B96871D4022 /* LiquidFloatingActionButton-LiquidFloatingActionButton */; + targetProxy = CEA852144866EBE7AA8EFEFC7D6F37DF /* PBXContainerItemProxy */; }; - 6687F538798316F3559C4E50B39DD78B /* PBXTargetDependency */ = { + A24A18B58CF52257ED6006BD70BEB1BA /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "LiquidFloatingActionButton-LiquidFloatingActionButton"; - target = 5C594EA68A07180C4CB76C704FDACDC1 /* LiquidFloatingActionButton-LiquidFloatingActionButton */; - targetProxy = 3326D4EA62E6D10455A0FAC1D765F136 /* PBXContainerItemProxy */; + name = LiquidFloatingActionButton; + target = 4B6EA48CB3BF157DFBE8AD0B5390FD54 /* LiquidFloatingActionButton */; + targetProxy = 69F69795D612A244FEE055A538D29F3B /* PBXContainerItemProxy */; }; - A7A9C65A9F84557ACD10D06E0983FB2F /* PBXTargetDependency */ = { + BFD2B3EF26CC41AF6E4D00D3AEC3602E /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = LiquidFloatingActionButton; - target = D06B761E12B23CA5F4948260AB5E3E2B /* LiquidFloatingActionButton */; - targetProxy = B7FDF736E24B99809699C3C40B3FBBD0 /* PBXContainerItemProxy */; + target = 4B6EA48CB3BF157DFBE8AD0B5390FD54 /* LiquidFloatingActionButton */; + targetProxy = F331CD435AB3B01E81CA0D2143187A9A /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 10DE1947DAC0ED28F6C0A9F9BD75D546 /* Release */ = { + 052A17875CB827423D627183396CEB60 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -509,16 +507,56 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; STRIP_INSTALLED_PRODUCT = NO; SYMROOT = "${SRCROOT}/../build"; VALIDATE_PRODUCT = YES; }; name = Release; }; - 1FB544672E5728875A83AF02C76C1282 /* Release */ = { + 0FA603BA289135B3AD2D66744C852436 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D34A96F77F9058408C76176EF3F40314 /* LiquidFloatingActionButton.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 0.1.2; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 0.1.2; + DYLIB_CURRENT_VERSION = "$(CURRENT_PROJECT_VERSION)"; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/LiquidFloatingActionButton/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = LiquidFloatingActionButton; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 3820C15E1BFB2A61877415E4C3B8C734 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D34A96F77F9058408C76176EF3F40314 /* LiquidFloatingActionButton.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + PRODUCT_NAME = LiquidFloatingActionButton; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + 5422410650A86E26ECA40EDFBF1E6EE9 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = ABA02E81D896C5C32929FE69E9A8CDEE /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */; + baseConfigurationReference = 4EB840C0FCFA128ECC2A9B932415D6A8 /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; @@ -529,7 +567,7 @@ ENABLE_STRICT_OBJC_MSGSEND = YES; INFOPLIST_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Example/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.modulemap"; MTL_ENABLE_DEBUG_INFO = NO; @@ -545,9 +583,9 @@ }; name = Release; }; - 296B35D1A5D04DACF232D9326915225D /* Release */ = { + 5560ED6B6945F759C2B7D5B0DA290A4E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 93B52232525F2995D27E55C5082C9833 /* LiquidFloatingActionButton-Private.xcconfig */; + baseConfigurationReference = D34A96F77F9058408C76176EF3F40314 /* LiquidFloatingActionButton.xcconfig */; buildSettings = { ENABLE_STRICT_OBJC_MSGSEND = YES; PRODUCT_NAME = LiquidFloatingActionButton; @@ -557,14 +595,14 @@ }; name = Release; }; - 431BE88F13126F5896285F3D5F81B7BE /* Debug */ = { + 7C1733457C6B744421D0A2563E71D5E0 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 93B52232525F2995D27E55C5082C9833 /* LiquidFloatingActionButton-Private.xcconfig */; + baseConfigurationReference = D34A96F77F9058408C76176EF3F40314 /* LiquidFloatingActionButton.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 0.1.1; + CURRENT_PROJECT_VERSION = 0.1.2; DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 0.1.1; + DYLIB_COMPATIBILITY_VERSION = 0.1.2; DYLIB_CURRENT_VERSION = "$(CURRENT_PROJECT_VERSION)"; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -574,10 +612,39 @@ IPHONEOS_DEPLOYMENT_TARGET = 7.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; + MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_NAME = LiquidFloatingActionButton; SDKROOT = iphoneos; SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + A7C2012108E9E4B6967CCD8C1F2B39F5 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 15C6FC5FD383058121E6098617B98C67 /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + INFOPLIST_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Example/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_NAME = Pods_LiquidFloatingActionButton_Example; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; @@ -585,25 +652,27 @@ }; name = Debug; }; - 492ABF1D669CAE9D04F21E6B6925287A /* Release */ = { + AD10C27C86D0B15C12749ABEFFFB4701 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 93B52232525F2995D27E55C5082C9833 /* LiquidFloatingActionButton-Private.xcconfig */; + baseConfigurationReference = AA63D17174A63F13D3434AAB04CB95CD /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 0.1.1; + CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 0.1.1; - DYLIB_CURRENT_VERSION = "$(CURRENT_PROJECT_VERSION)"; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/LiquidFloatingActionButton/Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 7.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.modulemap"; MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = LiquidFloatingActionButton; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_NAME = Pods_LiquidFloatingActionButton_Tests; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -612,7 +681,7 @@ }; name = Release; }; - 552D02D5BA751AC2E8790D2811D496CA /* Debug */ = { + B37F0F91F85060E28F1DAAB522DC7EC1 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -644,87 +713,16 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; ONLY_ACTIVE_ARCH = YES; STRIP_INSTALLED_PRODUCT = NO; SYMROOT = "${SRCROOT}/../build"; }; name = Debug; }; - EB80A81356A677C0D67EDFCBA908CAB5 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 93B52232525F2995D27E55C5082C9833 /* LiquidFloatingActionButton-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - PRODUCT_NAME = LiquidFloatingActionButton; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; - F1AFE95579B6F1DB487D418D093BD076 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AC0E0D813B48263918505658676B0E85 /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - INFOPLIST_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_NAME = Pods_LiquidFloatingActionButton_Tests; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - FD811BD053CBF47605C0C289F80F0964 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D32DD17D1BA46C6311DE0766A1FABAAE /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - INFOPLIST_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Example/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_NAME = Pods_LiquidFloatingActionButton_Example; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - FE8583B0D5217E3DDF7480029A01002A /* Debug */ = { + B49C86CF0D46D237F380A66D4F285696 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 873AFE486B10F729482FC627D4865F8E /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */; + baseConfigurationReference = 9B73872B15E9C56304335676CC951C90 /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; @@ -735,7 +733,7 @@ ENABLE_STRICT_OBJC_MSGSEND = YES; INFOPLIST_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.modulemap"; MTL_ENABLE_DEBUG_INFO = YES; @@ -758,44 +756,44 @@ 0050E4B9EBBDE44370D24C9E316A70BD /* Build configuration list for PBXNativeTarget "Pods-LiquidFloatingActionButton_Example" */ = { isa = XCConfigurationList; buildConfigurations = ( - FD811BD053CBF47605C0C289F80F0964 /* Debug */, - 1FB544672E5728875A83AF02C76C1282 /* Release */, + A7C2012108E9E4B6967CCD8C1F2B39F5 /* Debug */, + 5422410650A86E26ECA40EDFBF1E6EE9 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 0C792007487704ECD508926E22B28D84 /* Build configuration list for PBXNativeTarget "LiquidFloatingActionButton-LiquidFloatingActionButton" */ = { + 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - EB80A81356A677C0D67EDFCBA908CAB5 /* Debug */, - 296B35D1A5D04DACF232D9326915225D /* Release */, + B37F0F91F85060E28F1DAAB522DC7EC1 /* Debug */, + 052A17875CB827423D627183396CEB60 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 22D2C8D0FDB8CFC84D01AE079B36F70F /* Build configuration list for PBXNativeTarget "LiquidFloatingActionButton" */ = { + 3C569544DC2589FEA8D7DA4B3A85C3AC /* Build configuration list for PBXNativeTarget "Pods-LiquidFloatingActionButton_Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 431BE88F13126F5896285F3D5F81B7BE /* Debug */, - 492ABF1D669CAE9D04F21E6B6925287A /* Release */, + B49C86CF0D46D237F380A66D4F285696 /* Debug */, + AD10C27C86D0B15C12749ABEFFFB4701 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + 43C6F5C7E0A668A9E2826F951EE11118 /* Build configuration list for PBXNativeTarget "LiquidFloatingActionButton-LiquidFloatingActionButton" */ = { isa = XCConfigurationList; buildConfigurations = ( - 552D02D5BA751AC2E8790D2811D496CA /* Debug */, - 10DE1947DAC0ED28F6C0A9F9BD75D546 /* Release */, + 3820C15E1BFB2A61877415E4C3B8C734 /* Debug */, + 5560ED6B6945F759C2B7D5B0DA290A4E /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 3C569544DC2589FEA8D7DA4B3A85C3AC /* Build configuration list for PBXNativeTarget "Pods-LiquidFloatingActionButton_Tests" */ = { + 83F990A709292C954BF97ABFF601FED6 /* Build configuration list for PBXNativeTarget "LiquidFloatingActionButton" */ = { isa = XCConfigurationList; buildConfigurations = ( - FE8583B0D5217E3DDF7480029A01002A /* Debug */, - F1AFE95579B6F1DB487D418D093BD076 /* Release */, + 0FA603BA289135B3AD2D66744C852436 /* Debug */, + 7C1733457C6B744421D0A2563E71D5E0 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/LiquidFloatingActionButton.xcscheme b/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/LiquidFloatingActionButton.xcscheme index edf9692..9053bca 100644 --- a/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/LiquidFloatingActionButton.xcscheme +++ b/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/LiquidFloatingActionButton.xcscheme @@ -7,17 +7,17 @@ buildImplicitDependencies = "YES"> + buildForArchiving = "YES"> + BuildableIdentifier = 'primary' + BlueprintIdentifier = 'FA33823E688B6651D050C768' + BlueprintName = 'LiquidFloatingActionButton' + ReferencedContainer = 'container:Pods.xcodeproj' + BuildableName = 'LiquidFloatingActionButton.framework'> @@ -29,28 +29,26 @@ buildConfiguration = "Debug"> - - + shouldUseLaunchSchemeArgsEnv = "YES"> diff --git a/Example/Pods/Target Support Files/LiquidFloatingActionButton/Info.plist b/Example/Pods/Target Support Files/LiquidFloatingActionButton/Info.plist index c3f6ee3..88ff137 100644 --- a/Example/Pods/Target Support Files/LiquidFloatingActionButton/Info.plist +++ b/Example/Pods/Target Support Files/LiquidFloatingActionButton/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.1.1 + 0.1.2 CFBundleSignature ???? CFBundleVersion diff --git a/Example/Pods/Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton-Private.xcconfig b/Example/Pods/Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton-Private.xcconfig deleted file mode 100644 index fcc1061..0000000 --- a/Example/Pods/Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton-Private.xcconfig +++ /dev/null @@ -1,6 +0,0 @@ -#include "LiquidFloatingActionButton.xcconfig" -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/LiquidFloatingActionButton" "${PODS_ROOT}/Headers/Public" -OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_ROOT = ${SRCROOT} -SKIP_INSTALL = YES \ No newline at end of file diff --git a/Example/Pods/Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.xcconfig b/Example/Pods/Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.xcconfig index e69de29..3118ac0 100644 --- a/Example/Pods/Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.xcconfig +++ b/Example/Pods/Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.xcconfig @@ -0,0 +1,5 @@ +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/LiquidFloatingActionButton" "${PODS_ROOT}/Headers/Public" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +PODS_ROOT = ${SRCROOT} +SKIP_INSTALL = YES \ No newline at end of file diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-frameworks.sh b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-frameworks.sh index 66e78a7..41f5b01 100755 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-frameworks.sh +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-frameworks.sh @@ -10,8 +10,10 @@ install_framework() { if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then local source="${BUILT_PRODUCTS_DIR}/$1" - else + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" fi local destination="${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" @@ -25,14 +27,24 @@ install_framework() echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + # Resign the code if required by the build settings to avoid unstable apps code_sign_if_enabled "${destination}/$(basename "$1")" # Embed linked Swift runtime libraries - local basename - basename="$(basename "$1" | sed -E s/\\..+// && exit ${PIPESTATUS[0]})" local swift_runtime_libs - swift_runtime_libs=$(xcrun otool -LX "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/${basename}.framework/${basename}" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) for lib in $swift_runtime_libs; do echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" @@ -50,10 +62,28 @@ code_sign_if_enabled() { fi } +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + # Get architectures for current file + archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + stripped="" + for arch in $archs; do + if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" || exit 1 + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi +} + if [[ "$CONFIGURATION" == "Debug" ]]; then - install_framework 'Pods-LiquidFloatingActionButton_Example/LiquidFloatingActionButton.framework' + install_framework "Pods-LiquidFloatingActionButton_Example/LiquidFloatingActionButton.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then - install_framework 'Pods-LiquidFloatingActionButton_Example/LiquidFloatingActionButton.framework' + install_framework "Pods-LiquidFloatingActionButton_Example/LiquidFloatingActionButton.framework" fi diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-resources.sh b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-resources.sh index ea685a2..16774fb 100755 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-resources.sh +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-resources.sh @@ -60,7 +60,7 @@ install_resource() mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -if [[ "${ACTION}" == "install" ]]; then +if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" fi diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-frameworks.sh b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-frameworks.sh index 1dea92a..49dbfe5 100755 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-frameworks.sh +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-frameworks.sh @@ -10,8 +10,10 @@ install_framework() { if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then local source="${BUILT_PRODUCTS_DIR}/$1" - else + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" fi local destination="${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" @@ -25,14 +27,24 @@ install_framework() echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + # Resign the code if required by the build settings to avoid unstable apps code_sign_if_enabled "${destination}/$(basename "$1")" # Embed linked Swift runtime libraries - local basename - basename="$(basename "$1" | sed -E s/\\..+// && exit ${PIPESTATUS[0]})" local swift_runtime_libs - swift_runtime_libs=$(xcrun otool -LX "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/${basename}.framework/${basename}" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) for lib in $swift_runtime_libs; do echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" @@ -50,10 +62,28 @@ code_sign_if_enabled() { fi } +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + # Get architectures for current file + archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + stripped="" + for arch in $archs; do + if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" || exit 1 + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi +} + if [[ "$CONFIGURATION" == "Debug" ]]; then - install_framework 'Pods-LiquidFloatingActionButton_Tests/LiquidFloatingActionButton.framework' + install_framework "Pods-LiquidFloatingActionButton_Tests/LiquidFloatingActionButton.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then - install_framework 'Pods-LiquidFloatingActionButton_Tests/LiquidFloatingActionButton.framework' + install_framework "Pods-LiquidFloatingActionButton_Tests/LiquidFloatingActionButton.framework" fi diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-resources.sh b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-resources.sh index ea685a2..16774fb 100755 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-resources.sh +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-resources.sh @@ -60,7 +60,7 @@ install_resource() mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -if [[ "${ACTION}" == "install" ]]; then +if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" fi diff --git a/LiquidFloatingActionButton.podspec b/LiquidFloatingActionButton.podspec index 1ce91ef..0526356 100644 --- a/LiquidFloatingActionButton.podspec +++ b/LiquidFloatingActionButton.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.name = "LiquidFloatingActionButton" - s.version = "0.1.1" + s.version = "0.1.2" s.summary = "Material Design Floating Action Button in liquid state" # This description is used to generate tags and improve search results. @@ -27,7 +27,7 @@ Pod::Spec.new do |s| s.source = { :git => "https://github.com/yoavlt/LiquidFloatingActionButton.git", :tag => s.version.to_s } # s.social_media_url = 'https://twitter.com/' - s.platform = :ios, '8.0' + s.platform = :ios, '7.0' s.requires_arc = true s.source_files = 'Pod/Classes/**/*' From d741e1d07a9044d20be661a0d99a4ae673c050aa Mon Sep 17 00:00:00 2001 From: Takuma Yoshida Date: Tue, 8 Sep 2015 10:48:47 +0900 Subject: [PATCH 04/31] Fix minimum version to iOS 8.0 --- Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj | 4 ++-- Example/Pods/Pods.xcodeproj/project.pbxproj | 4 ++-- LiquidFloatingActionButton.podspec | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj b/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj index 8794560..378b9c6 100644 --- a/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj +++ b/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj @@ -488,7 +488,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = LiquidFloatingActionButton/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MODULE_NAME = ExampleApp; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -501,7 +501,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = LiquidFloatingActionButton/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MODULE_NAME = ExampleApp; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index 6ed6432..37168b1 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -528,7 +528,7 @@ GCC_PREFIX_HEADER = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton-prefix.pch"; INFOPLIST_FILE = "Target Support Files/LiquidFloatingActionButton/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.modulemap"; MTL_ENABLE_DEBUG_INFO = YES; @@ -609,7 +609,7 @@ GCC_PREFIX_HEADER = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton-prefix.pch"; INFOPLIST_FILE = "Target Support Files/LiquidFloatingActionButton/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.modulemap"; MTL_ENABLE_DEBUG_INFO = NO; diff --git a/LiquidFloatingActionButton.podspec b/LiquidFloatingActionButton.podspec index 0526356..979a2b4 100644 --- a/LiquidFloatingActionButton.podspec +++ b/LiquidFloatingActionButton.podspec @@ -27,7 +27,7 @@ Pod::Spec.new do |s| s.source = { :git => "https://github.com/yoavlt/LiquidFloatingActionButton.git", :tag => s.version.to_s } # s.social_media_url = 'https://twitter.com/' - s.platform = :ios, '7.0' + s.platform = :ios, '8.0' s.requires_arc = true s.source_files = 'Pod/Classes/**/*' From e7437753f8933d67b82d07153709d19d308f95ab Mon Sep 17 00:00:00 2001 From: lancerding Date: Sun, 4 Oct 2015 14:56:09 +0800 Subject: [PATCH 05/31] change floatingActionButton => liquidFloatingActionButton --- Example/LiquidFloatingActionButton/ViewController.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Example/LiquidFloatingActionButton/ViewController.swift b/Example/LiquidFloatingActionButton/ViewController.swift index b6c7f77..ca0c0f8 100644 --- a/Example/LiquidFloatingActionButton/ViewController.swift +++ b/Example/LiquidFloatingActionButton/ViewController.swift @@ -58,7 +58,7 @@ class ViewController: UIViewController, LiquidFloatingActionButtonDataSource, Li func liquidFloatingActionButton(liquidFloatingActionButton: LiquidFloatingActionButton, didSelectItemAtIndex index: Int) { println("did Tapped! \(index)") - floatingActionButton.close() + liquidFloatingActionButton.close() } -} \ No newline at end of file +} From f6335dbec829112ea1d944835e555e3577b4a0f2 Mon Sep 17 00:00:00 2001 From: Reilly Watson Date: Wed, 25 May 2016 14:55:12 -0400 Subject: [PATCH 06/31] Fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2deb41a..5d13532 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ This is also [spinner loader](https://github.com/yoavlt/LiquidLoader) components ## Features - [x] liquid animation -- [x] easily custoizable +- [x] easily customizable - [x] Objective-C compatible - [x] Swift2.0 From 7b53e18d7fe029a6ccbc8d59a7d989e8169e935a Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Sun, 5 Jun 2016 23:32:08 -0500 Subject: [PATCH 07/31] updated podfile for compatibility with more recent changes --- .../project.pbxproj | 106 +-- Example/Podfile | 4 +- Example/Podfile.lock | 6 +- .../LiquidFloatingActionButton.podspec.json | 15 +- Example/Pods/Manifest.lock | 6 +- Example/Pods/Pods.xcodeproj/project.pbxproj | 691 ++++++++---------- .../contents.xcworkspacedata | 7 - .../LiquidFloatingActionButton.xcscheme | 71 -- .../LiquidFloatingActionButton/Info.plist | 40 +- .../LiquidFloatingActionButton.xcconfig | 8 +- .../Info.plist | 40 +- ...onButton_Example-acknowledgements.markdown | 2 +- ...ctionButton_Example-acknowledgements.plist | 2 +- ...FloatingActionButton_Example-frameworks.sh | 14 +- ...dFloatingActionButton_Example-resources.sh | 89 +-- ...loatingActionButton_Example.debug.xcconfig | 8 +- ...atingActionButton_Example.release.xcconfig | 8 +- .../Info.plist | 40 +- ...tionButton_Tests-acknowledgements.markdown | 2 +- ...gActionButton_Tests-acknowledgements.plist | 2 +- ...idFloatingActionButton_Tests-frameworks.sh | 10 +- ...uidFloatingActionButton_Tests-resources.sh | 89 +-- ...dFloatingActionButton_Tests.debug.xcconfig | 8 +- ...loatingActionButton_Tests.release.xcconfig | 8 +- .../Target Support Files/SnapKit/Info.plist | 40 +- .../SnapKit/SnapKit.xcconfig | 8 +- LiquidFloatingActionButton.podspec | 24 +- 27 files changed, 609 insertions(+), 739 deletions(-) delete mode 100644 Example/Pods/Pods.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/LiquidFloatingActionButton.xcscheme diff --git a/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj b/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj index f430e07..95671c7 100644 --- a/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj +++ b/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj @@ -7,8 +7,8 @@ objects = { /* Begin PBXBuildFile section */ - 1DBCE28963DAD945FFD48B50 /* Pods_LiquidFloatingActionButton_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6C3A86F9C536AF0FF2200223 /* Pods_LiquidFloatingActionButton_Example.framework */; }; - 49A475E961E793F7AF7E4ED6 /* Pods_LiquidFloatingActionButton_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 919BDD2D3636894AF8DB602C /* Pods_LiquidFloatingActionButton_Tests.framework */; }; + 20A615CBC395DA2FC6965BB9 /* Pods_LiquidFloatingActionButton_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 676DDE36E7D6ED6AB652A3FC /* Pods_LiquidFloatingActionButton_Tests.framework */; }; + 4A74E0FE474C72297A600B67 /* Pods_LiquidFloatingActionButton_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 774267DED010DFEBC398D44C /* Pods_LiquidFloatingActionButton_Example.framework */; }; 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD51AFB9204008FA782 /* AppDelegate.swift */; }; 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD71AFB9204008FA782 /* ViewController.swift */; }; 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 607FACD91AFB9204008FA782 /* Main.storyboard */; }; @@ -29,8 +29,8 @@ /* Begin PBXFileReference section */ 0A7C45BCBE46088A6384E50D /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; - 2FFD9BFA534CFE054B05EADD /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LiquidFloatingActionButton_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.debug.xcconfig"; sourceTree = ""; }; - 34499971252776E4550A85C2 /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LiquidFloatingActionButton_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.debug.xcconfig"; sourceTree = ""; }; + 0F7E7FC5246A093F646144E2 /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LiquidFloatingActionButton_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.release.xcconfig"; sourceTree = ""; }; + 4E8D9BBA96797E6E98FBF3E4 /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LiquidFloatingActionButton_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.debug.xcconfig"; sourceTree = ""; }; 607FACD01AFB9204008FA782 /* LiquidFloatingActionButton_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LiquidFloatingActionButton_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 607FACD41AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 607FACD51AFB9204008FA782 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -41,12 +41,12 @@ 607FACE51AFB9204008FA782 /* LiquidFloatingActionButton_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LiquidFloatingActionButton_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 607FACEA1AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 607FACEB1AFB9204008FA782 /* Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tests.swift; sourceTree = ""; }; - 6C3A86F9C536AF0FF2200223 /* Pods_LiquidFloatingActionButton_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LiquidFloatingActionButton_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 6C45C93E70CA4AE7D6FF98F1 /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LiquidFloatingActionButton_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.release.xcconfig"; sourceTree = ""; }; + 676DDE36E7D6ED6AB652A3FC /* Pods_LiquidFloatingActionButton_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LiquidFloatingActionButton_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 7544384970EC4D04EEF18E55 /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LiquidFloatingActionButton_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.debug.xcconfig"; sourceTree = ""; }; + 774267DED010DFEBC398D44C /* Pods_LiquidFloatingActionButton_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LiquidFloatingActionButton_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 84FEE2CA65F767D51D7E5BC9 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; }; - 919BDD2D3636894AF8DB602C /* Pods_LiquidFloatingActionButton_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LiquidFloatingActionButton_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 8646031E07CFB5973A85169A /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LiquidFloatingActionButton_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.release.xcconfig"; sourceTree = ""; }; E7B89F2AA109C6E37EA6ABDB /* LiquidFloatingActionButton.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LiquidFloatingActionButton.podspec; path = ../LiquidFloatingActionButton.podspec; sourceTree = ""; }; - EE0CB752BBF5F0D0BD0782BB /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LiquidFloatingActionButton_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -54,7 +54,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 1DBCE28963DAD945FFD48B50 /* Pods_LiquidFloatingActionButton_Example.framework in Frameworks */, + 4A74E0FE474C72297A600B67 /* Pods_LiquidFloatingActionButton_Example.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -62,20 +62,29 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 49A475E961E793F7AF7E4ED6 /* Pods_LiquidFloatingActionButton_Tests.framework in Frameworks */, + 20A615CBC395DA2FC6965BB9 /* Pods_LiquidFloatingActionButton_Tests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 18D97BE077AD2627163571A0 /* Pods */ = { + 0523CDEECB49717089A712FE /* Frameworks */ = { isa = PBXGroup; children = ( - 2FFD9BFA534CFE054B05EADD /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */, - 6C45C93E70CA4AE7D6FF98F1 /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */, - 34499971252776E4550A85C2 /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */, - EE0CB752BBF5F0D0BD0782BB /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */, + 774267DED010DFEBC398D44C /* Pods_LiquidFloatingActionButton_Example.framework */, + 676DDE36E7D6ED6AB652A3FC /* Pods_LiquidFloatingActionButton_Tests.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 5120A30F02F4C14242EB17F0 /* Pods */ = { + isa = PBXGroup; + children = ( + 7544384970EC4D04EEF18E55 /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */, + 0F7E7FC5246A093F646144E2 /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */, + 4E8D9BBA96797E6E98FBF3E4 /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */, + 8646031E07CFB5973A85169A /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */, ); name = Pods; sourceTree = ""; @@ -87,8 +96,8 @@ 607FACD21AFB9204008FA782 /* Example for LiquidFloatingActionButton */, 607FACE81AFB9204008FA782 /* Tests */, 607FACD11AFB9204008FA782 /* Products */, - 18D97BE077AD2627163571A0 /* Pods */, - EFC8F3C7198CEC45A1A27C06 /* Frameworks */, + 5120A30F02F4C14242EB17F0 /* Pods */, + 0523CDEECB49717089A712FE /* Frameworks */, ); sourceTree = ""; }; @@ -150,15 +159,6 @@ name = "Podspec Metadata"; sourceTree = ""; }; - EFC8F3C7198CEC45A1A27C06 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 6C3A86F9C536AF0FF2200223 /* Pods_LiquidFloatingActionButton_Example.framework */, - 919BDD2D3636894AF8DB602C /* Pods_LiquidFloatingActionButton_Tests.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -166,12 +166,12 @@ isa = PBXNativeTarget; buildConfigurationList = 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "LiquidFloatingActionButton_Example" */; buildPhases = ( - 9005C960F5FF53205A4537B5 /* Check Pods Manifest.lock */, + A12519884D535E8C14C07949 /* [CP] Check Pods Manifest.lock */, 607FACCC1AFB9204008FA782 /* Sources */, 607FACCD1AFB9204008FA782 /* Frameworks */, 607FACCE1AFB9204008FA782 /* Resources */, - 1115E3E00032A33C9C0DFF38 /* Embed Pods Frameworks */, - 91D07DB5AC1B3588361E14B1 /* Copy Pods Resources */, + 66F99919ACD3F386814BB452 /* [CP] Embed Pods Frameworks */, + A2EA3849E353196C377A4869 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -186,12 +186,12 @@ isa = PBXNativeTarget; buildConfigurationList = 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "LiquidFloatingActionButton_Tests" */; buildPhases = ( - 23EC3336397C78AB2DC1C484 /* Check Pods Manifest.lock */, + 11801ACFCF6933D32461E3BE /* [CP] Check Pods Manifest.lock */, 607FACE11AFB9204008FA782 /* Sources */, 607FACE21AFB9204008FA782 /* Frameworks */, 607FACE31AFB9204008FA782 /* Resources */, - 7C65DA408226155A1317428A /* Embed Pods Frameworks */, - 12DDBEB12E77962ED088CEC8 /* Copy Pods Resources */, + C81DC5CC03F0BAF509432EEE /* [CP] Embed Pods Frameworks */, + C8426000DE3464F7C18C2CC3 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -263,44 +263,44 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 1115E3E00032A33C9C0DFF38 /* Embed Pods Frameworks */ = { + 11801ACFCF6933D32461E3BE /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "Embed Pods Frameworks"; + name = "[CP] Check Pods Manifest.lock"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-frameworks.sh\"\n"; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; showEnvVarsInLog = 0; }; - 12DDBEB12E77962ED088CEC8 /* Copy Pods Resources */ = { + 66F99919ACD3F386814BB452 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "Copy Pods Resources"; + name = "[CP] Embed Pods Frameworks"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-resources.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 23EC3336397C78AB2DC1C484 /* Check Pods Manifest.lock */ = { + A12519884D535E8C14C07949 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "Check Pods Manifest.lock"; + name = "[CP] Check Pods Manifest.lock"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; @@ -308,49 +308,49 @@ shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; showEnvVarsInLog = 0; }; - 7C65DA408226155A1317428A /* Embed Pods Frameworks */ = { + A2EA3849E353196C377A4869 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "Embed Pods Frameworks"; + name = "[CP] Copy Pods Resources"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-frameworks.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 9005C960F5FF53205A4537B5 /* Check Pods Manifest.lock */ = { + C81DC5CC03F0BAF509432EEE /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 91D07DB5AC1B3588361E14B1 /* Copy Pods Resources */ = { + C8426000DE3464F7C18C2CC3 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "Copy Pods Resources"; + name = "[CP] Copy Pods Resources"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-resources.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-resources.sh\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ @@ -487,7 +487,7 @@ }; 607FACF01AFB9204008FA782 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2FFD9BFA534CFE054B05EADD /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */; + baseConfigurationReference = 7544384970EC4D04EEF18E55 /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = LiquidFloatingActionButton/Info.plist; @@ -500,7 +500,7 @@ }; 607FACF11AFB9204008FA782 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6C45C93E70CA4AE7D6FF98F1 /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */; + baseConfigurationReference = 0F7E7FC5246A093F646144E2 /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = LiquidFloatingActionButton/Info.plist; @@ -513,7 +513,7 @@ }; 607FACF31AFB9204008FA782 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 34499971252776E4550A85C2 /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */; + baseConfigurationReference = 4E8D9BBA96797E6E98FBF3E4 /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; FRAMEWORK_SEARCH_PATHS = ( @@ -534,7 +534,7 @@ }; 607FACF41AFB9204008FA782 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EE0CB752BBF5F0D0BD0782BB /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */; + baseConfigurationReference = 8646031E07CFB5973A85169A /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; FRAMEWORK_SEARCH_PATHS = ( diff --git a/Example/Podfile b/Example/Podfile index 9c77528..c4910c3 100644 --- a/Example/Podfile +++ b/Example/Podfile @@ -1,12 +1,12 @@ source 'https://github.com/CocoaPods/Specs.git' use_frameworks! -target 'LiquidFloatingActionButton_Example', :exclusive => true do +target 'LiquidFloatingActionButton_Example' do pod "LiquidFloatingActionButton", :path => "../" pod "SnapKit" end -target 'LiquidFloatingActionButton_Tests', :exclusive => true do +target 'LiquidFloatingActionButton_Tests' do pod "LiquidFloatingActionButton", :path => "../" diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 594e647..8241eb6 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -11,7 +11,9 @@ EXTERNAL SOURCES: :path: ../ SPEC CHECKSUMS: - LiquidFloatingActionButton: dcdae1e59eb07eccbf60c027001a4d6731c345c9 + LiquidFloatingActionButton: 1e13ddd113b18b953e80eed95adf64d2c0433815 SnapKit: 5fce3c1bbbf1fbd31de9aa92f33eb9fa03f15650 -COCOAPODS: 0.39.0 +PODFILE CHECKSUM: d32e84aa2d52a9e8dbba10e8de937cda2a823e0d + +COCOAPODS: 1.0.1 diff --git a/Example/Pods/Local Podspecs/LiquidFloatingActionButton.podspec.json b/Example/Pods/Local Podspecs/LiquidFloatingActionButton.podspec.json index dc8ed83..6241eaf 100644 --- a/Example/Pods/Local Podspecs/LiquidFloatingActionButton.podspec.json +++ b/Example/Pods/Local Podspecs/LiquidFloatingActionButton.podspec.json @@ -2,24 +2,19 @@ "name": "LiquidFloatingActionButton", "version": "0.1.1", "summary": "Material Design Floating Action Button in liquid state", - "description": "Material Design Floating Action Button in liquid state inspired by http://www.materialup.com/posts/material-in-a-liquid-state", - "homepage": "https://github.com/yoavlt/LiquidFloatingActionButton", + "description": "Material Design Floating Action Button in liquid state inspired by http://www.materialup.com/posts/material-in-a-liquid-state\nForked from: https://github.com/yoavlt/LiquidFloatingActionButton", + "homepage": "https://github.com/shotaroikeda/LiquidFloatingActionButton", "license": "MIT", "authors": { - "Takuma Yoshida": "yoa.jmpr.w@gmail.com" + "Shotaro Ikeda": "ikeda.shot@gmail.com" }, "source": { - "git": "https://github.com/yoavlt/LiquidFloatingActionButton.git", + "git": "https://github.com/shotaroikeda/LiquidFloatingActionButton.git", "tag": "0.1.1" }, "platforms": { "ios": "8.0" }, "requires_arc": true, - "source_files": "Pod/Classes/**/*", - "resource_bundles": { - "LiquidFloatingActionButton": [ - "Pod/Assets/*.png" - ] - } + "source_files": "Pod/Classes/**/*" } diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index 594e647..8241eb6 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -11,7 +11,9 @@ EXTERNAL SOURCES: :path: ../ SPEC CHECKSUMS: - LiquidFloatingActionButton: dcdae1e59eb07eccbf60c027001a4d6731c345c9 + LiquidFloatingActionButton: 1e13ddd113b18b953e80eed95adf64d2c0433815 SnapKit: 5fce3c1bbbf1fbd31de9aa92f33eb9fa03f15650 -COCOAPODS: 0.39.0 +PODFILE CHECKSUM: d32e84aa2d52a9e8dbba10e8de937cda2a823e0d + +COCOAPODS: 1.0.1 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index c719edf..4060346 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -7,92 +7,81 @@ objects = { /* Begin PBXBuildFile section */ - 063AF3E3F6F2F42DFDE02296C4B454DE /* View+SnapKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55BB547CA6D4862CCE70A4B51F1EABAE /* View+SnapKit.swift */; }; - 12A25CB430ECAFDE828EACA52A4EA9B3 /* EdgeInsets.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7C496DA4CA3F61B29BB063F74876C70 /* EdgeInsets.swift */; }; - 27265ED50FB0F70B0DC6CACFEBFEFEBB /* UIColorEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8D96BACF73B0930447045AF580F1F64 /* UIColorEx.swift */; }; - 2779506876997B329DBA24C5C89E0741 /* SnapKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 079E5EE3CDB090004C84E658BC83AEB7 /* SnapKit-dummy.m */; }; - 2FB98EB28FD690835891F30F8D410080 /* SnapKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EA1CFBED61FB63BBC905CD3AFEE402C /* SnapKit.swift */; }; - 2FD62186877ED8D79EB50BE978326AB7 /* LiquidUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = D691EE87C404B7D086624B5801982F43 /* LiquidUtil.swift */; }; - 3119F291AB6588F10BE54351505CD5FD /* ConstraintRelation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92DD83C2BF9A16815558CBFACD79C938 /* ConstraintRelation.swift */; }; - 54218C3D297E6E992720394B1904DFA8 /* LiquidFloatingActionButton-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 58C7159C06470D006C424DDC8A1A60EB /* LiquidFloatingActionButton-dummy.m */; }; - 5D7F2067317C172EA89627DBE45044BF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */; }; - 5FC1075233F230CAF3206BC8967896BF /* ViewController+SnapKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A877C5C14A8B495ECAB69BE839FFA44 /* ViewController+SnapKit.swift */; }; - 72042359B6606B6363E495430D780479 /* LiquidFloatingActionButton.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 4A9330A77EB8489F3F2B7006FF342821 /* LiquidFloatingActionButton.bundle */; }; - 73A598302FF7775E6E0FBB231B416F61 /* Constraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C745F502C842A223464EC61885F02BB /* Constraint.swift */; }; - 7C4A7782F2A3F28C5A5E5C751406E528 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */; }; - 82D7A27B0B5695343FBA27D55E308716 /* LiquidFloatingActionButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83AC495A087C2EAF9CAAC87835CAA680 /* LiquidFloatingActionButton.swift */; }; - 880A142C73ADFAC66E12A00A6D461281 /* Pods-LiquidFloatingActionButton_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 15F42031AA343001A7E2C8D3D69C9DE2 /* Pods-LiquidFloatingActionButton_Example-dummy.m */; }; - 8AE68AF11C742B3DFB12B8426C53FAE0 /* ConstraintAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEFB846E6A499B21514C1E298F56DE3B /* ConstraintAttributes.swift */; }; - 91A0B0D5F700489F625FA80CF9E414B2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */; }; - 9A8FC8391975DEC4252F9E46559D9972 /* Pods-LiquidFloatingActionButton_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A4A759ED5E8ED2278F9D307ABD11FC5 /* Pods-LiquidFloatingActionButton_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A516196B52C6812BD20B203BA789924F /* LayoutConstraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = B869919EAC3B1E5EF05B0107B595C13C /* LayoutConstraint.swift */; }; - A63823259878C902D4734D9B3813BAC8 /* Debugging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 415D45FAC3D162C8D3F9CFE592F79E42 /* Debugging.swift */; }; - ABEE259770118A74E19D8E6FFCC3B54D /* CGPointEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 369689EDAB3FAFC4E5BB39A93321BBFC /* CGPointEx.swift */; }; - B95FC4D5CA4A1AB1B9ACC0FB060B3DDF /* SimpleCircleLiquidEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3B69218901BE4E025D721BBC5CC763A /* SimpleCircleLiquidEngine.swift */; }; - C4B49BC88CE5107F310F24520E2B936F /* LiquittableCircle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BAF44DB2E216127955F1E0FEF8213369 /* LiquittableCircle.swift */; }; - CA51F12534784E92F1EF5A82424E3F15 /* SnapKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 17ED37A4D4337C9AC445D07BA9E09051 /* SnapKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CC6DC5A0FFFD9F4BB16D4B11F8769E6C /* ArrayEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CAC4A98C58F1EBAF09C8E193E73E985 /* ArrayEx.swift */; }; - CD635561809D218A952928FCA3BC1B78 /* LiquidFloatingActionButton-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 824CA79EC009B18484863834998CC017 /* LiquidFloatingActionButton-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D77880C9B4B7875F4449AD5F3204981E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */; }; - D78D1E3E56D3C6ADD05FE6E4A0330413 /* ConstraintDescription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3061A45F7542E986BCB23EBBD8AD4A13 /* ConstraintDescription.swift */; }; - DAB96FE2A0E1C3E225853B3CCF8FE4A5 /* ConstraintMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = A03EFFB295211A70F01FAD48D41DF5F3 /* ConstraintMaker.swift */; }; - E9F9849609338D0B86CEBA5240071741 /* CGRectEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BEAD485B9DC8B38EBDE94D6A091FDB6 /* CGRectEx.swift */; }; - EECDD5BD4ECE7607A35A00B5B7895396 /* Pods-LiquidFloatingActionButton_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 97232F629F7FC2174E1BE76D76737706 /* Pods-LiquidFloatingActionButton_Tests-dummy.m */; }; - F8430257E5D9EBB43F60769434F04A42 /* ConstraintItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7ED5648C0C88C2BBB8B1737D3C811DF /* ConstraintItem.swift */; }; - FDA81DE249911CF48CB90527D57492D2 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FD568EC2ADE52671E9F40F5B7FE5D901 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 03793F206785B9D2BA06A5435E20AE0C /* ConstraintDescription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3061A45F7542E986BCB23EBBD8AD4A13 /* ConstraintDescription.swift */; }; + 03D37CD9914A34403CA5E7773D42702F /* Pods-LiquidFloatingActionButton_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 15F42031AA343001A7E2C8D3D69C9DE2 /* Pods-LiquidFloatingActionButton_Example-dummy.m */; }; + 03F2B6FBFE5D55E34D7E5C88DE1CDA7B /* ConstraintAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEFB846E6A499B21514C1E298F56DE3B /* ConstraintAttributes.swift */; }; + 13C1A007BB18BD47FF80F8BAFA7C1589 /* View+SnapKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55BB547CA6D4862CCE70A4B51F1EABAE /* View+SnapKit.swift */; }; + 159EE4B496A34DD8AB3D288DAAE91542 /* SnapKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EA1CFBED61FB63BBC905CD3AFEE402C /* SnapKit.swift */; }; + 222D303213262931EA317A1E0F6BAB38 /* UIColorEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8D96BACF73B0930447045AF580F1F64 /* UIColorEx.swift */; }; + 3D41203B7B3855EA27D3E987D3EEB224 /* ArrayEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CAC4A98C58F1EBAF09C8E193E73E985 /* ArrayEx.swift */; }; + 40E154929C97169FF28608F168BAA648 /* Pods-LiquidFloatingActionButton_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A4A759ED5E8ED2278F9D307ABD11FC5 /* Pods-LiquidFloatingActionButton_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 42358D3ECCE5C55DBB5C84DB7CF83577 /* SnapKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 17ED37A4D4337C9AC445D07BA9E09051 /* SnapKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 4C19ED4C22D6B9808195702DB3990008 /* Pods-LiquidFloatingActionButton_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 97232F629F7FC2174E1BE76D76737706 /* Pods-LiquidFloatingActionButton_Tests-dummy.m */; }; + 4CFF5A03EEC8466E2BB0A2CB1118C7CD /* ConstraintRelation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92DD83C2BF9A16815558CBFACD79C938 /* ConstraintRelation.swift */; }; + 58625CE525EE7061B6D9931CFD0FD75C /* EdgeInsets.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7C496DA4CA3F61B29BB063F74876C70 /* EdgeInsets.swift */; }; + 5D47B5F7F9B93DB896CFAEDA03CCB522 /* LiquidFloatingActionButton-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 58C7159C06470D006C424DDC8A1A60EB /* LiquidFloatingActionButton-dummy.m */; }; + 6061324BD591EA79B018F2F1871A02C3 /* ConstraintItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7ED5648C0C88C2BBB8B1737D3C811DF /* ConstraintItem.swift */; }; + 6E328286AD7C502EA27A22A48B46157C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; + 70A374969C87173198D8D4B6111ECB6E /* LiquittableCircle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BAF44DB2E216127955F1E0FEF8213369 /* LiquittableCircle.swift */; }; + 7E538EF481F898874DF94F0F8CBC5D2C /* LiquidFloatingActionButton-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 824CA79EC009B18484863834998CC017 /* LiquidFloatingActionButton-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8D10C418C90EE34F5BA2C22019612D80 /* CGRectEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BEAD485B9DC8B38EBDE94D6A091FDB6 /* CGRectEx.swift */; }; + 903FE6138690401881CED819779A73AC /* CGPointEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 369689EDAB3FAFC4E5BB39A93321BBFC /* CGPointEx.swift */; }; + 95EFB8B2404A882E9DD5F0BF57EB7B2A /* Debugging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 415D45FAC3D162C8D3F9CFE592F79E42 /* Debugging.swift */; }; + 9839FC7BD136D98C4786DB72E56B3E5F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; + 9EEF0CC5FA1CC69D84773F08923C3284 /* LayoutConstraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = B869919EAC3B1E5EF05B0107B595C13C /* LayoutConstraint.swift */; }; + B21BD823B02D2B87FD9189869502FCD5 /* LiquidFloatingActionButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83AC495A087C2EAF9CAAC87835CAA680 /* LiquidFloatingActionButton.swift */; }; + B26546EC79C56C181B6A6BFA7A36CD56 /* ViewController+SnapKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A877C5C14A8B495ECAB69BE839FFA44 /* ViewController+SnapKit.swift */; }; + B4BFAED2D1CBD8A95C1B7F00F33D94AA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; + B909B243517B8B78112F067A6344B430 /* SnapKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 079E5EE3CDB090004C84E658BC83AEB7 /* SnapKit-dummy.m */; }; + C608DC8CB9DB303EB691EA97867E213E /* ConstraintMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = A03EFFB295211A70F01FAD48D41DF5F3 /* ConstraintMaker.swift */; }; + CB9BE415254E64439620E55C08536186 /* SimpleCircleLiquidEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3B69218901BE4E025D721BBC5CC763A /* SimpleCircleLiquidEngine.swift */; }; + EAC4522ECD9EDE06632C34321215099E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; + EAEFA188CC103359C4AE68AC11F8A844 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FD568EC2ADE52671E9F40F5B7FE5D901 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3F6F5C49B085A707AB2C67E1030AF76 /* Constraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C745F502C842A223464EC61885F02BB /* Constraint.swift */; }; + FB4B87C1866264B4C63C18C6D89EC703 /* LiquidUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = D691EE87C404B7D086624B5801982F43 /* LiquidUtil.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 07C6F3DDEBB62F1F5FE9FCDBE877F723 /* PBXContainerItemProxy */ = { + 10B0CFDA9E4883AADDB4595153399A95 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = ECB4143196184B0E0EA02182DB2B9CCA; + remoteGlobalIDString = 4BCE15B65BE1423E31A139A48360119E; remoteInfo = LiquidFloatingActionButton; }; - 241D7E67C3518A9E632A0EDFC7D211A4 /* PBXContainerItemProxy */ = { + 5925C73B578B569902B6E043D675652A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 2E4A37C88D68A62EA5C1BC7A2A4D19AE; - remoteInfo = "LiquidFloatingActionButton-LiquidFloatingActionButton"; + remoteGlobalIDString = 4BCE15B65BE1423E31A139A48360119E; + remoteInfo = LiquidFloatingActionButton; }; - 39AC163D279BBF45FED49635CDDB4483 /* PBXContainerItemProxy */ = { + F37E0413588FEF57B185C90A28936627 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; proxyType = 1; - remoteGlobalIDString = 89A8B55ECFFB1317E22EBE8135CC265C; + remoteGlobalIDString = 387CBFD0CECEC9E8DA816C353D8AA44B; remoteInfo = SnapKit; }; - 79D8037643A4A5679CCDDD90A6DE8307 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = ECB4143196184B0E0EA02182DB2B9CCA; - remoteInfo = LiquidFloatingActionButton; - }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ 050B0D0CB0787BEA95A638CEB77D19BC /* LiquidFloatingActionButton.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LiquidFloatingActionButton.xcconfig; sourceTree = ""; }; 079E5EE3CDB090004C84E658BC83AEB7 /* SnapKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SnapKit-dummy.m"; sourceTree = ""; }; - 086E751CB212483A904FA8480CB5B125 /* Pods_LiquidFloatingActionButton_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LiquidFloatingActionButton_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 15C6FC5FD383058121E6098617B98C67 /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LiquidFloatingActionButton_Example.debug.xcconfig"; sourceTree = ""; }; 15F42031AA343001A7E2C8D3D69C9DE2 /* Pods-LiquidFloatingActionButton_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-LiquidFloatingActionButton_Example-dummy.m"; sourceTree = ""; }; 17ED37A4D4337C9AC445D07BA9E09051 /* SnapKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SnapKit-umbrella.h"; sourceTree = ""; }; 1A4A759ED5E8ED2278F9D307ABD11FC5 /* Pods-LiquidFloatingActionButton_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-LiquidFloatingActionButton_Example-umbrella.h"; sourceTree = ""; }; 1A877C5C14A8B495ECAB69BE839FFA44 /* ViewController+SnapKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ViewController+SnapKit.swift"; path = "Source/ViewController+SnapKit.swift"; sourceTree = ""; }; + 1C56ABE3696B5A7C30A744B23F17B774 /* Pods_LiquidFloatingActionButton_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LiquidFloatingActionButton_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 1EA1CFBED61FB63BBC905CD3AFEE402C /* SnapKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SnapKit.swift; path = Source/SnapKit.swift; sourceTree = ""; }; 3061A45F7542E986BCB23EBBD8AD4A13 /* ConstraintDescription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDescription.swift; path = Source/ConstraintDescription.swift; sourceTree = ""; }; - 31410DF950E233991ABE00041EF20709 /* LiquidFloatingActionButton.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LiquidFloatingActionButton.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 32A2AF2E2F4B1499E450931CC0CAD202 /* Pods-LiquidFloatingActionButton_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-LiquidFloatingActionButton_Example.modulemap"; sourceTree = ""; }; 34A4795691704A615AA138BF95042DC5 /* Pods-LiquidFloatingActionButton_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-LiquidFloatingActionButton_Example-acknowledgements.markdown"; sourceTree = ""; }; 369689EDAB3FAFC4E5BB39A93321BBFC /* CGPointEx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CGPointEx.swift; sourceTree = ""; }; 37A83F173235565EDE9A076A15250F07 /* Pods-LiquidFloatingActionButton_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LiquidFloatingActionButton_Example-resources.sh"; sourceTree = ""; }; - 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 415D45FAC3D162C8D3F9CFE592F79E42 /* Debugging.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Debugging.swift; path = Source/Debugging.swift; sourceTree = ""; }; 495929FB6F57FC07CF2233838AD92579 /* SnapKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SnapKit-prefix.pch"; sourceTree = ""; }; - 4A9330A77EB8489F3F2B7006FF342821 /* LiquidFloatingActionButton.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LiquidFloatingActionButton.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 4EB840C0FCFA128ECC2A9B932415D6A8 /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LiquidFloatingActionButton_Example.release.xcconfig"; sourceTree = ""; }; 55BB547CA6D4862CCE70A4B51F1EABAE /* View+SnapKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "View+SnapKit.swift"; path = "Source/View+SnapKit.swift"; sourceTree = ""; }; 56B1FCA085C2AC4CDCEB52E3588F26EB /* SnapKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = SnapKit.modulemap; sourceTree = ""; }; @@ -101,6 +90,7 @@ 63AA079CA68C8594DE2EFCEECD70391B /* Pods-LiquidFloatingActionButton_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-LiquidFloatingActionButton_Tests-acknowledgements.plist"; sourceTree = ""; }; 6BEAD485B9DC8B38EBDE94D6A091FDB6 /* CGRectEx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CGRectEx.swift; sourceTree = ""; }; 70722508FEFCEA523F7B8F66D9DDF4F5 /* LiquidFloatingActionButton.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = LiquidFloatingActionButton.modulemap; sourceTree = ""; }; + 70791619EB473F8BD49DC7B26F2768A0 /* Pods_LiquidFloatingActionButton_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LiquidFloatingActionButton_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 7BD5E598A90E9B5D7F5BE26DD5C7B6D6 /* Pods-LiquidFloatingActionButton_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LiquidFloatingActionButton_Tests-resources.sh"; sourceTree = ""; }; 824CA79EC009B18484863834998CC017 /* LiquidFloatingActionButton-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LiquidFloatingActionButton-umbrella.h"; sourceTree = ""; }; 82BC29399E8CB5DE4082F0C18B2BA3DC /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -109,7 +99,9 @@ 8DB80E76EE113421A98CB8EE23DE90D4 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 8EF67744D713AB87F9A34356FCB4C593 /* Pods-LiquidFloatingActionButton_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-LiquidFloatingActionButton_Tests.modulemap"; sourceTree = ""; }; 90D8599FCFCA98DB19D3DE0AD81D9CD6 /* SnapKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SnapKit.xcconfig; sourceTree = ""; }; + 9231BEA6AC185B3FCBFD27ACB63CD892 /* LiquidFloatingActionButton.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LiquidFloatingActionButton.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 92DD83C2BF9A16815558CBFACD79C938 /* ConstraintRelation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintRelation.swift; path = Source/ConstraintRelation.swift; sourceTree = ""; }; + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 96F405472686341EFEEAB4A3B7E44B87 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 97232F629F7FC2174E1BE76D76737706 /* Pods-LiquidFloatingActionButton_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-LiquidFloatingActionButton_Tests-dummy.m"; sourceTree = ""; }; 9B73872B15E9C56304335676CC951C90 /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LiquidFloatingActionButton_Tests.debug.xcconfig"; sourceTree = ""; }; @@ -122,80 +114,79 @@ AA63D17174A63F13D3434AAB04CB95CD /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LiquidFloatingActionButton_Tests.release.xcconfig"; sourceTree = ""; }; B80DBE465AE8ED339A23BA7027E83E9C /* Pods-LiquidFloatingActionButton_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-LiquidFloatingActionButton_Example-acknowledgements.plist"; sourceTree = ""; }; B869919EAC3B1E5EF05B0107B595C13C /* LayoutConstraint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LayoutConstraint.swift; path = Source/LayoutConstraint.swift; sourceTree = ""; }; - BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; BAF44DB2E216127955F1E0FEF8213369 /* LiquittableCircle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiquittableCircle.swift; sourceTree = ""; }; + C113B9855019081B47BCB0011553CB7B /* SnapKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SnapKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; D2E296184E24EBA83C604214BE7B30AF /* Pods-LiquidFloatingActionButton_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-LiquidFloatingActionButton_Tests-acknowledgements.markdown"; sourceTree = ""; }; D691EE87C404B7D086624B5801982F43 /* LiquidUtil.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiquidUtil.swift; sourceTree = ""; }; DEFB846E6A499B21514C1E298F56DE3B /* ConstraintAttributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintAttributes.swift; path = Source/ConstraintAttributes.swift; sourceTree = ""; }; E365F5D85C8B589E45B7CA5165A49929 /* Pods-LiquidFloatingActionButton_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LiquidFloatingActionButton_Tests-frameworks.sh"; sourceTree = ""; }; E3B69218901BE4E025D721BBC5CC763A /* SimpleCircleLiquidEngine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SimpleCircleLiquidEngine.swift; sourceTree = ""; }; E7ED5648C0C88C2BBB8B1737D3C811DF /* ConstraintItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintItem.swift; path = Source/ConstraintItem.swift; sourceTree = ""; }; - E830ACF61E27A06FCCA26909BF0C8F54 /* Pods_LiquidFloatingActionButton_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LiquidFloatingActionButton_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E9A5015EB0DACCD8DC713FB792DD43C5 /* SnapKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SnapKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; FD568EC2ADE52671E9F40F5B7FE5D901 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-LiquidFloatingActionButton_Tests-umbrella.h"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 00C831C3AB0DA859DD57545BC7D29E7D /* Frameworks */ = { + 614F0F65B18E3F7F4566838C2466DDF4 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D77880C9B4B7875F4449AD5F3204981E /* Foundation.framework in Frameworks */, + B4BFAED2D1CBD8A95C1B7F00F33D94AA /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 23EE5653C5344F25E6EAECA93959DFD7 /* Frameworks */ = { + 618F63A95B22676C4FA61F86A5AB3136 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 9839FC7BD136D98C4786DB72E56B3E5F /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2AC638701E7D00E9B1A2917508741202 /* Frameworks */ = { + 68F6EC99D6740686C4802F2C69A003BA /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 5D7F2067317C172EA89627DBE45044BF /* Foundation.framework in Frameworks */, + EAC4522ECD9EDE06632C34321215099E /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 3AEC5C0C53FB4EFE33BA1FE75DD5C4C7 /* Frameworks */ = { + 7DA469E70D4B27EE88D987E16A14CA0B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 91A0B0D5F700489F625FA80CF9E414B2 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 8C569318E9E96F70CD9CEBE58BC0A7CC /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 7C4A7782F2A3F28C5A5E5C751406E528 /* Foundation.framework in Frameworks */, + 6E328286AD7C502EA27A22A48B46157C /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 01F5553246F0637E9859D0C3A6ED8DD1 /* Products */ = { + 2B483F03EA79C3C9DDEEF7DB0181AFC0 /* Development Pods */ = { isa = PBXGroup; children = ( - 4A9330A77EB8489F3F2B7006FF342821 /* LiquidFloatingActionButton.bundle */, - 31410DF950E233991ABE00041EF20709 /* LiquidFloatingActionButton.framework */, - 086E751CB212483A904FA8480CB5B125 /* Pods_LiquidFloatingActionButton_Example.framework */, - E830ACF61E27A06FCCA26909BF0C8F54 /* Pods_LiquidFloatingActionButton_Tests.framework */, - E9A5015EB0DACCD8DC713FB792DD43C5 /* SnapKit.framework */, + AE2F18FBC8136A267123CC803D2C583B /* LiquidFloatingActionButton */, ); - name = Products; + name = "Development Pods"; sourceTree = ""; }; - 2B483F03EA79C3C9DDEEF7DB0181AFC0 /* Development Pods */ = { + 3DCAB2B7CDE207B3958B6CB957FCC758 /* iOS */ = { isa = PBXGroup; children = ( - AE2F18FBC8136A267123CC803D2C583B /* LiquidFloatingActionButton */, + CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */, ); - name = "Development Pods"; + name = iOS; + sourceTree = ""; + }; + 5D0D78B2AEA5286AA98D3198C9653619 /* Products */ = { + isa = PBXGroup; + children = ( + 9231BEA6AC185B3FCBFD27ACB63CD892 /* LiquidFloatingActionButton.framework */, + 1C56ABE3696B5A7C30A744B23F17B774 /* Pods_LiquidFloatingActionButton_Example.framework */, + 70791619EB473F8BD49DC7B26F2768A0 /* Pods_LiquidFloatingActionButton_Tests.framework */, + C113B9855019081B47BCB0011553CB7B /* SnapKit.framework */, + ); + name = Products; sourceTree = ""; }; 7A30ADABC44CCA0D9BC282B82A6F71FB /* Support Files */ = { @@ -215,11 +206,11 @@ 7DB346D0F39D3F0E887471402A8071AB = { isa = PBXGroup; children = ( - BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */, + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, 2B483F03EA79C3C9DDEEF7DB0181AFC0 /* Development Pods */, BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, AAD880A40C1D678CA44C4575218EDE0E /* Pods */, - 01F5553246F0637E9859D0C3A6ED8DD1 /* Products */, + 5D0D78B2AEA5286AA98D3198C9653619 /* Products */, F4BDFB4BCFC42C98938E70B06FC40921 /* Targets Support Files */, ); sourceTree = ""; @@ -280,19 +271,11 @@ BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { isa = PBXGroup; children = ( - BF6342C8B29F4CEEA088EFF7AB4DE362 /* iOS */, + 3DCAB2B7CDE207B3958B6CB957FCC758 /* iOS */, ); name = Frameworks; sourceTree = ""; }; - BF6342C8B29F4CEEA088EFF7AB4DE362 /* iOS */ = { - isa = PBXGroup; - children = ( - 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */, - ); - name = iOS; - sourceTree = ""; - }; D401308214B3B3372E1C579337305FF5 /* Support Files */ = { isa = PBXGroup; children = ( @@ -363,83 +346,66 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 04F4D890D5EF6701EE30839AB00ACB8E /* Headers */ = { + 0B5E5C8758ACA9EBFD5F7E2AA6E8479A /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - CD635561809D218A952928FCA3BC1B78 /* LiquidFloatingActionButton-umbrella.h in Headers */, + EAEFA188CC103359C4AE68AC11F8A844 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 5CC3252DEC5CDE17DE21497E58997C14 /* Headers */ = { + 260679D455A5673E37DC64A285D035D0 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - CA51F12534784E92F1EF5A82424E3F15 /* SnapKit-umbrella.h in Headers */, + 7E538EF481F898874DF94F0F8CBC5D2C /* LiquidFloatingActionButton-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 94258A87B95C1E034DA78FE925E70954 /* Headers */ = { + 9BA657C14DCF4133528472C8E44F67CD /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 9A8FC8391975DEC4252F9E46559D9972 /* Pods-LiquidFloatingActionButton_Example-umbrella.h in Headers */, + 40E154929C97169FF28608F168BAA648 /* Pods-LiquidFloatingActionButton_Example-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 9D8348FB5656CDC3B3A1A6C9DD613F5E /* Headers */ = { + C5453DEA4A21F19419F29DFDB5DFC00E /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - FDA81DE249911CF48CB90527D57492D2 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h in Headers */, + 42358D3ECCE5C55DBB5C84DB7CF83577 /* SnapKit-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 2E4A37C88D68A62EA5C1BC7A2A4D19AE /* LiquidFloatingActionButton-LiquidFloatingActionButton */ = { + 0ED0A08396CBAD914DE4379BCF7E585E /* Pods-LiquidFloatingActionButton_Tests */ = { isa = PBXNativeTarget; - buildConfigurationList = 2FBC67EBFEEE1117389429AE8C14564B /* Build configuration list for PBXNativeTarget "LiquidFloatingActionButton-LiquidFloatingActionButton" */; + buildConfigurationList = 4BBD76F68E67BC09C08CB14FFF4EA906 /* Build configuration list for PBXNativeTarget "Pods-LiquidFloatingActionButton_Tests" */; buildPhases = ( - 64C51C33B8DFC1470D2FE029A6D45D18 /* Sources */, - 23EE5653C5344F25E6EAECA93959DFD7 /* Frameworks */, - 1714DC3BD0B3E16B173A88A655453C03 /* Resources */, + 66EC92D768733C8D9DBB4FD857FA4B06 /* Sources */, + 7DA469E70D4B27EE88D987E16A14CA0B /* Frameworks */, + 0B5E5C8758ACA9EBFD5F7E2AA6E8479A /* Headers */, ); buildRules = ( ); dependencies = ( - ); - name = "LiquidFloatingActionButton-LiquidFloatingActionButton"; - productName = "LiquidFloatingActionButton-LiquidFloatingActionButton"; - productReference = 4A9330A77EB8489F3F2B7006FF342821 /* LiquidFloatingActionButton.bundle */; - productType = "com.apple.product-type.bundle"; - }; - 5D0A7B69BE211C66A907CBDC93A73B48 /* Pods-LiquidFloatingActionButton_Tests */ = { - isa = PBXNativeTarget; - buildConfigurationList = C817D6206254242A2F67A3E7D08BA2F2 /* Build configuration list for PBXNativeTarget "Pods-LiquidFloatingActionButton_Tests" */; - buildPhases = ( - BE47DF21A1E38DEC14BEF995C418C7F8 /* Sources */, - 00C831C3AB0DA859DD57545BC7D29E7D /* Frameworks */, - 9D8348FB5656CDC3B3A1A6C9DD613F5E /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - E99FE441132007A27D42FC2B2205ADDA /* PBXTargetDependency */, + E6929EACFC78DC2D512F1CACAB42D81A /* PBXTargetDependency */, ); name = "Pods-LiquidFloatingActionButton_Tests"; productName = "Pods-LiquidFloatingActionButton_Tests"; - productReference = E830ACF61E27A06FCCA26909BF0C8F54 /* Pods_LiquidFloatingActionButton_Tests.framework */; + productReference = 70791619EB473F8BD49DC7B26F2768A0 /* Pods_LiquidFloatingActionButton_Tests.framework */; productType = "com.apple.product-type.framework"; }; - 89A8B55ECFFB1317E22EBE8135CC265C /* SnapKit */ = { + 387CBFD0CECEC9E8DA816C353D8AA44B /* SnapKit */ = { isa = PBXNativeTarget; - buildConfigurationList = 9A828AA297BF940B2D572DBDCDCF2EDC /* Build configuration list for PBXNativeTarget "SnapKit" */; + buildConfigurationList = 47881458D9A4FBFCF836AE674D3268E5 /* Build configuration list for PBXNativeTarget "SnapKit" */; buildPhases = ( - 2BA57FF6CEBDF7CF475E749769C558C2 /* Sources */, - 3AEC5C0C53FB4EFE33BA1FE75DD5C4C7 /* Frameworks */, - 5CC3252DEC5CDE17DE21497E58997C14 /* Headers */, + 59AF0DFA288CFB3CB396C4722C8CDFD0 /* Sources */, + 614F0F65B18E3F7F4566838C2466DDF4 /* Frameworks */, + C5453DEA4A21F19419F29DFDB5DFC00E /* Headers */, ); buildRules = ( ); @@ -447,45 +413,43 @@ ); name = SnapKit; productName = SnapKit; - productReference = E9A5015EB0DACCD8DC713FB792DD43C5 /* SnapKit.framework */; + productReference = C113B9855019081B47BCB0011553CB7B /* SnapKit.framework */; productType = "com.apple.product-type.framework"; }; - AA7B69BD752FF9462F2CEEC675B7E2A9 /* Pods-LiquidFloatingActionButton_Example */ = { + 4BCE15B65BE1423E31A139A48360119E /* LiquidFloatingActionButton */ = { isa = PBXNativeTarget; - buildConfigurationList = 4B3E6CDC87679AF205E2825F4FD36A35 /* Build configuration list for PBXNativeTarget "Pods-LiquidFloatingActionButton_Example" */; + buildConfigurationList = 1EC12321BB0A0C22B6A6BE639A9983F3 /* Build configuration list for PBXNativeTarget "LiquidFloatingActionButton" */; buildPhases = ( - EC681A996D472598C4EEACB659A8B093 /* Sources */, - 2AC638701E7D00E9B1A2917508741202 /* Frameworks */, - 94258A87B95C1E034DA78FE925E70954 /* Headers */, + 8749C03AAA14097B43EAADA1E8600D74 /* Sources */, + 68F6EC99D6740686C4802F2C69A003BA /* Frameworks */, + 260679D455A5673E37DC64A285D035D0 /* Headers */, ); buildRules = ( ); dependencies = ( - 6862F76894D055BE72776FEDF4385BAC /* PBXTargetDependency */, - B066856D8E115A3A3FA11AA34B06A292 /* PBXTargetDependency */, ); - name = "Pods-LiquidFloatingActionButton_Example"; - productName = "Pods-LiquidFloatingActionButton_Example"; - productReference = 086E751CB212483A904FA8480CB5B125 /* Pods_LiquidFloatingActionButton_Example.framework */; + name = LiquidFloatingActionButton; + productName = LiquidFloatingActionButton; + productReference = 9231BEA6AC185B3FCBFD27ACB63CD892 /* LiquidFloatingActionButton.framework */; productType = "com.apple.product-type.framework"; }; - ECB4143196184B0E0EA02182DB2B9CCA /* LiquidFloatingActionButton */ = { + F7C1C7995CD2F101DD63DDC91BAABAA9 /* Pods-LiquidFloatingActionButton_Example */ = { isa = PBXNativeTarget; - buildConfigurationList = 6B577CF2C4C8B7512267A39C5C0849B6 /* Build configuration list for PBXNativeTarget "LiquidFloatingActionButton" */; + buildConfigurationList = 974C53BD384AA0C93E683E5246B81AF3 /* Build configuration list for PBXNativeTarget "Pods-LiquidFloatingActionButton_Example" */; buildPhases = ( - 0D37787463C0BEF1DD841024C3CADB7F /* Sources */, - 8C569318E9E96F70CD9CEBE58BC0A7CC /* Frameworks */, - 4695172BA8D46356F072851DA9ED351D /* Resources */, - 04F4D890D5EF6701EE30839AB00ACB8E /* Headers */, + 07AC5B339761C60E4C8735BC1C4F5E84 /* Sources */, + 618F63A95B22676C4FA61F86A5AB3136 /* Frameworks */, + 9BA657C14DCF4133528472C8E44F67CD /* Headers */, ); buildRules = ( ); dependencies = ( - FAE7CB5B7883807D0DC3EFE58E8F5318 /* PBXTargetDependency */, + 94616D549170E6823044A6E5E95F9E86 /* PBXTargetDependency */, + 68B1870B4B682D119A8F8E735AEB1AA7 /* PBXTargetDependency */, ); - name = LiquidFloatingActionButton; - productName = LiquidFloatingActionButton; - productReference = 31410DF950E233991ABE00041EF20709 /* LiquidFloatingActionButton.framework */; + name = "Pods-LiquidFloatingActionButton_Example"; + productName = "Pods-LiquidFloatingActionButton_Example"; + productReference = 1C56ABE3696B5A7C30A744B23F17B774 /* Pods_LiquidFloatingActionButton_Example.framework */; productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ @@ -494,8 +458,8 @@ D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0730; + LastSwiftUpdateCheck = 0730; + LastUpgradeCheck = 0700; }; buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; @@ -505,131 +469,134 @@ en, ); mainGroup = 7DB346D0F39D3F0E887471402A8071AB; - productRefGroup = 01F5553246F0637E9859D0C3A6ED8DD1 /* Products */; + productRefGroup = 5D0D78B2AEA5286AA98D3198C9653619 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - ECB4143196184B0E0EA02182DB2B9CCA /* LiquidFloatingActionButton */, - 2E4A37C88D68A62EA5C1BC7A2A4D19AE /* LiquidFloatingActionButton-LiquidFloatingActionButton */, - AA7B69BD752FF9462F2CEEC675B7E2A9 /* Pods-LiquidFloatingActionButton_Example */, - 5D0A7B69BE211C66A907CBDC93A73B48 /* Pods-LiquidFloatingActionButton_Tests */, - 89A8B55ECFFB1317E22EBE8135CC265C /* SnapKit */, + 4BCE15B65BE1423E31A139A48360119E /* LiquidFloatingActionButton */, + F7C1C7995CD2F101DD63DDC91BAABAA9 /* Pods-LiquidFloatingActionButton_Example */, + 0ED0A08396CBAD914DE4379BCF7E585E /* Pods-LiquidFloatingActionButton_Tests */, + 387CBFD0CECEC9E8DA816C353D8AA44B /* SnapKit */, ); }; /* End PBXProject section */ -/* Begin PBXResourcesBuildPhase section */ - 1714DC3BD0B3E16B173A88A655453C03 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 4695172BA8D46356F072851DA9ED351D /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 72042359B6606B6363E495430D780479 /* LiquidFloatingActionButton.bundle in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - /* Begin PBXSourcesBuildPhase section */ - 0D37787463C0BEF1DD841024C3CADB7F /* Sources */ = { + 07AC5B339761C60E4C8735BC1C4F5E84 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - CC6DC5A0FFFD9F4BB16D4B11F8769E6C /* ArrayEx.swift in Sources */, - ABEE259770118A74E19D8E6FFCC3B54D /* CGPointEx.swift in Sources */, - E9F9849609338D0B86CEBA5240071741 /* CGRectEx.swift in Sources */, - 54218C3D297E6E992720394B1904DFA8 /* LiquidFloatingActionButton-dummy.m in Sources */, - 82D7A27B0B5695343FBA27D55E308716 /* LiquidFloatingActionButton.swift in Sources */, - 2FD62186877ED8D79EB50BE978326AB7 /* LiquidUtil.swift in Sources */, - C4B49BC88CE5107F310F24520E2B936F /* LiquittableCircle.swift in Sources */, - B95FC4D5CA4A1AB1B9ACC0FB060B3DDF /* SimpleCircleLiquidEngine.swift in Sources */, - 27265ED50FB0F70B0DC6CACFEBFEFEBB /* UIColorEx.swift in Sources */, + 03D37CD9914A34403CA5E7773D42702F /* Pods-LiquidFloatingActionButton_Example-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2BA57FF6CEBDF7CF475E749769C558C2 /* Sources */ = { + 59AF0DFA288CFB3CB396C4722C8CDFD0 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 73A598302FF7775E6E0FBB231B416F61 /* Constraint.swift in Sources */, - 8AE68AF11C742B3DFB12B8426C53FAE0 /* ConstraintAttributes.swift in Sources */, - D78D1E3E56D3C6ADD05FE6E4A0330413 /* ConstraintDescription.swift in Sources */, - F8430257E5D9EBB43F60769434F04A42 /* ConstraintItem.swift in Sources */, - DAB96FE2A0E1C3E225853B3CCF8FE4A5 /* ConstraintMaker.swift in Sources */, - 3119F291AB6588F10BE54351505CD5FD /* ConstraintRelation.swift in Sources */, - A63823259878C902D4734D9B3813BAC8 /* Debugging.swift in Sources */, - 12A25CB430ECAFDE828EACA52A4EA9B3 /* EdgeInsets.swift in Sources */, - A516196B52C6812BD20B203BA789924F /* LayoutConstraint.swift in Sources */, - 2779506876997B329DBA24C5C89E0741 /* SnapKit-dummy.m in Sources */, - 2FB98EB28FD690835891F30F8D410080 /* SnapKit.swift in Sources */, - 063AF3E3F6F2F42DFDE02296C4B454DE /* View+SnapKit.swift in Sources */, - 5FC1075233F230CAF3206BC8967896BF /* ViewController+SnapKit.swift in Sources */, + F3F6F5C49B085A707AB2C67E1030AF76 /* Constraint.swift in Sources */, + 03F2B6FBFE5D55E34D7E5C88DE1CDA7B /* ConstraintAttributes.swift in Sources */, + 03793F206785B9D2BA06A5435E20AE0C /* ConstraintDescription.swift in Sources */, + 6061324BD591EA79B018F2F1871A02C3 /* ConstraintItem.swift in Sources */, + C608DC8CB9DB303EB691EA97867E213E /* ConstraintMaker.swift in Sources */, + 4CFF5A03EEC8466E2BB0A2CB1118C7CD /* ConstraintRelation.swift in Sources */, + 95EFB8B2404A882E9DD5F0BF57EB7B2A /* Debugging.swift in Sources */, + 58625CE525EE7061B6D9931CFD0FD75C /* EdgeInsets.swift in Sources */, + 9EEF0CC5FA1CC69D84773F08923C3284 /* LayoutConstraint.swift in Sources */, + B909B243517B8B78112F067A6344B430 /* SnapKit-dummy.m in Sources */, + 159EE4B496A34DD8AB3D288DAAE91542 /* SnapKit.swift in Sources */, + 13C1A007BB18BD47FF80F8BAFA7C1589 /* View+SnapKit.swift in Sources */, + B26546EC79C56C181B6A6BFA7A36CD56 /* ViewController+SnapKit.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 64C51C33B8DFC1470D2FE029A6D45D18 /* Sources */ = { + 66EC92D768733C8D9DBB4FD857FA4B06 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 4C19ED4C22D6B9808195702DB3990008 /* Pods-LiquidFloatingActionButton_Tests-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - BE47DF21A1E38DEC14BEF995C418C7F8 /* Sources */ = { + 8749C03AAA14097B43EAADA1E8600D74 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - EECDD5BD4ECE7607A35A00B5B7895396 /* Pods-LiquidFloatingActionButton_Tests-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - EC681A996D472598C4EEACB659A8B093 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 880A142C73ADFAC66E12A00A6D461281 /* Pods-LiquidFloatingActionButton_Example-dummy.m in Sources */, + 3D41203B7B3855EA27D3E987D3EEB224 /* ArrayEx.swift in Sources */, + 903FE6138690401881CED819779A73AC /* CGPointEx.swift in Sources */, + 8D10C418C90EE34F5BA2C22019612D80 /* CGRectEx.swift in Sources */, + 5D47B5F7F9B93DB896CFAEDA03CCB522 /* LiquidFloatingActionButton-dummy.m in Sources */, + B21BD823B02D2B87FD9189869502FCD5 /* LiquidFloatingActionButton.swift in Sources */, + FB4B87C1866264B4C63C18C6D89EC703 /* LiquidUtil.swift in Sources */, + 70A374969C87173198D8D4B6111ECB6E /* LiquittableCircle.swift in Sources */, + CB9BE415254E64439620E55C08536186 /* SimpleCircleLiquidEngine.swift in Sources */, + 222D303213262931EA317A1E0F6BAB38 /* UIColorEx.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 6862F76894D055BE72776FEDF4385BAC /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = LiquidFloatingActionButton; - target = ECB4143196184B0E0EA02182DB2B9CCA /* LiquidFloatingActionButton */; - targetProxy = 07C6F3DDEBB62F1F5FE9FCDBE877F723 /* PBXContainerItemProxy */; - }; - B066856D8E115A3A3FA11AA34B06A292 /* PBXTargetDependency */ = { + 68B1870B4B682D119A8F8E735AEB1AA7 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = SnapKit; - target = 89A8B55ECFFB1317E22EBE8135CC265C /* SnapKit */; - targetProxy = 39AC163D279BBF45FED49635CDDB4483 /* PBXContainerItemProxy */; + target = 387CBFD0CECEC9E8DA816C353D8AA44B /* SnapKit */; + targetProxy = F37E0413588FEF57B185C90A28936627 /* PBXContainerItemProxy */; }; - E99FE441132007A27D42FC2B2205ADDA /* PBXTargetDependency */ = { + 94616D549170E6823044A6E5E95F9E86 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = LiquidFloatingActionButton; - target = ECB4143196184B0E0EA02182DB2B9CCA /* LiquidFloatingActionButton */; - targetProxy = 79D8037643A4A5679CCDDD90A6DE8307 /* PBXContainerItemProxy */; + target = 4BCE15B65BE1423E31A139A48360119E /* LiquidFloatingActionButton */; + targetProxy = 5925C73B578B569902B6E043D675652A /* PBXContainerItemProxy */; }; - FAE7CB5B7883807D0DC3EFE58E8F5318 /* PBXTargetDependency */ = { + E6929EACFC78DC2D512F1CACAB42D81A /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "LiquidFloatingActionButton-LiquidFloatingActionButton"; - target = 2E4A37C88D68A62EA5C1BC7A2A4D19AE /* LiquidFloatingActionButton-LiquidFloatingActionButton */; - targetProxy = 241D7E67C3518A9E632A0EDFC7D211A4 /* PBXContainerItemProxy */; + name = LiquidFloatingActionButton; + target = 4BCE15B65BE1423E31A139A48360119E /* LiquidFloatingActionButton */; + targetProxy = 10B0CFDA9E4883AADDB4595153399A95 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 10DE1947DAC0ED28F6C0A9F9BD75D546 /* Release */ = { + 001FD24C7FFEED6B7B9F95D34A0828DF /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9B73872B15E9C56304335676CC951C90 /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_LiquidFloatingActionButton_Tests; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 0ACDCBCB0B6796575F46FFA2F5410C6B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -646,7 +613,10 @@ COPY_PHASE_STRIP = YES; ENABLE_NS_ASSERTIONS = NO; GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_PREPROCESSOR_DEFINITIONS = "RELEASE=1"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNDECLARED_SELECTOR = YES; @@ -660,29 +630,31 @@ }; name = Release; }; - 188B1B30656E63567EF683B42236451C /* Release */ = { + 0BC13CD5FBD0B6B917F7955554546458 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = AA63D17174A63F13D3434AAB04CB95CD /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */; + baseConfigurationReference = 4EB840C0FCFA128ECC2A9B932415D6A8 /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; - INFOPLIST_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Info.plist"; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Example/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.3; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.modulemap"; + MODULEMAP_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.modulemap"; MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_LiquidFloatingActionButton_Tests; + PRODUCT_NAME = Pods_LiquidFloatingActionButton_Example; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -691,24 +663,56 @@ }; name = Release; }; - 18B45C724122F5B889D93F59EBF8E602 /* Release */ = { + 1597EB20B7AC6F8393337982BF89FADB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4EB840C0FCFA128ECC2A9B932415D6A8 /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */; + baseConfigurationReference = 90D8599FCFCA98DB19D3DE0AD81D9CD6 /* SnapKit.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/SnapKit/SnapKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/SnapKit/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/SnapKit/SnapKit.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = SnapKit; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 6EED94C3BCC5D4D74F39F92DA8C23BEE /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 15C6FC5FD383058121E6098617B98C67 /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; INFOPLIST_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Example/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.3; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MACH_O_TYPE = staticlib; MODULEMAP_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; + MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -716,28 +720,51 @@ PRODUCT_NAME = Pods_LiquidFloatingActionButton_Example; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - 27B0FBFE8C9EFA26FD327675D36A754B /* Debug */ = { + 7A6E9C535D324A4F0E8ED7997F1DB5BB /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 050B0D0CB0787BEA95A638CEB77D19BC /* LiquidFloatingActionButton.xcconfig */; + baseConfigurationReference = AA63D17174A63F13D3434AAB04CB95CD /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */; buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; - PRODUCT_NAME = LiquidFloatingActionButton; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_LiquidFloatingActionButton_Tests; SDKROOT = iphoneos; SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - 552D02D5BA751AC2E8790D2811D496CA /* Debug */ = { + D3E3D092A3FF7311A98E44BBA36FFD12 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -757,6 +784,7 @@ GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", "DEBUG=1", "$(inherited)", ); @@ -774,37 +802,26 @@ }; name = Debug; }; - 55C9FE02C0B280C8E993B24853250945 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 050B0D0CB0787BEA95A638CEB77D19BC /* LiquidFloatingActionButton.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - PRODUCT_NAME = LiquidFloatingActionButton; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; - 5892580A6902729CC61174251CBB1A33 /* Debug */ = { + E31108E78351255ACC4E34E6DD52DC86 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 050B0D0CB0787BEA95A638CEB77D19BC /* LiquidFloatingActionButton.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; GCC_PREFIX_HEADER = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton-prefix.pch"; INFOPLIST_FILE = "Target Support Files/LiquidFloatingActionButton/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.modulemap"; MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = LiquidFloatingActionButton; SDKROOT = iphoneos; SKIP_INSTALL = YES; @@ -815,147 +832,56 @@ }; name = Debug; }; - 6D54594BC63069DC9FCFF8C2796C20D5 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 050B0D0CB0787BEA95A638CEB77D19BC /* LiquidFloatingActionButton.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/LiquidFloatingActionButton/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = LiquidFloatingActionButton; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 9C22AAE809EDA71FD3C15EA422ADE161 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 15C6FC5FD383058121E6098617B98C67 /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - INFOPLIST_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Example/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_LiquidFloatingActionButton_Example; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - CEAA3042990C82EED907BF303EF0A33F /* Debug */ = { + F2B91DB995726D485A3A0C653AB36068 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 90D8599FCFCA98DB19D3DE0AD81D9CD6 /* SnapKit.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; GCC_PREFIX_HEADER = "Target Support Files/SnapKit/SnapKit-prefix.pch"; INFOPLIST_FILE = "Target Support Files/SnapKit/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MODULEMAP_FILE = "Target Support Files/SnapKit/SnapKit.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + MTL_ENABLE_DEBUG_INFO = NO; PRODUCT_NAME = SnapKit; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - D62E36575F2FF99B148449794194946F /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9B73872B15E9C56304335676CC951C90 /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - INFOPLIST_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_LiquidFloatingActionButton_Tests; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - EF4B6EF8B7D192699B35D2CE4B5937A1 /* Release */ = { + F9CE954751AE262BA38DCEAFEE1B5D33 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 90D8599FCFCA98DB19D3DE0AD81D9CD6 /* SnapKit.xcconfig */; + baseConfigurationReference = 050B0D0CB0787BEA95A638CEB77D19BC /* LiquidFloatingActionButton.xcconfig */; buildSettings = { "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/SnapKit/SnapKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SnapKit/Info.plist"; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/LiquidFloatingActionButton/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/SnapKit/SnapKit.modulemap"; + MODULEMAP_FILE = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.modulemap"; MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = SnapKit; + PRODUCT_NAME = LiquidFloatingActionButton; SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; @@ -967,56 +893,47 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + 1EC12321BB0A0C22B6A6BE639A9983F3 /* Build configuration list for PBXNativeTarget "LiquidFloatingActionButton" */ = { isa = XCConfigurationList; buildConfigurations = ( - 552D02D5BA751AC2E8790D2811D496CA /* Debug */, - 10DE1947DAC0ED28F6C0A9F9BD75D546 /* Release */, + E31108E78351255ACC4E34E6DD52DC86 /* Debug */, + F9CE954751AE262BA38DCEAFEE1B5D33 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 2FBC67EBFEEE1117389429AE8C14564B /* Build configuration list for PBXNativeTarget "LiquidFloatingActionButton-LiquidFloatingActionButton" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 27B0FBFE8C9EFA26FD327675D36A754B /* Debug */, - 55C9FE02C0B280C8E993B24853250945 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4B3E6CDC87679AF205E2825F4FD36A35 /* Build configuration list for PBXNativeTarget "Pods-LiquidFloatingActionButton_Example" */ = { + 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 9C22AAE809EDA71FD3C15EA422ADE161 /* Debug */, - 18B45C724122F5B889D93F59EBF8E602 /* Release */, + D3E3D092A3FF7311A98E44BBA36FFD12 /* Debug */, + 0ACDCBCB0B6796575F46FFA2F5410C6B /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 6B577CF2C4C8B7512267A39C5C0849B6 /* Build configuration list for PBXNativeTarget "LiquidFloatingActionButton" */ = { + 47881458D9A4FBFCF836AE674D3268E5 /* Build configuration list for PBXNativeTarget "SnapKit" */ = { isa = XCConfigurationList; buildConfigurations = ( - 5892580A6902729CC61174251CBB1A33 /* Debug */, - 6D54594BC63069DC9FCFF8C2796C20D5 /* Release */, + 1597EB20B7AC6F8393337982BF89FADB /* Debug */, + F2B91DB995726D485A3A0C653AB36068 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 9A828AA297BF940B2D572DBDCDCF2EDC /* Build configuration list for PBXNativeTarget "SnapKit" */ = { + 4BBD76F68E67BC09C08CB14FFF4EA906 /* Build configuration list for PBXNativeTarget "Pods-LiquidFloatingActionButton_Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - CEAA3042990C82EED907BF303EF0A33F /* Debug */, - EF4B6EF8B7D192699B35D2CE4B5937A1 /* Release */, + 001FD24C7FFEED6B7B9F95D34A0828DF /* Debug */, + 7A6E9C535D324A4F0E8ED7997F1DB5BB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - C817D6206254242A2F67A3E7D08BA2F2 /* Build configuration list for PBXNativeTarget "Pods-LiquidFloatingActionButton_Tests" */ = { + 974C53BD384AA0C93E683E5246B81AF3 /* Build configuration list for PBXNativeTarget "Pods-LiquidFloatingActionButton_Example" */ = { isa = XCConfigurationList; buildConfigurations = ( - D62E36575F2FF99B148449794194946F /* Debug */, - 188B1B30656E63567EF683B42236451C /* Release */, + 6EED94C3BCC5D4D74F39F92DA8C23BEE /* Debug */, + 0BC13CD5FBD0B6B917F7955554546458 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/Example/Pods/Pods.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Example/Pods/Pods.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 919434a..0000000 --- a/Example/Pods/Pods.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/LiquidFloatingActionButton.xcscheme b/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/LiquidFloatingActionButton.xcscheme deleted file mode 100644 index 72fadf5..0000000 --- a/Example/Pods/Pods.xcodeproj/xcshareddata/xcschemes/LiquidFloatingActionButton.xcscheme +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Pods/Target Support Files/LiquidFloatingActionButton/Info.plist b/Example/Pods/Target Support Files/LiquidFloatingActionButton/Info.plist index b24015f..97eeeda 100644 --- a/Example/Pods/Target Support Files/LiquidFloatingActionButton/Info.plist +++ b/Example/Pods/Target Support Files/LiquidFloatingActionButton/Info.plist @@ -2,25 +2,25 @@ - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 0.1.1 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 0.1.1 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + diff --git a/Example/Pods/Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.xcconfig b/Example/Pods/Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.xcconfig index 3118ac0..edd420b 100644 --- a/Example/Pods/Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.xcconfig +++ b/Example/Pods/Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.xcconfig @@ -1,5 +1,9 @@ +CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/LiquidFloatingActionButton GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/LiquidFloatingActionButton" "${PODS_ROOT}/Headers/Public" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} -SKIP_INSTALL = YES \ No newline at end of file +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Info.plist b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Info.plist index 11db4b7..2243fe6 100644 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Info.plist +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Info.plist @@ -2,25 +2,25 @@ - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-acknowledgements.markdown b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-acknowledgements.markdown index 08d9f8c..9568dbf 100644 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-acknowledgements.markdown +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-acknowledgements.markdown @@ -46,4 +46,4 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -Generated by CocoaPods - http://cocoapods.org +Generated by CocoaPods - https://cocoapods.org diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-acknowledgements.plist index 1128086..5b122f4 100644 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-acknowledgements.plist +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-acknowledgements.plist @@ -68,7 +68,7 @@ THE SOFTWARE. FooterText - Generated by CocoaPods - http://cocoapods.org + Generated by CocoaPods - https://cocoapods.org Title Type diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-frameworks.sh b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-frameworks.sh index c9965ef..938531a 100755 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-frameworks.sh +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-frameworks.sh @@ -16,7 +16,7 @@ install_framework() local source="$1" fi - local destination="${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" if [ -L "${source}" ]; then echo "Symlinked..." @@ -59,8 +59,8 @@ code_sign_if_enabled() { if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then # Use the current code_sign_identitiy echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements \"$1\"" - /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1" + echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\"" + /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1" fi } @@ -84,10 +84,10 @@ strip_invalid_archs() { if [[ "$CONFIGURATION" == "Debug" ]]; then - install_framework "Pods-LiquidFloatingActionButton_Example/LiquidFloatingActionButton.framework" - install_framework "Pods-LiquidFloatingActionButton_Example/SnapKit.framework" + install_framework "$BUILT_PRODUCTS_DIR/LiquidFloatingActionButton/LiquidFloatingActionButton.framework" + install_framework "$BUILT_PRODUCTS_DIR/SnapKit/SnapKit.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then - install_framework "Pods-LiquidFloatingActionButton_Example/LiquidFloatingActionButton.framework" - install_framework "Pods-LiquidFloatingActionButton_Example/SnapKit.framework" + install_framework "$BUILT_PRODUCTS_DIR/LiquidFloatingActionButton/LiquidFloatingActionButton.framework" + install_framework "$BUILT_PRODUCTS_DIR/SnapKit/SnapKit.framework" fi diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-resources.sh b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-resources.sh index 16774fb..0a15615 100755 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-resources.sh +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-resources.sh @@ -1,13 +1,28 @@ #!/bin/sh set -e -mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt > "$RESOURCES_TO_COPY" XCASSET_FILES=() +case "${TARGETED_DEVICE_FAMILY}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; +esac + realpath() { DIRECTORY="$(cd "${1%/*}" && pwd)" FILENAME="${1##*/}" @@ -16,50 +31,57 @@ realpath() { install_resource() { - case $1 in + if [[ "$1" = /* ]] ; then + RESOURCE_PATH="$1" + else + RESOURCE_PATH="${PODS_ROOT}/$1" + fi + if [[ ! -e "$RESOURCE_PATH" ]] ; then + cat << EOM +error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. +EOM + exit 1 + fi + case $RESOURCE_PATH in *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" - ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" - ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.framework) - echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" ;; *.xcdatamodel) - echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\"" - xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" ;; *.xcdatamodeld) - echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\"" - xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" ;; *.xcmappingmodel) - echo "xcrun mapc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm\"" - xcrun mapc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm" + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" ;; *.xcassets) - ABSOLUTE_XCASSET_FILE=$(realpath "${PODS_ROOT}/$1") + ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH") XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") ;; - /*) - echo "$1" - echo "$1" >> "$RESOURCES_TO_COPY" - ;; *) - echo "${PODS_ROOT}/$1" - echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY" + echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" ;; esac } -mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" @@ -68,21 +90,6 @@ rm -f "$RESOURCES_TO_COPY" if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] then - case "${TARGETED_DEVICE_FAMILY}" in - 1,2) - TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" - ;; - 1) - TARGET_DEVICE_ARGS="--target-device iphone" - ;; - 2) - TARGET_DEVICE_ARGS="--target-device ipad" - ;; - *) - TARGET_DEVICE_ARGS="--target-device mac" - ;; - esac - # Find all other xcassets (this unfortunately includes those of path pods and other targets). OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) while read line; do @@ -91,5 +98,5 @@ then fi done <<<"$OTHER_XCASSETS" - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" fi diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.debug.xcconfig b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.debug.xcconfig index ffedbcc..1e2713c 100644 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.debug.xcconfig @@ -1,8 +1,10 @@ EMBEDDED_CONTENT_CONTAINS_SWIFT = YES +FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/LiquidFloatingActionButton" "$PODS_CONFIGURATION_BUILD_DIR/SnapKit" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/LiquidFloatingActionButton.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/SnapKit.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/LiquidFloatingActionButton/LiquidFloatingActionButton.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/SnapKit/SnapKit.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "LiquidFloatingActionButton" -framework "SnapKit" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-LiquidFloatingActionButton_Example -PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.release.xcconfig b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.release.xcconfig index ffedbcc..1e2713c 100644 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.release.xcconfig @@ -1,8 +1,10 @@ EMBEDDED_CONTENT_CONTAINS_SWIFT = YES +FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/LiquidFloatingActionButton" "$PODS_CONFIGURATION_BUILD_DIR/SnapKit" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/LiquidFloatingActionButton.framework/Headers" -iquote "$CONFIGURATION_BUILD_DIR/SnapKit.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/LiquidFloatingActionButton/LiquidFloatingActionButton.framework/Headers" -iquote "$PODS_CONFIGURATION_BUILD_DIR/SnapKit/SnapKit.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "LiquidFloatingActionButton" -framework "SnapKit" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-LiquidFloatingActionButton_Example -PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Info.plist b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Info.plist index 11db4b7..2243fe6 100644 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Info.plist +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Info.plist @@ -2,25 +2,25 @@ - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.0.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-acknowledgements.markdown b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-acknowledgements.markdown index 0d04137..a36bfbf 100644 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-acknowledgements.markdown +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-acknowledgements.markdown @@ -23,4 +23,4 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -Generated by CocoaPods - http://cocoapods.org +Generated by CocoaPods - https://cocoapods.org diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-acknowledgements.plist index b09eecd..72cd0e4 100644 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-acknowledgements.plist +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-acknowledgements.plist @@ -41,7 +41,7 @@ THE SOFTWARE. FooterText - Generated by CocoaPods - http://cocoapods.org + Generated by CocoaPods - https://cocoapods.org Title Type diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-frameworks.sh b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-frameworks.sh index a71003f..77988ef 100755 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-frameworks.sh +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-frameworks.sh @@ -16,7 +16,7 @@ install_framework() local source="$1" fi - local destination="${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" if [ -L "${source}" ]; then echo "Symlinked..." @@ -59,8 +59,8 @@ code_sign_if_enabled() { if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then # Use the current code_sign_identitiy echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements \"$1\"" - /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1" + echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\"" + /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1" fi } @@ -84,8 +84,8 @@ strip_invalid_archs() { if [[ "$CONFIGURATION" == "Debug" ]]; then - install_framework "Pods-LiquidFloatingActionButton_Tests/LiquidFloatingActionButton.framework" + install_framework "$BUILT_PRODUCTS_DIR/LiquidFloatingActionButton/LiquidFloatingActionButton.framework" fi if [[ "$CONFIGURATION" == "Release" ]]; then - install_framework "Pods-LiquidFloatingActionButton_Tests/LiquidFloatingActionButton.framework" + install_framework "$BUILT_PRODUCTS_DIR/LiquidFloatingActionButton/LiquidFloatingActionButton.framework" fi diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-resources.sh b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-resources.sh index 16774fb..0a15615 100755 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-resources.sh +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-resources.sh @@ -1,13 +1,28 @@ #!/bin/sh set -e -mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt > "$RESOURCES_TO_COPY" XCASSET_FILES=() +case "${TARGETED_DEVICE_FAMILY}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; +esac + realpath() { DIRECTORY="$(cd "${1%/*}" && pwd)" FILENAME="${1##*/}" @@ -16,50 +31,57 @@ realpath() { install_resource() { - case $1 in + if [[ "$1" = /* ]] ; then + RESOURCE_PATH="$1" + else + RESOURCE_PATH="${PODS_ROOT}/$1" + fi + if [[ ! -e "$RESOURCE_PATH" ]] ; then + cat << EOM +error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. +EOM + exit 1 + fi + case $RESOURCE_PATH in *.storyboard) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc ${PODS_ROOT}/$1 --sdk ${SDKROOT}" - ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .storyboard`.storyboardc" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.xib) - echo "ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib ${PODS_ROOT}/$1 --sdk ${SDKROOT}" - ibtool --reference-external-strings-file --errors --warnings --notices --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$1\" .xib`.nib" "${PODS_ROOT}/$1" --sdk "${SDKROOT}" + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} ;; *.framework) - echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - echo "rsync -av ${PODS_ROOT}/$1 ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - rsync -av "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" ;; *.xcdatamodel) - echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1"`.mom\"" - xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodel`.mom" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" ;; *.xcdatamodeld) - echo "xcrun momc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd\"" - xcrun momc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcdatamodeld`.momd" + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" ;; *.xcmappingmodel) - echo "xcrun mapc \"${PODS_ROOT}/$1\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm\"" - xcrun mapc "${PODS_ROOT}/$1" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$1" .xcmappingmodel`.cdm" + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" ;; *.xcassets) - ABSOLUTE_XCASSET_FILE=$(realpath "${PODS_ROOT}/$1") + ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH") XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") ;; - /*) - echo "$1" - echo "$1" >> "$RESOURCES_TO_COPY" - ;; *) - echo "${PODS_ROOT}/$1" - echo "${PODS_ROOT}/$1" >> "$RESOURCES_TO_COPY" + echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" ;; esac } -mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" -rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" @@ -68,21 +90,6 @@ rm -f "$RESOURCES_TO_COPY" if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] then - case "${TARGETED_DEVICE_FAMILY}" in - 1,2) - TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" - ;; - 1) - TARGET_DEVICE_ARGS="--target-device iphone" - ;; - 2) - TARGET_DEVICE_ARGS="--target-device ipad" - ;; - *) - TARGET_DEVICE_ARGS="--target-device mac" - ;; - esac - # Find all other xcassets (this unfortunately includes those of path pods and other targets). OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) while read line; do @@ -91,5 +98,5 @@ then fi done <<<"$OTHER_XCASSETS" - printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${IPHONEOS_DEPLOYMENT_TARGET}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" fi diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.debug.xcconfig b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.debug.xcconfig index ad7eaec..b7ae685 100644 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.debug.xcconfig @@ -1,8 +1,10 @@ EMBEDDED_CONTENT_CONTAINS_SWIFT = YES +FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/LiquidFloatingActionButton" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/LiquidFloatingActionButton.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/LiquidFloatingActionButton/LiquidFloatingActionButton.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "LiquidFloatingActionButton" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-LiquidFloatingActionButton_Tests -PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.release.xcconfig b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.release.xcconfig index ad7eaec..b7ae685 100644 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.release.xcconfig @@ -1,8 +1,10 @@ EMBEDDED_CONTENT_CONTAINS_SWIFT = YES +FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/LiquidFloatingActionButton" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' -OTHER_CFLAGS = $(inherited) -iquote "$CONFIGURATION_BUILD_DIR/LiquidFloatingActionButton.framework/Headers" +OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/LiquidFloatingActionButton/LiquidFloatingActionButton.framework/Headers" OTHER_LDFLAGS = $(inherited) -framework "LiquidFloatingActionButton" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" -PODS_FRAMEWORK_BUILD_PATH = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/Pods-LiquidFloatingActionButton_Tests -PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/SnapKit/Info.plist b/Example/Pods/Target Support Files/SnapKit/Info.plist index 8c8cd6c..d4ff719 100644 --- a/Example/Pods/Target Support Files/SnapKit/Info.plist +++ b/Example/Pods/Target Support Files/SnapKit/Info.plist @@ -2,25 +2,25 @@ - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - FMWK - CFBundleShortVersionString - 0.20.0 - CFBundleSignature - ???? - CFBundleVersion - ${CURRENT_PROJECT_VERSION} - NSPrincipalClass - + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 0.20.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + diff --git a/Example/Pods/Target Support Files/SnapKit/SnapKit.xcconfig b/Example/Pods/Target Support Files/SnapKit/SnapKit.xcconfig index 28558bd..e6ea1b4 100644 --- a/Example/Pods/Target Support Files/SnapKit/SnapKit.xcconfig +++ b/Example/Pods/Target Support Files/SnapKit/SnapKit.xcconfig @@ -1,5 +1,9 @@ +CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/SnapKit GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SnapKit" "${PODS_ROOT}/Headers/Public" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} -SKIP_INSTALL = YES \ No newline at end of file +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/LiquidFloatingActionButton.podspec b/LiquidFloatingActionButton.podspec index 1ce91ef..00e8241 100644 --- a/LiquidFloatingActionButton.podspec +++ b/LiquidFloatingActionButton.podspec @@ -11,29 +11,31 @@ Pod::Spec.new do |s| s.version = "0.1.1" s.summary = "Material Design Floating Action Button in liquid state" -# This description is used to generate tags and improve search results. -# * Think: What does it do? Why did you write it? What is the focus? -# * Try to keep it short, snappy and to the point. -# * Write the description between the DESC delimiters below. -# * Finally, don't worry about the indent, CocoaPods strips it! + # This description is used to generate tags and improve search results. + # * Think: What does it do? Why did you write it? What is the focus? + # * Try to keep it short, snappy and to the point. + # * Write the description between the DESC delimiters below. + # * Finally, don't worry about the indent, CocoaPods strips it! s.description = <<-DESC Material Design Floating Action Button in liquid state inspired by http://www.materialup.com/posts/material-in-a-liquid-state + Forked from: https://github.com/yoavlt/LiquidFloatingActionButton DESC - s.homepage = "https://github.com/yoavlt/LiquidFloatingActionButton" + s.homepage = "https://github.com/shotaroikeda/LiquidFloatingActionButton" # s.screenshots = "www.example.com/screenshots_1", "www.example.com/screenshots_2" s.license = 'MIT' - s.author = { "Takuma Yoshida" => "yoa.jmpr.w@gmail.com" } - s.source = { :git => "https://github.com/yoavlt/LiquidFloatingActionButton.git", :tag => s.version.to_s } + s.author = { "Shotaro Ikeda" => "ikeda.shot@gmail.com" } + s.source = { :git => "https://github.com/shotaroikeda/LiquidFloatingActionButton.git", :tag => s.version.to_s } # s.social_media_url = 'https://twitter.com/' s.platform = :ios, '8.0' s.requires_arc = true s.source_files = 'Pod/Classes/**/*' - s.resource_bundles = { - 'LiquidFloatingActionButton' => ['Pod/Assets/*.png'] - } + # Error in podspec if this is enabled + # s.resource_bundles = { + # 'LiquidFloatingActionButton' => ['Pod/Assets/*.png'] + # } # s.public_header_files = 'Pod/Classes/**/*.h' # s.frameworks = 'UIKit', 'MapKit' From f4d9f013374b27e4d4926653d820ca70702acbf9 Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Sun, 5 Jun 2016 23:48:45 -0500 Subject: [PATCH 08/31] updated project build settings for xcode 7 --- .../project.pbxproj | 10 ++------ Example/Podfile.lock | 4 ++-- Example/Pods/Manifest.lock | 4 ++-- .../Source/ConstraintDescription.swift | 24 +++++++++++++++++++ .../Pods/SnapKit/Source/View+SnapKit.swift | 10 ++++---- .../Target Support Files/SnapKit/Info.plist | 2 +- 6 files changed, 36 insertions(+), 18 deletions(-) diff --git a/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj b/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj index 95671c7..3bab5e9 100644 --- a/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj +++ b/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj @@ -490,6 +490,7 @@ baseConfigurationReference = 7544384970EC4D04EEF18E55 /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = LiquidFloatingActionButton/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MODULE_NAME = ExampleApp; @@ -503,6 +504,7 @@ baseConfigurationReference = 0F7E7FC5246A093F646144E2 /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = LiquidFloatingActionButton/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MODULE_NAME = ExampleApp; @@ -516,10 +518,6 @@ baseConfigurationReference = 4E8D9BBA96797E6E98FBF3E4 /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", @@ -537,10 +535,6 @@ baseConfigurationReference = 8646031E07CFB5973A85169A /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - ); INFOPLIST_FILE = Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 8241eb6..36b8184 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -1,6 +1,6 @@ PODS: - LiquidFloatingActionButton (0.1.1) - - SnapKit (0.20.0) + - SnapKit (0.21.0) DEPENDENCIES: - LiquidFloatingActionButton (from `../`) @@ -12,7 +12,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: LiquidFloatingActionButton: 1e13ddd113b18b953e80eed95adf64d2c0433815 - SnapKit: 5fce3c1bbbf1fbd31de9aa92f33eb9fa03f15650 + SnapKit: 2756fe24b706367af224c9c508d2f9166d03354c PODFILE CHECKSUM: d32e84aa2d52a9e8dbba10e8de937cda2a823e0d diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index 8241eb6..36b8184 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -1,6 +1,6 @@ PODS: - LiquidFloatingActionButton (0.1.1) - - SnapKit (0.20.0) + - SnapKit (0.21.0) DEPENDENCIES: - LiquidFloatingActionButton (from `../`) @@ -12,7 +12,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: LiquidFloatingActionButton: 1e13ddd113b18b953e80eed95adf64d2c0433815 - SnapKit: 5fce3c1bbbf1fbd31de9aa92f33eb9fa03f15650 + SnapKit: 2756fe24b706367af224c9c508d2f9166d03354c PODFILE CHECKSUM: d32e84aa2d52a9e8dbba10e8de937cda2a823e0d diff --git a/Example/Pods/SnapKit/Source/ConstraintDescription.swift b/Example/Pods/SnapKit/Source/ConstraintDescription.swift index 6eb5492..384ee30 100644 --- a/Example/Pods/SnapKit/Source/ConstraintDescription.swift +++ b/Example/Pods/SnapKit/Source/ConstraintDescription.swift @@ -95,6 +95,7 @@ public protocol ConstraintDescriptionRelatable: class { func equalTo(other: ConstraintItem) -> ConstraintDescriptionEditable func equalTo(other: View) -> ConstraintDescriptionEditable + func equalToSuperview() -> ConstraintDescriptionEditable @available(iOS 7.0, *) func equalTo(other: LayoutSupport) -> ConstraintDescriptionEditable @available(iOS 9.0, OSX 10.11, *) @@ -110,6 +111,7 @@ public protocol ConstraintDescriptionRelatable: class { func lessThanOrEqualTo(other: ConstraintItem) -> ConstraintDescriptionEditable func lessThanOrEqualTo(other: View) -> ConstraintDescriptionEditable + func lessThanOrEqualToSuperview() -> ConstraintDescriptionEditable @available(iOS 7.0, *) func lessThanOrEqualTo(other: LayoutSupport) -> ConstraintDescriptionEditable @available(iOS 9.0, OSX 10.11, *) @@ -125,6 +127,7 @@ public protocol ConstraintDescriptionRelatable: class { func greaterThanOrEqualTo(other: ConstraintItem) -> ConstraintDescriptionEditable func greaterThanOrEqualTo(other: View) -> ConstraintDescriptionEditable + func greaterThanOrEqualToSuperview() -> ConstraintDescriptionEditable @available(iOS 7.0, *) func greaterThanOrEqualTo(other: LayoutSupport) -> ConstraintDescriptionEditable @available(iOS 9.0, OSX 10.11, *) @@ -229,6 +232,13 @@ internal class ConstraintDescription: ConstraintDescriptionExtendable, Constrain internal func equalTo(other: View) -> ConstraintDescriptionEditable { return self.constrainTo(other, relation: .Equal) } + internal func equalToSuperview() -> ConstraintDescriptionEditable { + guard let superview = fromItem.view?.superview else { + fatalError("equalToSuperview() requires the view have a superview before being set.") + } + + return self.equalTo(superview) + } @available(iOS 7.0, *) internal func equalTo(other: LayoutSupport) -> ConstraintDescriptionEditable { return self.constrainTo(other, relation: .Equal) @@ -270,6 +280,13 @@ internal class ConstraintDescription: ConstraintDescriptionExtendable, Constrain internal func lessThanOrEqualTo(other: View) -> ConstraintDescriptionEditable { return self.constrainTo(other, relation: .LessThanOrEqualTo) } + internal func lessThanOrEqualToSuperview() -> ConstraintDescriptionEditable { + guard let superview = fromItem.view?.superview else { + fatalError("lessThanOrEqualToSuperview() requires the view have a superview before being set.") + } + + return self.lessThanOrEqualTo(superview) + } @available(iOS 7.0, *) internal func lessThanOrEqualTo(other: LayoutSupport) -> ConstraintDescriptionEditable { return self.constrainTo(other, relation: .LessThanOrEqualTo) @@ -311,6 +328,13 @@ internal class ConstraintDescription: ConstraintDescriptionExtendable, Constrain internal func greaterThanOrEqualTo(other: View) -> ConstraintDescriptionEditable { return self.constrainTo(other, relation: .GreaterThanOrEqualTo) } + internal func greaterThanOrEqualToSuperview() -> ConstraintDescriptionEditable { + guard let superview = fromItem.view?.superview else { + fatalError("greaterThanOrEqualToSuperview() requires the view have a superview before being set.") + } + + return self.greaterThanOrEqualTo(superview) + } @available(iOS 7.0, *) internal func greaterThanOrEqualTo(other: LayoutSupport) -> ConstraintDescriptionEditable { return self.constrainTo(other, relation: .GreaterThanOrEqualTo) diff --git a/Example/Pods/SnapKit/Source/View+SnapKit.swift b/Example/Pods/SnapKit/Source/View+SnapKit.swift index a6ed6e4..51cde58 100644 --- a/Example/Pods/SnapKit/Source/View+SnapKit.swift +++ b/Example/Pods/SnapKit/Source/View+SnapKit.swift @@ -123,9 +123,9 @@ public extension View { /** Prepares constraints with a `ConstraintMaker` and returns the made constraints but does not install them. - :param: closure that will be passed the `ConstraintMaker` to make the constraints with + - parameter closure that will be passed the `ConstraintMaker` to make the constraints with - :returns: the constraints made + - returns: the constraints made */ public func snp_prepareConstraints(file: String = #file, line: UInt = #line, @noescape closure: (make: ConstraintMaker) -> Void) -> [Constraint] { return ConstraintMaker.prepareConstraints(view: self, file: file, line: line, closure: closure) @@ -134,7 +134,7 @@ public extension View { /** Makes constraints with a `ConstraintMaker` and installs them along side any previous made constraints. - :param: closure that will be passed the `ConstraintMaker` to make the constraints with + - parameter closure that will be passed the `ConstraintMaker` to make the constraints with */ public func snp_makeConstraints(file: String = #file, line: UInt = #line, @noescape closure: (make: ConstraintMaker) -> Void) -> Void { ConstraintMaker.makeConstraints(view: self, file: file, line: line, closure: closure) @@ -145,7 +145,7 @@ public extension View { For constraints to match only the constant can be updated. - :param: closure that will be passed the `ConstraintMaker` to update the constraints with + - parameter closure that will be passed the `ConstraintMaker` to update the constraints with */ public func snp_updateConstraints(file: String = #file, line: UInt = #line, @noescape closure: (make: ConstraintMaker) -> Void) -> Void { ConstraintMaker.updateConstraints(view: self, file: file, line: line, closure: closure) @@ -154,7 +154,7 @@ public extension View { /** Remakes constraints with a `ConstraintMaker` that will first remove all previously made constraints and make and install new ones. - :param: closure that will be passed the `ConstraintMaker` to remake the constraints with + - parameter closure that will be passed the `ConstraintMaker` to remake the constraints with */ public func snp_remakeConstraints(file: String = #file, line: UInt = #line, @noescape closure: (make: ConstraintMaker) -> Void) -> Void { ConstraintMaker.remakeConstraints(view: self, file: file, line: line, closure: closure) diff --git a/Example/Pods/Target Support Files/SnapKit/Info.plist b/Example/Pods/Target Support Files/SnapKit/Info.plist index d4ff719..2582325 100644 --- a/Example/Pods/Target Support Files/SnapKit/Info.plist +++ b/Example/Pods/Target Support Files/SnapKit/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.20.0 + 0.21.0 CFBundleSignature ???? CFBundleVersion From ce08bb74d3973d51b212daf01f75ec7776b23b51 Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Mon, 6 Jun 2016 00:36:01 -0500 Subject: [PATCH 09/31] somewhat working TODO: default color should be the default color of the button --- .../LiquidFloatingActionButton/ViewController.swift | 6 ++++++ Pod/Classes/LiquidFloatingActionButton.swift | 13 ++++++++++--- Pod/Classes/LiquittableCircle.swift | 3 ++- Pod/Classes/SimpleCircleLiquidEngine.swift | 2 +- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/Example/LiquidFloatingActionButton/ViewController.swift b/Example/LiquidFloatingActionButton/ViewController.swift index 42e09af..927750a 100644 --- a/Example/LiquidFloatingActionButton/ViewController.swift +++ b/Example/LiquidFloatingActionButton/ViewController.swift @@ -93,8 +93,14 @@ class ViewController: UIViewController, LiquidFloatingActionButtonDataSource, Li let cell = CustomCell(icon: UIImage(named: iconName)!, name: iconName) return cell } + + // Insert cell with color customization! cells.append(cellFactory("ic_cloud")) + cells.last?.color = UIColor.redColor() + cells.append(customCellFactory("ic_system")) + cells.last?.color = UIColor.blueColor() + cells.append(cellFactory("ic_place")) let floatingFrame = CGRect(x: self.view.frame.width - 56 - 16, y: self.view.frame.height - 56 - 16, width: 56, height: 56) diff --git a/Pod/Classes/LiquidFloatingActionButton.swift b/Pod/Classes/LiquidFloatingActionButton.swift index 948af06..aa56db0 100644 --- a/Pod/Classes/LiquidFloatingActionButton.swift +++ b/Pod/Classes/LiquidFloatingActionButton.swift @@ -56,7 +56,7 @@ public class LiquidFloatingActionButton : UIView { @IBInspectable public var color: UIColor = UIColor(red: 82 / 255.0, green: 112 / 255.0, blue: 235 / 255.0, alpha: 1.0) { didSet { - baseView.color = color + // baseView.color = color } } @@ -90,7 +90,7 @@ public class LiquidFloatingActionButton : UIView { } private func insertCell(cell: LiquidFloatingCell) { - cell.color = self.color + // cell.color = self.color cell.radius = self.frame.width * cellRadiusRatio cell.center = self.center.minus(self.frame.origin) cell.actionButton = self @@ -272,7 +272,7 @@ class CircleLiquidBaseView : ActionBarBaseView { let closeDuration: CGFloat = 0.2 let viscosity: CGFloat = 0.65 var animateStyle: LiquidFloatingActionButtonAnimateStyle = .Up - var color: UIColor = UIColor(red: 82 / 255.0, green: 112 / 255.0, blue: 235 / 255.0, alpha: 1.0) { + var color: UIColor = UIColor.brownColor() { // Seems like this color is unused... didSet { engine?.color = color bigEngine?.color = color @@ -297,6 +297,8 @@ class CircleLiquidBaseView : ActionBarBaseView { engine?.viscosity = viscosity self.bigEngine = SimpleCircleLiquidEngine(radiusThresh: radius, angleThresh: 0.55) bigEngine?.viscosity = viscosity + + // Set default engine color -- these lines actually aren't needed! self.engine?.color = actionButton.color self.bigEngine?.color = actionButton.color @@ -371,11 +373,16 @@ class CircleLiquidBaseView : ActionBarBaseView { } if let firstCell = openingCells.first { + // Set color of bigEngine + bigEngine?.color = firstCell.color bigEngine?.push(baseLiquid!, other: firstCell) } + for i in 1.. Date: Mon, 6 Jun 2016 00:42:24 -0500 Subject: [PATCH 10/31] updated example, cell colors default to button colors --- .../LiquidFloatingActionButton/ViewController.swift | 5 +++-- Pod/Classes/LiquidFloatingActionButton.swift | 12 ++++++++---- Pod/Classes/LiquittableCircle.swift | 4 ++-- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Example/LiquidFloatingActionButton/ViewController.swift b/Example/LiquidFloatingActionButton/ViewController.swift index 927750a..4401af8 100644 --- a/Example/LiquidFloatingActionButton/ViewController.swift +++ b/Example/LiquidFloatingActionButton/ViewController.swift @@ -96,12 +96,13 @@ class ViewController: UIViewController, LiquidFloatingActionButtonDataSource, Li // Insert cell with color customization! cells.append(cellFactory("ic_cloud")) - cells.last?.color = UIColor.redColor() + cells.last?.color = UIColor.redColor() // Set cell to red color cells.append(customCellFactory("ic_system")) - cells.last?.color = UIColor.blueColor() + cells.last?.color = UIColor.blueColor() // Set Cell to blue color cells.append(cellFactory("ic_place")) + // Cell becomes the button's color! let floatingFrame = CGRect(x: self.view.frame.width - 56 - 16, y: self.view.frame.height - 56 - 16, width: 56, height: 56) let bottomRightButton = createButton(floatingFrame, .Up) diff --git a/Pod/Classes/LiquidFloatingActionButton.swift b/Pod/Classes/LiquidFloatingActionButton.swift index aa56db0..2421c96 100644 --- a/Pod/Classes/LiquidFloatingActionButton.swift +++ b/Pod/Classes/LiquidFloatingActionButton.swift @@ -90,7 +90,11 @@ public class LiquidFloatingActionButton : UIView { } private func insertCell(cell: LiquidFloatingCell) { - // cell.color = self.color + // Default to the button color + if cell.color == nil { + cell.color = self.color + } + cell.radius = self.frame.width * cellRadiusRatio cell.center = self.center.minus(self.frame.origin) cell.actionButton = self @@ -374,7 +378,7 @@ class CircleLiquidBaseView : ActionBarBaseView { if let firstCell = openingCells.first { // Set color of bigEngine - bigEngine?.color = firstCell.color + bigEngine?.color = firstCell.color! bigEngine?.push(baseLiquid!, other: firstCell) } @@ -382,7 +386,7 @@ class CircleLiquidBaseView : ActionBarBaseView { let prev = openingCells[i - 1] let cell = openingCells[i] // switch color to cell color - engine?.color = cell.color + engine?.color = cell.color! engine?.push(prev, other: cell) } engine?.draw(baseLiquid!) @@ -517,7 +521,7 @@ public class LiquidFloatingCell : LiquittableCircle { public override func touchesBegan(touches: Set, withEvent event: UIEvent?) { if responsible { - originalColor = color + originalColor = color! color = originalColor.white(0.5) setNeedsDisplay() } diff --git a/Pod/Classes/LiquittableCircle.swift b/Pod/Classes/LiquittableCircle.swift index c6005e0..8ae8dca 100644 --- a/Pod/Classes/LiquittableCircle.swift +++ b/Pod/Classes/LiquittableCircle.swift @@ -19,7 +19,7 @@ public class LiquittableCircle : UIView { } } // Set to public for setting indiviudal colors - public var color: UIColor = UIColor.redColor() { + public var color: UIColor? = nil { didSet { setup() } @@ -67,7 +67,7 @@ public class LiquittableCircle : UIView { func draw(path: UIBezierPath) -> CAShapeLayer { circleLayer.lineWidth = 3.0 - circleLayer.fillColor = self.color.CGColor + circleLayer.fillColor = self.color?.CGColor circleLayer.path = path.CGPath return circleLayer } From 64c56f493f5a0e30f858d6dd5c89a090ee5cd2c7 Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Mon, 6 Jun 2016 00:56:11 -0500 Subject: [PATCH 11/31] updated readme to prepare for release --- LiquidFloatingActionButton.podspec | 2 +- README.md | 27 +++++++++++++++++++++++++-- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/LiquidFloatingActionButton.podspec b/LiquidFloatingActionButton.podspec index 00e8241..ea5848c 100644 --- a/LiquidFloatingActionButton.podspec +++ b/LiquidFloatingActionButton.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.name = "LiquidFloatingActionButton" - s.version = "0.1.1" + s.version = "0.1.5" s.summary = "Material Design Floating Action Button in liquid state" # This description is used to generate tags and improve search results. diff --git a/README.md b/README.md index cb1acff..dc90ece 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,29 @@ floatingActionButton.dataSource = self floatingActionButton.delegate = self ``` +This fork also allows the use of setting each icon's color intuitively. + +``` swift +let floatingActionButton = LiquidFloatingActionButton(frame: floatingFrame) +floatingActionButton.dataSource = self +floatingActionButton.delegate = self + +// Button 1 will become a red color! +let button1 = LiquidFloatingCell(icon: UIImage(named: iconNameThatExists)!) +button1.color = UIColor.redColor() + +// Button 2 defaults to the floatingActionButton's color. +let button2 = LiquidFloatingCell(icon: UIImage(named: iconNameThatExists)!) +``` + +This will let you have colored animations: + +![Demo](https://github.com/shotaroikeda/LiquidFloatingActionButton/blob/master/Demo/colored_example.gif?raw=true) + +See the [example]() for more details. + + + ### LiquidFloatingActionButtonDataSource * func numberOfCells(liquidFloatingActionButton: LiquidFloatingActionButton) -> Int * func cellForIndex(index: Int) -> LiquidFloatingCell @@ -45,12 +68,12 @@ LiquidFloatingActionButton is available through [CocoaPods](http://cocoapods.org it, simply add the following line to your Podfile: ```ruby -pod "LiquidFloatingActionButton" +pod "LiquidFloatingActionButton", :git => "shotaroikeda/LiquidFloatingActionButton", :branch => 'swift-2.0' ``` or, if you use [Carthage](https://github.com/Carthage/Carthage), add the following line to your `Carthage` file. ``` -github "yoavlt/LiquidFloatingActionButton" +github "shotaroikeda/LiquidFloatingActionButton" ``` ## License From ebdb486d4582648616f5d7eecb1e8f7f5c58369c Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Mon, 6 Jun 2016 00:56:47 -0500 Subject: [PATCH 12/31] added gif of updated feature --- Demo/colored_example.gif | Bin 0 -> 539985 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Demo/colored_example.gif diff --git a/Demo/colored_example.gif b/Demo/colored_example.gif new file mode 100644 index 0000000000000000000000000000000000000000..f786adc28d5840e5b26a4ef1a263c1475f68ff48 GIT binary patch literal 539985 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

VY5Dx$r&{6<+X{Gfac%=gj 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

l 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 H^0jn-?6N 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

  • gV9y!MBUcd9vOc27G^9k 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 Date: Mon, 6 Jun 2016 00:58:15 -0500 Subject: [PATCH 13/31] updated readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dc90ece..769a2ec 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ This will let you have colored animations: ![Demo](https://github.com/shotaroikeda/LiquidFloatingActionButton/blob/master/Demo/colored_example.gif?raw=true) -See the [example]() for more details. +See the [example](https://github.com/shotaroikeda/LiquidFloatingActionButton/blob/swift-2.0/Example/LiquidFloatingActionButton/ViewController.swift#L97-L105) for more details. From a838c9db62e25d58ae40fd5c0f43154310a59a61 Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Mon, 6 Jun 2016 00:59:36 -0500 Subject: [PATCH 14/31] fixed broken gif link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 769a2ec..b3ed7e1 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ let button2 = LiquidFloatingCell(icon: UIImage(named: iconNameThatExists)!) This will let you have colored animations: -![Demo](https://github.com/shotaroikeda/LiquidFloatingActionButton/blob/master/Demo/colored_example.gif?raw=true) +![Demo](https://github.com/shotaroikeda/LiquidFloatingActionButton/blob/swift-2.0/Demo/colored_example.gif?raw=true) See the [example](https://github.com/shotaroikeda/LiquidFloatingActionButton/blob/swift-2.0/Example/LiquidFloatingActionButton/ViewController.swift#L97-L105) for more details. From bec308d5dfbd586b91899b1c3966a11f2be65ea8 Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Mon, 6 Jun 2016 01:21:09 -0500 Subject: [PATCH 15/31] updated readme for correct pod file instructions --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b3ed7e1..460f7dc 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,9 @@ This is also [spinner loader](https://github.com/yoavlt/LiquidLoader) components You can play a demo with [appetize.io](https://appetize.io/app/f4t42hgqbnbma4m12jcg3aeebg?device=iphone5s&scale=75&orientation=portrait) +## Requirements +- Swift 2.0 is required. The swift-old branch has swift 1.0 compatibility but does not include the icon customization feature + ## Usage You just need implement `LiquidFloatingActionButtonDataSource` and `LiquidFloatingActionButtonDelegate` similar to well-known UIKit design. @@ -68,10 +71,9 @@ LiquidFloatingActionButton is available through [CocoaPods](http://cocoapods.org it, simply add the following line to your Podfile: ```ruby -pod "LiquidFloatingActionButton", :git => "shotaroikeda/LiquidFloatingActionButton", :branch => 'swift-2.0' +pod "LiquidFloatingActionButton", :git => "https://github.com/shotaroikeda/LiquidFloatingActionButton" ``` or, if you use [Carthage](https://github.com/Carthage/Carthage), add the following line to your `Carthage` file. - ``` github "shotaroikeda/LiquidFloatingActionButton" ``` From 3b8bf2d0cbc230096a7b5b54fd7e61926a70f58f Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Mon, 6 Jun 2016 01:25:34 -0500 Subject: [PATCH 16/31] updated travis for cocoapods v 1.0.1 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 9215334..7f0df8a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ osx_image: xcode7 language: objective-c install: - - gem install cocoapods -v 0.38.2 --no-document + - gem install cocoapods -v 1.0.1 --no-document before_script: - cd Example From 05a77b729a8bab766301ca628310c357dce1a722 Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Mon, 6 Jun 2016 01:28:51 -0500 Subject: [PATCH 17/31] updated for swift 2.2 syntax --- Pod/Classes/LiquidFloatingActionButton.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Pod/Classes/LiquidFloatingActionButton.swift b/Pod/Classes/LiquidFloatingActionButton.swift index 2421c96..ea9f8bb 100644 --- a/Pod/Classes/LiquidFloatingActionButton.swift +++ b/Pod/Classes/LiquidFloatingActionButton.swift @@ -317,7 +317,7 @@ class CircleLiquidBaseView : ActionBarBaseView { func open(cells: [LiquidFloatingCell]) { stop() - displayLink = CADisplayLink(target: self, selector: #selector(CircleLiquidBaseView.didDisplayRefresh(_:))) + displayLink = CADisplayLink(target: self, selector: #selector(CircleLiquidBaseView.didDisplayRefresh)) displayLink?.addToRunLoop(NSRunLoop.currentRunLoop(), forMode: NSRunLoopCommonModes) opening = true for cell in cells { @@ -330,7 +330,7 @@ class CircleLiquidBaseView : ActionBarBaseView { func close(cells: [LiquidFloatingCell]) { stop() opening = false - displayLink = CADisplayLink(target: self, selector: #selector(CircleLiquidBaseView.didDisplayRefresh(_:))) + displayLink = CADisplayLink(target: self, selector: #selector(CircleLiquidBaseView.didDisplayRefresh)) displayLink?.addToRunLoop(NSRunLoop.currentRunLoop(), forMode: NSRunLoopCommonModes) for cell in cells { cell.layer.removeAllAnimations() From 1bce45802e1b27e450335c3b80c1cae2cd844d81 Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Mon, 6 Jun 2016 01:30:34 -0500 Subject: [PATCH 18/31] added updating repo for travis --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 7f0df8a..9b7dd36 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,7 @@ install: before_script: - cd Example + - pod repo update - pod install xcode_workspace: LiquidFloatingActionButton.xcworkspace From 52dbdc2bc697a3a1d7a0974d311324f53e7e6934 Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Mon, 6 Jun 2016 02:23:21 -0500 Subject: [PATCH 19/31] made sure shadows actually don't get drawn --- Pod/Classes/LiquidFloatingActionButton.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Pod/Classes/LiquidFloatingActionButton.swift b/Pod/Classes/LiquidFloatingActionButton.swift index ea9f8bb..2ce23f5 100644 --- a/Pod/Classes/LiquidFloatingActionButton.swift +++ b/Pod/Classes/LiquidFloatingActionButton.swift @@ -39,6 +39,7 @@ public class LiquidFloatingActionButton : UIView { } public var enableShadow = true { didSet { + baseView.enableShadow = self.enableShadow setNeedsDisplay() } } From 7d34bcad1f674d3bfe7d8861f106f20457cb2171 Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Mon, 6 Jun 2016 02:29:17 -0500 Subject: [PATCH 20/31] added shadow bug fix (or feature?) --- LiquidFloatingActionButton.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LiquidFloatingActionButton.podspec b/LiquidFloatingActionButton.podspec index ea5848c..c90c9cf 100644 --- a/LiquidFloatingActionButton.podspec +++ b/LiquidFloatingActionButton.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.name = "LiquidFloatingActionButton" - s.version = "0.1.5" + s.version = "0.1.6" s.summary = "Material Design Floating Action Button in liquid state" # This description is used to generate tags and improve search results. From fcd3549a0a9314d2a6255faae7557778fa7db3b3 Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Mon, 6 Jun 2016 19:06:25 -0500 Subject: [PATCH 21/31] removed unnecessary colors --- Pod/Classes/LiquidFloatingActionButton.swift | 22 ++++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/Pod/Classes/LiquidFloatingActionButton.swift b/Pod/Classes/LiquidFloatingActionButton.swift index 2421c96..3c82019 100644 --- a/Pod/Classes/LiquidFloatingActionButton.swift +++ b/Pod/Classes/LiquidFloatingActionButton.swift @@ -54,11 +54,13 @@ public class LiquidFloatingActionButton : UIView { } public private(set) var isClosed: Bool = true - @IBInspectable public var color: UIColor = UIColor(red: 82 / 255.0, green: 112 / 255.0, blue: 235 / 255.0, alpha: 1.0) { + @IBInspectable public var color: UIColor = UIColor(red: 82 / 255.0, green: 112 / 255.0, blue: 235 / 255.0, alpha: 1.0) + /* { didSet { // baseView.color = color } } + */ @IBInspectable public var image: UIImage? { didSet { @@ -276,12 +278,14 @@ class CircleLiquidBaseView : ActionBarBaseView { let closeDuration: CGFloat = 0.2 let viscosity: CGFloat = 0.65 var animateStyle: LiquidFloatingActionButtonAnimateStyle = .Up + /* var color: UIColor = UIColor.brownColor() { // Seems like this color is unused... didSet { engine?.color = color bigEngine?.color = color } } + */ var baseLiquid: LiquittableCircle? var engine: SimpleCircleLiquidEngine? @@ -465,7 +469,7 @@ public class LiquidFloatingCell : LiquittableCircle { weak var actionButton: LiquidFloatingActionButton? // for implement responsible color - private var originalColor: UIColor + // private var originalColor: UIColor public override var frame: CGRect { didSet { @@ -474,19 +478,19 @@ public class LiquidFloatingCell : LiquittableCircle { } init(center: CGPoint, radius: CGFloat, color: UIColor, icon: UIImage) { - self.originalColor = color + // self.originalColor = color super.init(center: center, radius: radius, color: color) setup(icon) } init(center: CGPoint, radius: CGFloat, color: UIColor, view: UIView) { - self.originalColor = color + // self.originalColor = color super.init(center: center, radius: radius, color: color) setupView(view) } public init(icon: UIImage) { - self.originalColor = UIColor.clearColor() + // self.originalColor = UIColor.clearColor() super.init() setup(icon) } @@ -521,21 +525,21 @@ public class LiquidFloatingCell : LiquittableCircle { public override func touchesBegan(touches: Set, withEvent event: UIEvent?) { if responsible { - originalColor = color! - color = originalColor.white(0.5) + // originalColor = color! + // color = originalColor.white(0.5) setNeedsDisplay() } } public override func touchesCancelled(touches: Set?, withEvent event: UIEvent?) { if responsible { - color = originalColor + // color = originalColor setNeedsDisplay() } } override public func touchesEnded(touches: Set, withEvent event: UIEvent?) { - color = originalColor + // color = originalColor actionButton?.didTappedCell(self) } From 2631f93c5b6cb6c4668dda68d440e3c3b2fb2445 Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Mon, 6 Jun 2016 19:35:47 -0500 Subject: [PATCH 22/31] better handling of default colors --- Pod/Classes/LiquidFloatingActionButton.swift | 36 ++++++-------------- Pod/Classes/LiquittableCircle.swift | 5 ++- 2 files changed, 15 insertions(+), 26 deletions(-) diff --git a/Pod/Classes/LiquidFloatingActionButton.swift b/Pod/Classes/LiquidFloatingActionButton.swift index 52e5633..3820f5a 100644 --- a/Pod/Classes/LiquidFloatingActionButton.swift +++ b/Pod/Classes/LiquidFloatingActionButton.swift @@ -56,12 +56,6 @@ public class LiquidFloatingActionButton : UIView { public private(set) var isClosed: Bool = true @IBInspectable public var color: UIColor = UIColor(red: 82 / 255.0, green: 112 / 255.0, blue: 235 / 255.0, alpha: 1.0) - /* { - didSet { - // baseView.color = color - } - } - */ @IBInspectable public var image: UIImage? { didSet { @@ -93,10 +87,14 @@ public class LiquidFloatingActionButton : UIView { } private func insertCell(cell: LiquidFloatingCell) { - // Default to the button color - if cell.color == nil { - cell.color = self.color - } + /* + // Default to the button color + if cell.color == nil { + cell.color = self.color + } + */ + // Make sure the default is my color + cell.defaultColor = self.color cell.radius = self.frame.width * cellRadiusRatio cell.center = self.center.minus(self.frame.origin) @@ -279,15 +277,7 @@ class CircleLiquidBaseView : ActionBarBaseView { let closeDuration: CGFloat = 0.2 let viscosity: CGFloat = 0.65 var animateStyle: LiquidFloatingActionButtonAnimateStyle = .Up - /* - var color: UIColor = UIColor.brownColor() { // Seems like this color is unused... - didSet { - engine?.color = color - bigEngine?.color = color - } - } - */ - + var baseLiquid: LiquittableCircle? var engine: SimpleCircleLiquidEngine? var bigEngine: SimpleCircleLiquidEngine? @@ -307,10 +297,6 @@ class CircleLiquidBaseView : ActionBarBaseView { self.bigEngine = SimpleCircleLiquidEngine(radiusThresh: radius, angleThresh: 0.55) bigEngine?.viscosity = viscosity - // Set default engine color -- these lines actually aren't needed! - self.engine?.color = actionButton.color - self.bigEngine?.color = actionButton.color - baseLiquid = LiquittableCircle(center: self.center.minus(self.frame.origin), radius: radius, color: actionButton.color) baseLiquid?.clipsToBounds = false baseLiquid?.layer.masksToBounds = false @@ -383,7 +369,7 @@ class CircleLiquidBaseView : ActionBarBaseView { if let firstCell = openingCells.first { // Set color of bigEngine - bigEngine?.color = firstCell.color! + bigEngine?.color = firstCell.color ?? firstCell.defaultColor bigEngine?.push(baseLiquid!, other: firstCell) } @@ -391,7 +377,7 @@ class CircleLiquidBaseView : ActionBarBaseView { let prev = openingCells[i - 1] let cell = openingCells[i] // switch color to cell color - engine?.color = cell.color! + engine?.color = cell.color ?? cell.defaultColor engine?.push(prev, other: cell) } engine?.draw(baseLiquid!) diff --git a/Pod/Classes/LiquittableCircle.swift b/Pod/Classes/LiquittableCircle.swift index 8ae8dca..faf6d72 100644 --- a/Pod/Classes/LiquittableCircle.swift +++ b/Pod/Classes/LiquittableCircle.swift @@ -25,6 +25,9 @@ public class LiquittableCircle : UIView { } } + // Store the default color + public var defaultColor: UIColor = UIColor.blueColor() + override public var center: CGPoint { didSet { self.frame = CGRect(x: center.x - radius, y: center.y - radius, width: 2 * radius, height: 2 * radius) @@ -67,7 +70,7 @@ public class LiquittableCircle : UIView { func draw(path: UIBezierPath) -> CAShapeLayer { circleLayer.lineWidth = 3.0 - circleLayer.fillColor = self.color?.CGColor + circleLayer.fillColor = self.color?.CGColor ?? self.defaultColor.CGColor circleLayer.path = path.CGPath return circleLayer } From 1903dbc55c42ac027cc12225bb9d3c5d66e899e1 Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Mon, 6 Jun 2016 19:54:14 -0500 Subject: [PATCH 23/31] performance improvements by relying on garbage collector --- Pod/Classes/SimpleCircleLiquidEngine.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Pod/Classes/SimpleCircleLiquidEngine.swift b/Pod/Classes/SimpleCircleLiquidEngine.swift index e9d4baf..94e80cc 100644 --- a/Pod/Classes/SimpleCircleLiquidEngine.swift +++ b/Pod/Classes/SimpleCircleLiquidEngine.swift @@ -44,7 +44,7 @@ class SimpleCircleLiquidEngine { func clear() { layer.removeFromSuperlayer() - layer.sublayers?.each{ $0.removeFromSuperlayer() } + // layer.sublayers?.each{ $0.removeFromSuperlayer() } // let garbage collection handle this layer = CAShapeLayer() } From 3791ad35ae67ea926c768b352fb6e88493c4baec Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Mon, 6 Jun 2016 20:04:54 -0500 Subject: [PATCH 24/31] updated travis to work with newer selector syntax, silent pod update --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9b7dd36..c5785a4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,11 +1,11 @@ -osx_image: xcode7 +osx_image: xcode7.3 language: objective-c install: - gem install cocoapods -v 1.0.1 --no-document before_script: - cd Example - - pod repo update + - pod repo update -- silent - pod install xcode_workspace: LiquidFloatingActionButton.xcworkspace From d1f5a58af3a0232f6748eac17ef840c032dfa37e Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Mon, 6 Jun 2016 20:05:22 -0500 Subject: [PATCH 25/31] bumped version for small performance increase --- LiquidFloatingActionButton.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LiquidFloatingActionButton.podspec b/LiquidFloatingActionButton.podspec index c90c9cf..bcae4ac 100644 --- a/LiquidFloatingActionButton.podspec +++ b/LiquidFloatingActionButton.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.name = "LiquidFloatingActionButton" - s.version = "0.1.6" + s.version = "0.1.7" s.summary = "Material Design Floating Action Button in liquid state" # This description is used to generate tags and improve search results. From 9342185150c9882e5e483fe7de6a9d63d06888da Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Mon, 6 Jun 2016 20:08:36 -0500 Subject: [PATCH 26/31] fixed typo --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index c5785a4..87e0c76 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,7 @@ install: before_script: - cd Example - - pod repo update -- silent + - pod repo update --silent - pod install xcode_workspace: LiquidFloatingActionButton.xcworkspace From 5b75829f83f908b42987b19659169979914a9c4d Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Mon, 6 Jun 2016 20:12:54 -0500 Subject: [PATCH 27/31] updated ios sdk for travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 87e0c76..ae6424b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,4 +10,4 @@ before_script: xcode_workspace: LiquidFloatingActionButton.xcworkspace xcode_scheme: LiquidFloatingActionButton-Example -xcode_sdk: iphonesimulator9.0 +xcode_sdk: iphonesimulator9.3 From c1741db6ec16d46a7e6f7a994f79865e5f18f887 Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Tue, 7 Jun 2016 01:02:06 -0500 Subject: [PATCH 28/31] reverted travis image to see if build will go through --- .travis.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index ae6424b..9215334 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,13 +1,12 @@ -osx_image: xcode7.3 +osx_image: xcode7 language: objective-c install: - - gem install cocoapods -v 1.0.1 --no-document + - gem install cocoapods -v 0.38.2 --no-document before_script: - cd Example - - pod repo update --silent - pod install xcode_workspace: LiquidFloatingActionButton.xcworkspace xcode_scheme: LiquidFloatingActionButton-Example -xcode_sdk: iphonesimulator9.3 +xcode_sdk: iphonesimulator9.0 From bcaa439ff05be74e719ce033c9b58543dd8a8e73 Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Tue, 20 Sep 2016 20:16:14 -0500 Subject: [PATCH 29/31] upgrade to swift 3 --- .../project.pbxproj | 17 +- ...iquidFloatingActionButton-Example.xcscheme | 2 +- .../AppDelegate.swift | 12 +- .../Base.lproj/Main.storyboard | 5 +- .../ViewController.swift | 34 +- Example/Pods/Pods.xcodeproj/project.pbxproj | 22 + Example/Pods/SnapKit/Source/Constraint.swift | 160 ++++---- .../SnapKit/Source/ConstraintAttributes.swift | 56 +-- .../Source/ConstraintDescription.swift | 380 +++++++++--------- .../Pods/SnapKit/Source/ConstraintItem.swift | 4 +- .../Pods/SnapKit/Source/ConstraintMaker.swift | 72 ++-- .../SnapKit/Source/ConstraintRelation.swift | 14 +- Example/Pods/SnapKit/Source/Debugging.swift | 72 ++-- Example/Pods/SnapKit/Source/EdgeInsets.swift | 2 +- .../SnapKit/Source/LayoutConstraint.swift | 2 +- Example/Pods/SnapKit/Source/SnapKit.swift | 4 +- .../Pods/SnapKit/Source/View+SnapKit.swift | 8 +- Example/Tests/Tests.swift | 2 +- LiquidFloatingActionButton.podspec | 2 +- Pod/Classes/ArrayEx.swift | 2 +- Pod/Classes/CGPointEx.swift | 24 +- Pod/Classes/LiquidFloatingActionButton.swift | 186 ++++----- Pod/Classes/LiquidUtil.swift | 18 +- Pod/Classes/LiquittableCircle.swift | 30 +- Pod/Classes/SimpleCircleLiquidEngine.swift | 47 +-- Pod/Classes/UIColorEx.swift | 36 +- 26 files changed, 626 insertions(+), 587 deletions(-) diff --git a/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj b/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj index 3bab5e9..2caf29b 100644 --- a/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj +++ b/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj @@ -211,14 +211,16 @@ attributes = { LastSwiftMigration = 0700; LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0700; + LastUpgradeCheck = 0800; ORGANIZATIONNAME = CocoaPods; TargetAttributes = { 607FACCF1AFB9204008FA782 = { CreatedOnToolsVersion = 6.3.1; + LastSwiftMigration = 0800; }; 607FACE41AFB9204008FA782 = { CreatedOnToolsVersion = 6.3.1; + LastSwiftMigration = 0800; TestTargetID = 607FACCF1AFB9204008FA782; }; }; @@ -416,8 +418,10 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -461,8 +465,10 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -481,6 +487,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 8.3; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; VALIDATE_PRODUCT = YES; }; name = Release; @@ -489,6 +496,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = 7544384970EC4D04EEF18E55 /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = LiquidFloatingActionButton/Info.plist; @@ -496,6 +504,7 @@ MODULE_NAME = ExampleApp; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; }; name = Debug; }; @@ -503,6 +512,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = 0F7E7FC5246A093F646144E2 /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; INFOPLIST_FILE = LiquidFloatingActionButton/Info.plist; @@ -510,6 +520,7 @@ MODULE_NAME = ExampleApp; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; }; name = Release; }; @@ -517,6 +528,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = 4E8D9BBA96797E6E98FBF3E4 /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", @@ -526,6 +538,7 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LiquidFloatingActionButton_Example.app/LiquidFloatingActionButton_Example"; }; name = Debug; @@ -534,11 +547,13 @@ isa = XCBuildConfiguration; baseConfigurationReference = 8646031E07CFB5973A85169A /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; INFOPLIST_FILE = Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 3.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LiquidFloatingActionButton_Example.app/LiquidFloatingActionButton_Example"; }; name = Release; diff --git a/Example/LiquidFloatingActionButton.xcodeproj/xcshareddata/xcschemes/LiquidFloatingActionButton-Example.xcscheme b/Example/LiquidFloatingActionButton.xcodeproj/xcshareddata/xcschemes/LiquidFloatingActionButton-Example.xcscheme index c3f6f4f..1a71999 100644 --- a/Example/LiquidFloatingActionButton.xcodeproj/xcshareddata/xcschemes/LiquidFloatingActionButton-Example.xcscheme +++ b/Example/LiquidFloatingActionButton.xcodeproj/xcshareddata/xcschemes/LiquidFloatingActionButton-Example.xcscheme @@ -1,6 +1,6 @@ Bool { + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. return true } - func applicationWillResignActive(application: UIApplication) { + func applicationWillResignActive(_ application: UIApplication) { // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. } - func applicationDidEnterBackground(application: UIApplication) { + func applicationDidEnterBackground(_ application: UIApplication) { // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. } - func applicationWillEnterForeground(application: UIApplication) { + func applicationWillEnterForeground(_ application: UIApplication) { // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. } - func applicationDidBecomeActive(application: UIApplication) { + func applicationDidBecomeActive(_ application: UIApplication) { // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. } - func applicationWillTerminate(application: UIApplication) { + func applicationWillTerminate(_ application: UIApplication) { // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. } diff --git a/Example/LiquidFloatingActionButton/Base.lproj/Main.storyboard b/Example/LiquidFloatingActionButton/Base.lproj/Main.storyboard index e061a38..c443e36 100644 --- a/Example/LiquidFloatingActionButton/Base.lproj/Main.storyboard +++ b/Example/LiquidFloatingActionButton/Base.lproj/Main.storyboard @@ -1,7 +1,8 @@ - + - + + diff --git a/Example/LiquidFloatingActionButton/ViewController.swift b/Example/LiquidFloatingActionButton/ViewController.swift index 4401af8..24e7b74 100644 --- a/Example/LiquidFloatingActionButton/ViewController.swift +++ b/Example/LiquidFloatingActionButton/ViewController.swift @@ -10,7 +10,7 @@ import UIKit import SnapKit import LiquidFloatingActionButton -public class CustomCell : LiquidFloatingCell { +open class CustomCell : LiquidFloatingCell { var name: String = "sample" init(icon: UIImage, name: String) { @@ -22,11 +22,11 @@ public class CustomCell : LiquidFloatingCell { fatalError("init(coder:) has not been implemented") } - public override func setupView(view: UIView) { + open override func setupView(_ view: UIView) { super.setupView(view) let label = UILabel() label.text = name - label.textColor = UIColor.whiteColor() + label.textColor = UIColor.white label.font = UIFont(name: "Helvetica-Neue", size: 12) addSubview(label) label.snp_makeConstraints { make in @@ -37,13 +37,13 @@ public class CustomCell : LiquidFloatingCell { } } -public class CustomDrawingActionButton: LiquidFloatingActionButton { +open class CustomDrawingActionButton: LiquidFloatingActionButton { - override public func createPlusLayer(frame: CGRect) -> CAShapeLayer { + override open func createPlusLayer(_ frame: CGRect) -> CAShapeLayer { let plusLayer = CAShapeLayer() plusLayer.lineCap = kCALineCapRound - plusLayer.strokeColor = UIColor.whiteColor().CGColor + plusLayer.strokeColor = UIColor.white.cgColor plusLayer.lineWidth = 3.0 let w = frame.width @@ -57,11 +57,11 @@ public class CustomDrawingActionButton: LiquidFloatingActionButton { let path = UIBezierPath() for (start, end) in points { - path.moveToPoint(start) - path.addLineToPoint(end) + path.move(to: start) + path.addLine(to: end) } - plusLayer.path = path.CGPath + plusLayer.path = path.cgPath return plusLayer } @@ -96,22 +96,22 @@ class ViewController: UIViewController, LiquidFloatingActionButtonDataSource, Li // Insert cell with color customization! cells.append(cellFactory("ic_cloud")) - cells.last?.color = UIColor.redColor() // Set cell to red color + cells.last?.color = UIColor.red // Set cell to red color cells.append(customCellFactory("ic_system")) - cells.last?.color = UIColor.blueColor() // Set Cell to blue color + cells.last?.color = UIColor.blue // Set Cell to blue color cells.append(cellFactory("ic_place")) // Cell becomes the button's color! let floatingFrame = CGRect(x: self.view.frame.width - 56 - 16, y: self.view.frame.height - 56 - 16, width: 56, height: 56) - let bottomRightButton = createButton(floatingFrame, .Up) + let bottomRightButton = createButton(floatingFrame, .up) let image = UIImage(named: "ic_art") bottomRightButton.image = image let floatingFrame2 = CGRect(x: 16, y: 16, width: 56, height: 56) - let topLeftButton = createButton(floatingFrame2, .Down) + let topLeftButton = createButton(floatingFrame2, .down) self.view.addSubview(bottomRightButton) self.view.addSubview(topLeftButton) @@ -122,17 +122,17 @@ class ViewController: UIViewController, LiquidFloatingActionButtonDataSource, Li // Dispose of any resources that can be recreated. } - func numberOfCells(liquidFloatingActionButton: LiquidFloatingActionButton) -> Int { + func numberOfCells(_ liquidFloatingActionButton: LiquidFloatingActionButton) -> Int { return cells.count } - func cellForIndex(index: Int) -> LiquidFloatingCell { + func cellForIndex(_ index: Int) -> LiquidFloatingCell { return cells[index] } - func liquidFloatingActionButton(liquidFloatingActionButton: LiquidFloatingActionButton, didSelectItemAtIndex index: Int) { + func liquidFloatingActionButton(_ liquidFloatingActionButton: LiquidFloatingActionButton, didSelectItemAtIndex index: Int) { print("did Tapped! \(index)") liquidFloatingActionButton.close() } -} \ No newline at end of file +} diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index 4060346..2da25e4 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -460,6 +460,20 @@ attributes = { LastSwiftUpdateCheck = 0730; LastUpgradeCheck = 0700; + TargetAttributes = { + 0ED0A08396CBAD914DE4379BCF7E585E = { + LastSwiftMigration = 0800; + }; + 387CBFD0CECEC9E8DA816C353D8AA44B = { + LastSwiftMigration = 0800; + }; + 4BCE15B65BE1423E31A139A48360119E = { + LastSwiftMigration = 0800; + }; + F7C1C7995CD2F101DD63DDC91BAABAA9 = { + LastSwiftMigration = 0800; + }; + }; }; buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; @@ -586,6 +600,7 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -657,6 +672,7 @@ PRODUCT_NAME = Pods_LiquidFloatingActionButton_Example; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -687,6 +703,7 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -721,6 +738,7 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -754,6 +772,7 @@ PRODUCT_NAME = Pods_LiquidFloatingActionButton_Tests; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -826,6 +845,7 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -855,6 +875,7 @@ PRODUCT_NAME = SnapKit; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -884,6 +905,7 @@ PRODUCT_NAME = LiquidFloatingActionButton; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; diff --git a/Example/Pods/SnapKit/Source/Constraint.swift b/Example/Pods/SnapKit/Source/Constraint.swift index 4f291e6..0c7de46 100644 --- a/Example/Pods/SnapKit/Source/Constraint.swift +++ b/Example/Pods/SnapKit/Source/Constraint.swift @@ -30,33 +30,33 @@ import AppKit /** Used to expose API's for a Constraint */ -public class Constraint { +open class Constraint { - public func install() -> [LayoutConstraint] { fatalError("Must be implemented by Concrete subclass.") } - public func uninstall() -> Void { fatalError("Must be implemented by Concrete subclass.") } - public func activate() -> Void { fatalError("Must be implemented by Concrete subclass.") } - public func deactivate() -> Void { fatalError("Must be implemented by Concrete subclass.") } + open func install() -> [LayoutConstraint] { fatalError("Must be implemented by Concrete subclass.") } + open func uninstall() -> Void { fatalError("Must be implemented by Concrete subclass.") } + open func activate() -> Void { fatalError("Must be implemented by Concrete subclass.") } + open func deactivate() -> Void { fatalError("Must be implemented by Concrete subclass.") } - public func updateOffset(amount: Float) -> Void { fatalError("Must be implemented by Concrete subclass.") } - public func updateOffset(amount: Double) -> Void { fatalError("Must be implemented by Concrete subclass.") } - public func updateOffset(amount: CGFloat) -> Void { fatalError("Must be implemented by Concrete subclass.") } - public func updateOffset(amount: Int) -> Void { fatalError("Must be implemented by Concrete subclass.") } - public func updateOffset(amount: UInt) -> Void { fatalError("Must be implemented by Concrete subclass.") } - public func updateOffset(amount: CGPoint) -> Void { fatalError("Must be implemented by Concrete subclass.") } - public func updateOffset(amount: CGSize) -> Void { fatalError("Must be implemented by Concrete subclass.") } - public func updateOffset(amount: EdgeInsets) -> Void { fatalError("Must be implemented by Concrete subclass.") } + open func updateOffset(_ amount: Float) -> Void { fatalError("Must be implemented by Concrete subclass.") } + open func updateOffset(_ amount: Double) -> Void { fatalError("Must be implemented by Concrete subclass.") } + open func updateOffset(_ amount: CGFloat) -> Void { fatalError("Must be implemented by Concrete subclass.") } + open func updateOffset(_ amount: Int) -> Void { fatalError("Must be implemented by Concrete subclass.") } + open func updateOffset(_ amount: UInt) -> Void { fatalError("Must be implemented by Concrete subclass.") } + open func updateOffset(_ amount: CGPoint) -> Void { fatalError("Must be implemented by Concrete subclass.") } + open func updateOffset(_ amount: CGSize) -> Void { fatalError("Must be implemented by Concrete subclass.") } + open func updateOffset(_ amount: EdgeInsets) -> Void { fatalError("Must be implemented by Concrete subclass.") } - public func updateInsets(amount: EdgeInsets) -> Void { fatalError("Must be implemented by Concrete subclass.") } + open func updateInsets(_ amount: EdgeInsets) -> Void { fatalError("Must be implemented by Concrete subclass.") } - public func updatePriority(priority: Float) -> Void { fatalError("Must be implemented by Concrete subclass.") } - public func updatePriority(priority: Double) -> Void { fatalError("Must be implemented by Concrete subclass.") } - public func updatePriority(priority: CGFloat) -> Void { fatalError("Must be implemented by Concrete subclass.") } - public func updatePriority(priority: UInt) -> Void { fatalError("Must be implemented by Concrete subclass.") } - public func updatePriority(priority: Int) -> Void { fatalError("Must be implemented by Concrete subclass.") } - public func updatePriorityRequired() -> Void { fatalError("Must be implemented by Concrete subclass.") } - public func updatePriorityHigh() -> Void { fatalError("Must be implemented by Concrete subclass.") } - public func updatePriorityMedium() -> Void { fatalError("Must be implemented by Concrete subclass.") } - public func updatePriorityLow() -> Void { fatalError("Must be implemented by Concrete subclass.") } + open func updatePriority(_ priority: Float) -> Void { fatalError("Must be implemented by Concrete subclass.") } + open func updatePriority(_ priority: Double) -> Void { fatalError("Must be implemented by Concrete subclass.") } + open func updatePriority(_ priority: CGFloat) -> Void { fatalError("Must be implemented by Concrete subclass.") } + open func updatePriority(_ priority: UInt) -> Void { fatalError("Must be implemented by Concrete subclass.") } + open func updatePriority(_ priority: Int) -> Void { fatalError("Must be implemented by Concrete subclass.") } + open func updatePriorityRequired() -> Void { fatalError("Must be implemented by Concrete subclass.") } + open func updatePriorityHigh() -> Void { fatalError("Must be implemented by Concrete subclass.") } + open func updatePriorityMedium() -> Void { fatalError("Must be implemented by Concrete subclass.") } + open func updatePriorityLow() -> Void { fatalError("Must be implemented by Concrete subclass.") } internal var makerFile: String = "Unknown" internal var makerLine: UInt = 0 @@ -68,48 +68,48 @@ public class Constraint { */ internal class ConcreteConstraint: Constraint { - internal override func updateOffset(amount: Float) -> Void { + internal override func updateOffset(_ amount: Float) -> Void { self.constant = amount } - internal override func updateOffset(amount: Double) -> Void { + internal override func updateOffset(_ amount: Double) -> Void { self.updateOffset(Float(amount)) } - internal override func updateOffset(amount: CGFloat) -> Void { + internal override func updateOffset(_ amount: CGFloat) -> Void { self.updateOffset(Float(amount)) } - internal override func updateOffset(amount: Int) -> Void { + internal override func updateOffset(_ amount: Int) -> Void { self.updateOffset(Float(amount)) } - internal override func updateOffset(amount: UInt) -> Void { + internal override func updateOffset(_ amount: UInt) -> Void { self.updateOffset(Float(amount)) } - internal override func updateOffset(amount: CGPoint) -> Void { + internal override func updateOffset(_ amount: CGPoint) -> Void { self.constant = amount } - internal override func updateOffset(amount: CGSize) -> Void { + internal override func updateOffset(_ amount: CGSize) -> Void { self.constant = amount } - internal override func updateOffset(amount: EdgeInsets) -> Void { + internal override func updateOffset(_ amount: EdgeInsets) -> Void { self.constant = amount } - internal override func updateInsets(amount: EdgeInsets) -> Void { + internal override func updateInsets(_ amount: EdgeInsets) -> Void { self.constant = EdgeInsets(top: amount.top, left: amount.left, bottom: -amount.bottom, right: -amount.right) } - internal override func updatePriority(priority: Float) -> Void { + internal override func updatePriority(_ priority: Float) -> Void { self.priority = priority } - internal override func updatePriority(priority: Double) -> Void { + internal override func updatePriority(_ priority: Double) -> Void { self.updatePriority(Float(priority)) } - internal override func updatePriority(priority: CGFloat) -> Void { + internal override func updatePriority(_ priority: CGFloat) -> Void { self.updatePriority(Float(priority)) } - internal override func updatePriority(priority: UInt) -> Void { + internal override func updatePriority(_ priority: UInt) -> Void { self.updatePriority(Float(priority)) } - internal override func updatePriority(priority: Int) -> Void { + internal override func updatePriority(_ priority: Int) -> Void { self.updatePriority(Float(priority)) } internal override func updatePriorityRequired() -> Void { @@ -150,7 +150,7 @@ internal class ConcreteConstraint: Constraint { #endif let layoutConstraints = self.installInfo!.layoutConstraints.allObjects as! [LayoutConstraint] if layoutConstraints.count > 0 { - NSLayoutConstraint.activateConstraints(layoutConstraints) + NSLayoutConstraint.activate(layoutConstraints) } } @@ -165,25 +165,25 @@ internal class ConcreteConstraint: Constraint { #endif let layoutConstraints = self.installInfo!.layoutConstraints.allObjects as! [LayoutConstraint] if layoutConstraints.count > 0 { - NSLayoutConstraint.deactivateConstraints(layoutConstraints) + NSLayoutConstraint.deactivate(layoutConstraints) } } - private let fromItem: ConstraintItem - private let toItem: ConstraintItem - private let relation: ConstraintRelation - private let multiplier: Float - private var constant: Any { + fileprivate let fromItem: ConstraintItem + fileprivate let toItem: ConstraintItem + fileprivate let relation: ConstraintRelation + fileprivate let multiplier: Float + fileprivate var constant: Any { didSet { if let installInfo = self.installInfo { for layoutConstraint in installInfo.layoutConstraints.allObjects as! [LayoutConstraint] { - let attribute = (layoutConstraint.secondAttribute == .NotAnAttribute) ? layoutConstraint.firstAttribute : layoutConstraint.secondAttribute + let attribute = (layoutConstraint.secondAttribute == .notAnAttribute) ? layoutConstraint.firstAttribute : layoutConstraint.secondAttribute layoutConstraint.constant = attribute.snp_constantForValue(self.constant) } } } } - private var priority: Float { + fileprivate var priority: Float { didSet { if let installInfo = self.installInfo { for layoutConstraint in installInfo.layoutConstraints.allObjects as! [LayoutConstraint] { @@ -193,9 +193,9 @@ internal class ConcreteConstraint: Constraint { } } - private let label: String? + fileprivate let label: String? - private var installInfo: ConcreteConstraintInstallInfo? = nil + fileprivate var installInfo: ConcreteConstraintInstallInfo? = nil internal init(fromItem: ConstraintItem, toItem: ConstraintItem, relation: ConstraintRelation, constant: Any, multiplier: Float, priority: Float, label: String? = nil) { self.fromItem = fromItem @@ -207,22 +207,22 @@ internal class ConcreteConstraint: Constraint { self.label = label } - internal func installOnView(updateExisting updateExisting: Bool = false, file: String? = nil, line: UInt? = nil) -> [LayoutConstraint] { + internal func installOnView(updateExisting: Bool = false, file: String? = nil, line: UInt? = nil) -> [LayoutConstraint] { var installOnView: View? = nil if self.toItem.view != nil { installOnView = closestCommonSuperviewFromView(self.fromItem.view, toView: self.toItem.view) if installOnView == nil { - NSException(name: "Cannot Install Constraint", reason: "No common superview between views (@\(self.makerFile)#\(self.makerLine))", userInfo: nil).raise() + NSException(name: NSExceptionName(rawValue: "Cannot Install Constraint"), reason: "No common superview between views (@\(self.makerFile)#\(self.makerLine))", userInfo: nil).raise() return [] } } else { - if self.fromItem.attributes.isSubsetOf(ConstraintAttributes.Width.union(.Height)) { + if self.fromItem.attributes.isSubset(of: ConstraintAttributes.Width.union(.Height)) { installOnView = self.fromItem.view } else { installOnView = self.fromItem.view?.superview if installOnView == nil { - NSException(name: "Cannot Install Constraint", reason: "Missing superview (@\(self.makerFile)#\(self.makerLine))", userInfo: nil).raise() + NSException(name: NSExceptionName(rawValue: "Cannot Install Constraint"), reason: "Missing superview (@\(self.makerFile)#\(self.makerLine))", userInfo: nil).raise() return [] } } @@ -230,7 +230,7 @@ internal class ConcreteConstraint: Constraint { if let installedOnView = self.installInfo?.view { if installedOnView != installOnView { - NSException(name: "Cannot Install Constraint", reason: "Already installed on different view. (@\(self.makerFile)#\(self.makerLine))", userInfo: nil).raise() + NSException(name: NSExceptionName(rawValue: "Cannot Install Constraint"), reason: "Already installed on different view. (@\(self.makerFile)#\(self.makerLine))", userInfo: nil).raise() return [] } return self.installInfo?.layoutConstraints.allObjects as? [LayoutConstraint] ?? [] @@ -259,7 +259,7 @@ internal class ConcreteConstraint: Constraint { #else var layoutTo: AnyObject? = self.toItem.view #endif - if layoutTo == nil && layoutToAttribute != .Width && layoutToAttribute != .Height { + if layoutTo == nil && layoutToAttribute != .width && layoutToAttribute != .height { layoutTo = installOnView } @@ -286,7 +286,7 @@ internal class ConcreteConstraint: Constraint { // special logic for updating if updateExisting { // get existing constraints for this view - let existingLayoutConstraints = layoutFrom!.snp_installedLayoutConstraints.reverse() + let existingLayoutConstraints = layoutFrom!.snp_installedLayoutConstraints.reversed() // array that will contain only new layout constraints to keep var newLayoutConstraintsToKeep = [LayoutConstraint]() @@ -326,15 +326,15 @@ internal class ConcreteConstraint: Constraint { installOnView!.addConstraints(newLayoutConstraints) } #else - NSLayoutConstraint.activateConstraints(newLayoutConstraints) + NSLayoutConstraint.activate(newLayoutConstraints) #endif // set install info - self.installInfo = ConcreteConstraintInstallInfo(view: installOnView, layoutConstraints: NSHashTable.weakObjectsHashTable()) + self.installInfo = ConcreteConstraintInstallInfo(view: installOnView, layoutConstraints: NSHashTable.weakObjects()) // store which layout constraints are installed for this constraint for layoutConstraint in newLayoutConstraints { - self.installInfo!.layoutConstraints.addObject(layoutConstraint) + self.installInfo!.layoutConstraints.add(layoutConstraint) } // store the layout constraints against the layout from view @@ -357,7 +357,7 @@ internal class ConcreteConstraint: Constraint { installedOnView.removeConstraints(installedLayoutConstraints) } #else - NSLayoutConstraint.deactivateConstraints(installedLayoutConstraints) + NSLayoutConstraint.deactivate(installedLayoutConstraints) #endif // remove the constraints from the from item view @@ -377,13 +377,13 @@ internal class ConcreteConstraint: Constraint { private struct ConcreteConstraintInstallInfo { weak var view: View? = nil - let layoutConstraints: NSHashTable + let layoutConstraints: NSHashTable } private extension NSLayoutAttribute { - private func snp_constantForValue(value: Any?) -> CGFloat { + func snp_constantForValue(_ value: Any?) -> CGFloat { // Float if let float = value as? Float { return CGFloat(float) @@ -406,9 +406,9 @@ private extension NSLayoutAttribute { } // CGSize else if let size = value as? CGSize { - if self == .Width { + if self == .width { return size.width - } else if self == .Height { + } else if self == .height { return size.height } } @@ -416,13 +416,13 @@ private extension NSLayoutAttribute { else if let point = value as? CGPoint { #if os(iOS) || os(tvOS) switch self { - case .Left, .CenterX, .LeftMargin, .CenterXWithinMargins: return point.x - case .Top, .CenterY, .TopMargin, .CenterYWithinMargins, .Baseline, .FirstBaseline: return point.y - case .Right, .RightMargin: return point.x - case .Bottom, .BottomMargin: return point.y - case .Leading, .LeadingMargin: return point.x - case .Trailing, .TrailingMargin: return point.x - case .Width, .Height, .NotAnAttribute: return CGFloat(0) + case .left, .centerX, .leftMargin, .centerXWithinMargins: return point.x + case .top, .centerY, .topMargin, .centerYWithinMargins, .lastBaseline, .firstBaseline: return point.y + case .right, .rightMargin: return point.x + case .bottom, .bottomMargin: return point.y + case .leading, .leadingMargin: return point.x + case .trailing, .trailingMargin: return point.x + case .width, .height, .notAnAttribute: return CGFloat(0) } #else switch self { @@ -441,15 +441,15 @@ private extension NSLayoutAttribute { else if let insets = value as? EdgeInsets { #if os(iOS) || os(tvOS) switch self { - case .Left, .CenterX, .LeftMargin, .CenterXWithinMargins: return insets.left - case .Top, .CenterY, .TopMargin, .CenterYWithinMargins, .Baseline, .FirstBaseline: return insets.top - case .Right, .RightMargin: return insets.right - case .Bottom, .BottomMargin: return insets.bottom - case .Leading, .LeadingMargin: return (Config.interfaceLayoutDirection == .LeftToRight) ? insets.left : -insets.right - case .Trailing, .TrailingMargin: return (Config.interfaceLayoutDirection == .LeftToRight) ? insets.right : -insets.left - case .Width: return -insets.left + insets.right - case .Height: return -insets.top + insets.bottom - case .NotAnAttribute: return CGFloat(0) + case .left, .centerX, .leftMargin, .centerXWithinMargins: return insets.left + case .top, .centerY, .topMargin, .centerYWithinMargins, .lastBaseline, .firstBaseline: return insets.top + case .right, .rightMargin: return insets.right + case .bottom, .bottomMargin: return insets.bottom + case .leading, .leadingMargin: return (Config.interfaceLayoutDirection == .leftToRight) ? insets.left : -insets.right + case .trailing, .trailingMargin: return (Config.interfaceLayoutDirection == .leftToRight) ? insets.right : -insets.left + case .width: return -insets.left + insets.right + case .height: return -insets.top + insets.bottom + case .notAnAttribute: return CGFloat(0) } #else switch self { @@ -471,7 +471,7 @@ private extension NSLayoutAttribute { } } -private func closestCommonSuperviewFromView(fromView: View?, toView: View?) -> View? { +private func closestCommonSuperviewFromView(_ fromView: View?, toView: View?) -> View? { var views = Set() var fromView = fromView var toView = toView diff --git a/Example/Pods/SnapKit/Source/ConstraintAttributes.swift b/Example/Pods/SnapKit/Source/ConstraintAttributes.swift index 95bfddb..8570b85 100644 --- a/Example/Pods/SnapKit/Source/ConstraintAttributes.swift +++ b/Example/Pods/SnapKit/Source/ConstraintAttributes.swift @@ -30,7 +30,7 @@ import AppKit /** Used to define `NSLayoutAttributes` in a more concise and composite manner */ -internal struct ConstraintAttributes: OptionSetType, BooleanType { +internal struct ConstraintAttributes: OptionSet { internal init(rawValue: UInt) { self.rawValue = rawValue @@ -42,14 +42,14 @@ internal struct ConstraintAttributes: OptionSetType, BooleanType { self.rawValue = 0 } - internal private(set) var rawValue: UInt + internal fileprivate(set) var rawValue: UInt internal static var allZeros: ConstraintAttributes { return self.init(0) } internal static func convertFromNilLiteral() -> ConstraintAttributes { return self.init(0) } internal var boolValue: Bool { return self.rawValue != 0 } internal func toRaw() -> UInt { return self.rawValue } - internal static func fromRaw(raw: UInt) -> ConstraintAttributes? { return self.init(raw) } - internal static func fromMask(raw: UInt) -> ConstraintAttributes { return self.init(raw) } + internal static func fromRaw(_ raw: UInt) -> ConstraintAttributes? { return self.init(raw) } + internal static func fromMask(_ raw: UInt) -> ConstraintAttributes { return self.init(raw) } // normal @@ -100,37 +100,37 @@ internal struct ConstraintAttributes: OptionSetType, BooleanType { internal var layoutAttributes:[NSLayoutAttribute] { var attrs = [NSLayoutAttribute]() if (self.contains(ConstraintAttributes.Left)) { - attrs.append(.Left) + attrs.append(.left) } if (self.contains(ConstraintAttributes.Top)) { - attrs.append(.Top) + attrs.append(.top) } if (self.contains(ConstraintAttributes.Right)) { - attrs.append(.Right) + attrs.append(.right) } if (self.contains(ConstraintAttributes.Bottom)) { - attrs.append(.Bottom) + attrs.append(.bottom) } if (self.contains(ConstraintAttributes.Leading)) { - attrs.append(.Leading) + attrs.append(.leading) } if (self.contains(ConstraintAttributes.Trailing)) { - attrs.append(.Trailing) + attrs.append(.trailing) } if (self.contains(ConstraintAttributes.Width)) { - attrs.append(.Width) + attrs.append(.width) } if (self.contains(ConstraintAttributes.Height)) { - attrs.append(.Height) + attrs.append(.height) } if (self.contains(ConstraintAttributes.CenterX)) { - attrs.append(.CenterX) + attrs.append(.centerX) } if (self.contains(ConstraintAttributes.CenterY)) { - attrs.append(.CenterY) + attrs.append(.centerY) } if (self.contains(ConstraintAttributes.Baseline)) { - attrs.append(.Baseline) + attrs.append(.lastBaseline) } #if os(iOS) || os(tvOS) @@ -140,42 +140,42 @@ internal struct ConstraintAttributes: OptionSetType, BooleanType { } #endif if (self.contains(ConstraintAttributes.FirstBaseline)) { - attrs.append(.FirstBaseline) + attrs.append(.firstBaseline) } if (self.contains(ConstraintAttributes.LeftMargin)) { - attrs.append(.LeftMargin) + attrs.append(.leftMargin) } if (self.contains(ConstraintAttributes.RightMargin)) { - attrs.append(.RightMargin) + attrs.append(.rightMargin) } if (self.contains(ConstraintAttributes.TopMargin)) { - attrs.append(.TopMargin) + attrs.append(.topMargin) } if (self.contains(ConstraintAttributes.BottomMargin)) { - attrs.append(.BottomMargin) + attrs.append(.bottomMargin) } if (self.contains(ConstraintAttributes.LeadingMargin)) { - attrs.append(.LeadingMargin) + attrs.append(.leadingMargin) } if (self.contains(ConstraintAttributes.TrailingMargin)) { - attrs.append(.TrailingMargin) + attrs.append(.trailingMargin) } if (self.contains(ConstraintAttributes.CenterXWithinMargins)) { - attrs.append(.CenterXWithinMargins) + attrs.append(.centerXWithinMargins) } if (self.contains(ConstraintAttributes.CenterYWithinMargins)) { - attrs.append(.CenterYWithinMargins) + attrs.append(.centerYWithinMargins) } #endif return attrs } } -internal func +=(inout left: ConstraintAttributes, right: ConstraintAttributes) { - left.unionInPlace(right) +internal func +=(left: inout ConstraintAttributes, right: ConstraintAttributes) { + left.formUnion(right) } -internal func -=(inout left: ConstraintAttributes, right: ConstraintAttributes) { - left.subtractInPlace(right) +internal func -=(left: inout ConstraintAttributes, right: ConstraintAttributes) { + left.subtract(right) } internal func ==(left: ConstraintAttributes, right: ConstraintAttributes) -> Bool { return left.rawValue == right.rawValue diff --git a/Example/Pods/SnapKit/Source/ConstraintDescription.swift b/Example/Pods/SnapKit/Source/ConstraintDescription.swift index 384ee30..a50f993 100644 --- a/Example/Pods/SnapKit/Source/ConstraintDescription.swift +++ b/Example/Pods/SnapKit/Source/ConstraintDescription.swift @@ -34,7 +34,7 @@ public protocol ConstraintDescriptionFinalizable: class { var constraint: Constraint { get } - func labeled(label: String) -> ConstraintDescriptionFinalizable + func labeled(_ label: String) -> ConstraintDescriptionFinalizable } @@ -43,11 +43,11 @@ public protocol ConstraintDescriptionFinalizable: class { */ public protocol ConstraintDescriptionPriortizable: ConstraintDescriptionFinalizable { - func priority(priority: Float) -> ConstraintDescriptionFinalizable - func priority(priority: Double) -> ConstraintDescriptionFinalizable - func priority(priority: CGFloat) -> ConstraintDescriptionFinalizable - func priority(priority: UInt) -> ConstraintDescriptionFinalizable - func priority(priority: Int) -> ConstraintDescriptionFinalizable + func priority(_ priority: Float) -> ConstraintDescriptionFinalizable + func priority(_ priority: Double) -> ConstraintDescriptionFinalizable + func priority(_ priority: CGFloat) -> ConstraintDescriptionFinalizable + func priority(_ priority: UInt) -> ConstraintDescriptionFinalizable + func priority(_ priority: Int) -> ConstraintDescriptionFinalizable func priorityRequired() -> ConstraintDescriptionFinalizable func priorityHigh() -> ConstraintDescriptionFinalizable func priorityMedium() -> ConstraintDescriptionFinalizable @@ -59,33 +59,33 @@ public protocol ConstraintDescriptionPriortizable: ConstraintDescriptionFinaliza */ public protocol ConstraintDescriptionEditable: ConstraintDescriptionPriortizable { - func multipliedBy(amount: Float) -> ConstraintDescriptionEditable - func multipliedBy(amount: Double) -> ConstraintDescriptionEditable - func multipliedBy(amount: CGFloat) -> ConstraintDescriptionEditable - func multipliedBy(amount: Int) -> ConstraintDescriptionEditable - func multipliedBy(amount: UInt) -> ConstraintDescriptionEditable - - func dividedBy(amount: Float) -> ConstraintDescriptionEditable - func dividedBy(amount: Double) -> ConstraintDescriptionEditable - func dividedBy(amount: CGFloat) -> ConstraintDescriptionEditable - func dividedBy(amount: Int) -> ConstraintDescriptionEditable - func dividedBy(amount: UInt) -> ConstraintDescriptionEditable + func multipliedBy(_ amount: Float) -> ConstraintDescriptionEditable + func multipliedBy(_ amount: Double) -> ConstraintDescriptionEditable + func multipliedBy(_ amount: CGFloat) -> ConstraintDescriptionEditable + func multipliedBy(_ amount: Int) -> ConstraintDescriptionEditable + func multipliedBy(_ amount: UInt) -> ConstraintDescriptionEditable + + func dividedBy(_ amount: Float) -> ConstraintDescriptionEditable + func dividedBy(_ amount: Double) -> ConstraintDescriptionEditable + func dividedBy(_ amount: CGFloat) -> ConstraintDescriptionEditable + func dividedBy(_ amount: Int) -> ConstraintDescriptionEditable + func dividedBy(_ amount: UInt) -> ConstraintDescriptionEditable - func offset(amount: Float) -> ConstraintDescriptionEditable - func offset(amount: Double) -> ConstraintDescriptionEditable - func offset(amount: CGFloat) -> ConstraintDescriptionEditable - func offset(amount: Int) -> ConstraintDescriptionEditable - func offset(amount: UInt) -> ConstraintDescriptionEditable - func offset(amount: CGPoint) -> ConstraintDescriptionEditable - func offset(amount: CGSize) -> ConstraintDescriptionEditable - func offset(amount: EdgeInsets) -> ConstraintDescriptionEditable - - func inset(amount: Float) -> ConstraintDescriptionEditable - func inset(amount: Double) -> ConstraintDescriptionEditable - func inset(amount: CGFloat) -> ConstraintDescriptionEditable - func inset(amount: Int) -> ConstraintDescriptionEditable - func inset(amount: UInt) -> ConstraintDescriptionEditable - func inset(amount: EdgeInsets) -> ConstraintDescriptionEditable + func offset(_ amount: Float) -> ConstraintDescriptionEditable + func offset(_ amount: Double) -> ConstraintDescriptionEditable + func offset(_ amount: CGFloat) -> ConstraintDescriptionEditable + func offset(_ amount: Int) -> ConstraintDescriptionEditable + func offset(_ amount: UInt) -> ConstraintDescriptionEditable + func offset(_ amount: CGPoint) -> ConstraintDescriptionEditable + func offset(_ amount: CGSize) -> ConstraintDescriptionEditable + func offset(_ amount: EdgeInsets) -> ConstraintDescriptionEditable + + func inset(_ amount: Float) -> ConstraintDescriptionEditable + func inset(_ amount: Double) -> ConstraintDescriptionEditable + func inset(_ amount: CGFloat) -> ConstraintDescriptionEditable + func inset(_ amount: Int) -> ConstraintDescriptionEditable + func inset(_ amount: UInt) -> ConstraintDescriptionEditable + func inset(_ amount: EdgeInsets) -> ConstraintDescriptionEditable } /** @@ -93,53 +93,53 @@ public protocol ConstraintDescriptionEditable: ConstraintDescriptionPriortizable */ public protocol ConstraintDescriptionRelatable: class { - func equalTo(other: ConstraintItem) -> ConstraintDescriptionEditable - func equalTo(other: View) -> ConstraintDescriptionEditable + func equalTo(_ other: ConstraintItem) -> ConstraintDescriptionEditable + func equalTo(_ other: View) -> ConstraintDescriptionEditable func equalToSuperview() -> ConstraintDescriptionEditable @available(iOS 7.0, *) - func equalTo(other: LayoutSupport) -> ConstraintDescriptionEditable + func equalTo(_ other: LayoutSupport) -> ConstraintDescriptionEditable @available(iOS 9.0, OSX 10.11, *) - func equalTo(other: NSLayoutAnchor) -> ConstraintDescriptionEditable - func equalTo(other: Float) -> ConstraintDescriptionEditable - func equalTo(other: Double) -> ConstraintDescriptionEditable - func equalTo(other: CGFloat) -> ConstraintDescriptionEditable - func equalTo(other: Int) -> ConstraintDescriptionEditable - func equalTo(other: UInt) -> ConstraintDescriptionEditable - func equalTo(other: CGSize) -> ConstraintDescriptionEditable - func equalTo(other: CGPoint) -> ConstraintDescriptionEditable - func equalTo(other: EdgeInsets) -> ConstraintDescriptionEditable - - func lessThanOrEqualTo(other: ConstraintItem) -> ConstraintDescriptionEditable - func lessThanOrEqualTo(other: View) -> ConstraintDescriptionEditable + func equalTo(other: NSLayoutAnchor) -> ConstraintDescriptionEditable + func equalTo(_ other: Float) -> ConstraintDescriptionEditable + func equalTo(_ other: Double) -> ConstraintDescriptionEditable + func equalTo(_ other: CGFloat) -> ConstraintDescriptionEditable + func equalTo(_ other: Int) -> ConstraintDescriptionEditable + func equalTo(_ other: UInt) -> ConstraintDescriptionEditable + func equalTo(_ other: CGSize) -> ConstraintDescriptionEditable + func equalTo(_ other: CGPoint) -> ConstraintDescriptionEditable + func equalTo(_ other: EdgeInsets) -> ConstraintDescriptionEditable + + func lessThanOrEqualTo(_ other: ConstraintItem) -> ConstraintDescriptionEditable + func lessThanOrEqualTo(_ other: View) -> ConstraintDescriptionEditable func lessThanOrEqualToSuperview() -> ConstraintDescriptionEditable @available(iOS 7.0, *) - func lessThanOrEqualTo(other: LayoutSupport) -> ConstraintDescriptionEditable + func lessThanOrEqualTo(_ other: LayoutSupport) -> ConstraintDescriptionEditable @available(iOS 9.0, OSX 10.11, *) - func lessThanOrEqualTo(other: NSLayoutAnchor) -> ConstraintDescriptionEditable - func lessThanOrEqualTo(other: Float) -> ConstraintDescriptionEditable - func lessThanOrEqualTo(other: Double) -> ConstraintDescriptionEditable - func lessThanOrEqualTo(other: CGFloat) -> ConstraintDescriptionEditable - func lessThanOrEqualTo(other: Int) -> ConstraintDescriptionEditable - func lessThanOrEqualTo(other: UInt) -> ConstraintDescriptionEditable - func lessThanOrEqualTo(other: CGSize) -> ConstraintDescriptionEditable - func lessThanOrEqualTo(other: CGPoint) -> ConstraintDescriptionEditable - func lessThanOrEqualTo(other: EdgeInsets) -> ConstraintDescriptionEditable - - func greaterThanOrEqualTo(other: ConstraintItem) -> ConstraintDescriptionEditable - func greaterThanOrEqualTo(other: View) -> ConstraintDescriptionEditable + func lessThanOrEqualTo(other: NSLayoutAnchor) -> ConstraintDescriptionEditable + func lessThanOrEqualTo(_ other: Float) -> ConstraintDescriptionEditable + func lessThanOrEqualTo(_ other: Double) -> ConstraintDescriptionEditable + func lessThanOrEqualTo(_ other: CGFloat) -> ConstraintDescriptionEditable + func lessThanOrEqualTo(_ other: Int) -> ConstraintDescriptionEditable + func lessThanOrEqualTo(_ other: UInt) -> ConstraintDescriptionEditable + func lessThanOrEqualTo(_ other: CGSize) -> ConstraintDescriptionEditable + func lessThanOrEqualTo(_ other: CGPoint) -> ConstraintDescriptionEditable + func lessThanOrEqualTo(_ other: EdgeInsets) -> ConstraintDescriptionEditable + + func greaterThanOrEqualTo(_ other: ConstraintItem) -> ConstraintDescriptionEditable + func greaterThanOrEqualTo(_ other: View) -> ConstraintDescriptionEditable func greaterThanOrEqualToSuperview() -> ConstraintDescriptionEditable @available(iOS 7.0, *) - func greaterThanOrEqualTo(other: LayoutSupport) -> ConstraintDescriptionEditable + func greaterThanOrEqualTo(_ other: LayoutSupport) -> ConstraintDescriptionEditable @available(iOS 9.0, OSX 10.11, *) - func greaterThanOrEqualTo(other: NSLayoutAnchor) -> ConstraintDescriptionEditable - func greaterThanOrEqualTo(other: Float) -> ConstraintDescriptionEditable - func greaterThanOrEqualTo(other: Double) -> ConstraintDescriptionEditable - func greaterThanOrEqualTo(other: CGFloat) -> ConstraintDescriptionEditable - func greaterThanOrEqualTo(other: Int) -> ConstraintDescriptionEditable - func greaterThanOrEqualTo(other: UInt) -> ConstraintDescriptionEditable - func greaterThanOrEqualTo(other: CGSize) -> ConstraintDescriptionEditable - func greaterThanOrEqualTo(other: CGPoint) -> ConstraintDescriptionEditable - func greaterThanOrEqualTo(other: EdgeInsets) -> ConstraintDescriptionEditable + func greaterThanOrEqualTo(other: NSLayoutAnchor) -> ConstraintDescriptionEditable + func greaterThanOrEqualTo(_ other: Float) -> ConstraintDescriptionEditable + func greaterThanOrEqualTo(_ other: Double) -> ConstraintDescriptionEditable + func greaterThanOrEqualTo(_ other: CGFloat) -> ConstraintDescriptionEditable + func greaterThanOrEqualTo(_ other: Int) -> ConstraintDescriptionEditable + func greaterThanOrEqualTo(_ other: UInt) -> ConstraintDescriptionEditable + func greaterThanOrEqualTo(_ other: CGSize) -> ConstraintDescriptionEditable + func greaterThanOrEqualTo(_ other: CGPoint) -> ConstraintDescriptionEditable + func greaterThanOrEqualTo(_ other: EdgeInsets) -> ConstraintDescriptionEditable } @@ -226,11 +226,11 @@ internal class ConstraintDescription: ConstraintDescriptionExtendable, Constrain // MARK: equalTo - internal func equalTo(other: ConstraintItem) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .Equal) + internal func equalTo(_ other: ConstraintItem) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .equal) } - internal func equalTo(other: View) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .Equal) + internal func equalTo(_ other: View) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .equal) } internal func equalToSuperview() -> ConstraintDescriptionEditable { guard let superview = fromItem.view?.superview else { @@ -240,45 +240,45 @@ internal class ConstraintDescription: ConstraintDescriptionExtendable, Constrain return self.equalTo(superview) } @available(iOS 7.0, *) - internal func equalTo(other: LayoutSupport) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .Equal) + internal func equalTo(_ other: LayoutSupport) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .equal) } @available(iOS 9.0, OSX 10.11, *) - internal func equalTo(other: NSLayoutAnchor) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .Equal) + internal func equalTo(other: NSLayoutAnchor) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .equal) } - internal func equalTo(other: Float) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .Equal) + internal func equalTo(_ other: Float) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .equal) } - internal func equalTo(other: Double) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .Equal) + internal func equalTo(_ other: Double) -> ConstraintDescriptionEditable { + return self.constrainTo(Float(other), relation: .equal) } - internal func equalTo(other: CGFloat) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .Equal) + internal func equalTo(_ other: CGFloat) -> ConstraintDescriptionEditable { + return self.constrainTo(Float(other), relation: .equal) } - internal func equalTo(other: Int) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .Equal) + internal func equalTo(_ other: Int) -> ConstraintDescriptionEditable { + return self.constrainTo(Float(other), relation: .equal) } - internal func equalTo(other: UInt) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .Equal) + internal func equalTo(_ other: UInt) -> ConstraintDescriptionEditable { + return self.constrainTo(Float(other), relation: .equal) } - internal func equalTo(other: CGSize) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .Equal) + internal func equalTo(_ other: CGSize) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .equal) } - internal func equalTo(other: CGPoint) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .Equal) + internal func equalTo(_ other: CGPoint) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .equal) } - internal func equalTo(other: EdgeInsets) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .Equal) + internal func equalTo(_ other: EdgeInsets) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .equal) } // MARK: lessThanOrEqualTo - internal func lessThanOrEqualTo(other: ConstraintItem) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .LessThanOrEqualTo) + internal func lessThanOrEqualTo(_ other: ConstraintItem) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .lessThanOrEqualTo) } - internal func lessThanOrEqualTo(other: View) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .LessThanOrEqualTo) + internal func lessThanOrEqualTo(_ other: View) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .lessThanOrEqualTo) } internal func lessThanOrEqualToSuperview() -> ConstraintDescriptionEditable { guard let superview = fromItem.view?.superview else { @@ -288,45 +288,45 @@ internal class ConstraintDescription: ConstraintDescriptionExtendable, Constrain return self.lessThanOrEqualTo(superview) } @available(iOS 7.0, *) - internal func lessThanOrEqualTo(other: LayoutSupport) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .LessThanOrEqualTo) + internal func lessThanOrEqualTo(_ other: LayoutSupport) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .lessThanOrEqualTo) } @available(iOS 9.0, OSX 10.11, *) - internal func lessThanOrEqualTo(other: NSLayoutAnchor) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .LessThanOrEqualTo) + internal func lessThanOrEqualTo(other: NSLayoutAnchor) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .lessThanOrEqualTo) } - internal func lessThanOrEqualTo(other: Float) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .LessThanOrEqualTo) + internal func lessThanOrEqualTo(_ other: Float) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .lessThanOrEqualTo) } - internal func lessThanOrEqualTo(other: Double) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .LessThanOrEqualTo) + internal func lessThanOrEqualTo(_ other: Double) -> ConstraintDescriptionEditable { + return self.constrainTo(Float(other), relation: .lessThanOrEqualTo) } - internal func lessThanOrEqualTo(other: CGFloat) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .LessThanOrEqualTo) + internal func lessThanOrEqualTo(_ other: CGFloat) -> ConstraintDescriptionEditable { + return self.constrainTo(Float(other), relation: .lessThanOrEqualTo) } - internal func lessThanOrEqualTo(other: Int) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .LessThanOrEqualTo) + internal func lessThanOrEqualTo(_ other: Int) -> ConstraintDescriptionEditable { + return self.constrainTo(Float(other), relation: .lessThanOrEqualTo) } - internal func lessThanOrEqualTo(other: UInt) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .LessThanOrEqualTo) + internal func lessThanOrEqualTo(_ other: UInt) -> ConstraintDescriptionEditable { + return self.constrainTo(Float(other), relation: .lessThanOrEqualTo) } - internal func lessThanOrEqualTo(other: CGSize) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .LessThanOrEqualTo) + internal func lessThanOrEqualTo(_ other: CGSize) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .lessThanOrEqualTo) } - internal func lessThanOrEqualTo(other: CGPoint) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .LessThanOrEqualTo) + internal func lessThanOrEqualTo(_ other: CGPoint) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .lessThanOrEqualTo) } - internal func lessThanOrEqualTo(other: EdgeInsets) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .LessThanOrEqualTo) + internal func lessThanOrEqualTo(_ other: EdgeInsets) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .lessThanOrEqualTo) } // MARK: greaterThanOrEqualTo - internal func greaterThanOrEqualTo(other: ConstraintItem) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .GreaterThanOrEqualTo) + internal func greaterThanOrEqualTo(_ other: ConstraintItem) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .greaterThanOrEqualTo) } - internal func greaterThanOrEqualTo(other: View) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .GreaterThanOrEqualTo) + internal func greaterThanOrEqualTo(_ other: View) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .greaterThanOrEqualTo) } internal func greaterThanOrEqualToSuperview() -> ConstraintDescriptionEditable { guard let superview = fromItem.view?.superview else { @@ -336,152 +336,152 @@ internal class ConstraintDescription: ConstraintDescriptionExtendable, Constrain return self.greaterThanOrEqualTo(superview) } @available(iOS 7.0, *) - internal func greaterThanOrEqualTo(other: LayoutSupport) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .GreaterThanOrEqualTo) + internal func greaterThanOrEqualTo(_ other: LayoutSupport) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .greaterThanOrEqualTo) } @available(iOS 9.0, OSX 10.11, *) - internal func greaterThanOrEqualTo(other: NSLayoutAnchor) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .LessThanOrEqualTo) + internal func greaterThanOrEqualTo(other: NSLayoutAnchor) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .lessThanOrEqualTo) } - internal func greaterThanOrEqualTo(other: Float) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .GreaterThanOrEqualTo) + internal func greaterThanOrEqualTo(_ other: Float) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .greaterThanOrEqualTo) } - internal func greaterThanOrEqualTo(other: Double) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .GreaterThanOrEqualTo) + internal func greaterThanOrEqualTo(_ other: Double) -> ConstraintDescriptionEditable { + return self.constrainTo(Float(other), relation: .greaterThanOrEqualTo) } - internal func greaterThanOrEqualTo(other: CGFloat) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .GreaterThanOrEqualTo) + internal func greaterThanOrEqualTo(_ other: CGFloat) -> ConstraintDescriptionEditable { + return self.constrainTo(Float(other), relation: .greaterThanOrEqualTo) } - internal func greaterThanOrEqualTo(other: Int) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .GreaterThanOrEqualTo) + internal func greaterThanOrEqualTo(_ other: Int) -> ConstraintDescriptionEditable { + return self.constrainTo(Float(other), relation: .greaterThanOrEqualTo) } - internal func greaterThanOrEqualTo(other: UInt) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .GreaterThanOrEqualTo) + internal func greaterThanOrEqualTo(_ other: UInt) -> ConstraintDescriptionEditable { + return self.constrainTo(Float(other), relation: .greaterThanOrEqualTo) } - internal func greaterThanOrEqualTo(other: CGSize) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .GreaterThanOrEqualTo) + internal func greaterThanOrEqualTo(_ other: CGSize) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .greaterThanOrEqualTo) } - internal func greaterThanOrEqualTo(other: CGPoint) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .GreaterThanOrEqualTo) + internal func greaterThanOrEqualTo(_ other: CGPoint) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .greaterThanOrEqualTo) } - internal func greaterThanOrEqualTo(other: EdgeInsets) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .GreaterThanOrEqualTo) + internal func greaterThanOrEqualTo(_ other: EdgeInsets) -> ConstraintDescriptionEditable { + return self.constrainTo(other, relation: .greaterThanOrEqualTo) } // MARK: multiplier - internal func multipliedBy(amount: Float) -> ConstraintDescriptionEditable { + internal func multipliedBy(_ amount: Float) -> ConstraintDescriptionEditable { self.multiplier = amount return self } - internal func multipliedBy(amount: Double) -> ConstraintDescriptionEditable { + internal func multipliedBy(_ amount: Double) -> ConstraintDescriptionEditable { return self.multipliedBy(Float(amount)) } - internal func multipliedBy(amount: CGFloat) -> ConstraintDescriptionEditable { + internal func multipliedBy(_ amount: CGFloat) -> ConstraintDescriptionEditable { return self.multipliedBy(Float(amount)) } - internal func multipliedBy(amount: Int) -> ConstraintDescriptionEditable { + internal func multipliedBy(_ amount: Int) -> ConstraintDescriptionEditable { return self.multipliedBy(Float(amount)) } - internal func multipliedBy(amount: UInt) -> ConstraintDescriptionEditable { + internal func multipliedBy(_ amount: UInt) -> ConstraintDescriptionEditable { return self.multipliedBy(Float(amount)) } - internal func dividedBy(amount: Float) -> ConstraintDescriptionEditable { + internal func dividedBy(_ amount: Float) -> ConstraintDescriptionEditable { self.multiplier = 1.0 / amount; return self } - internal func dividedBy(amount: Double) -> ConstraintDescriptionEditable { + internal func dividedBy(_ amount: Double) -> ConstraintDescriptionEditable { return self.dividedBy(Float(amount)) } - internal func dividedBy(amount: CGFloat) -> ConstraintDescriptionEditable { + internal func dividedBy(_ amount: CGFloat) -> ConstraintDescriptionEditable { return self.dividedBy(Float(amount)) } - internal func dividedBy(amount: Int) -> ConstraintDescriptionEditable { + internal func dividedBy(_ amount: Int) -> ConstraintDescriptionEditable { return self.dividedBy(Float(amount)) } - internal func dividedBy(amount: UInt) -> ConstraintDescriptionEditable { + internal func dividedBy(_ amount: UInt) -> ConstraintDescriptionEditable { return self.dividedBy(Float(amount)) } // MARK: offset - internal func offset(amount: Float) -> ConstraintDescriptionEditable { + internal func offset(_ amount: Float) -> ConstraintDescriptionEditable { self.constant = amount return self } - internal func offset(amount: Double) -> ConstraintDescriptionEditable { + internal func offset(_ amount: Double) -> ConstraintDescriptionEditable { return self.offset(Float(amount)) } - internal func offset(amount: CGFloat) -> ConstraintDescriptionEditable { + internal func offset(_ amount: CGFloat) -> ConstraintDescriptionEditable { return self.offset(Float(amount)) } - internal func offset(amount: Int) -> ConstraintDescriptionEditable { + internal func offset(_ amount: Int) -> ConstraintDescriptionEditable { return self.offset(Float(amount)) } - internal func offset(amount: UInt) -> ConstraintDescriptionEditable { + internal func offset(_ amount: UInt) -> ConstraintDescriptionEditable { return self.offset(Float(amount)) } - internal func offset(amount: CGPoint) -> ConstraintDescriptionEditable { + internal func offset(_ amount: CGPoint) -> ConstraintDescriptionEditable { self.constant = amount return self } - internal func offset(amount: CGSize) -> ConstraintDescriptionEditable { + internal func offset(_ amount: CGSize) -> ConstraintDescriptionEditable { self.constant = amount return self } - internal func offset(amount: EdgeInsets) -> ConstraintDescriptionEditable { + internal func offset(_ amount: EdgeInsets) -> ConstraintDescriptionEditable { self.constant = amount return self } // MARK: inset - internal func inset(amount: Float) -> ConstraintDescriptionEditable { + internal func inset(_ amount: Float) -> ConstraintDescriptionEditable { let value = CGFloat(amount) self.constant = EdgeInsets(top: value, left: value, bottom: -value, right: -value) return self } - internal func inset(amount: Double) -> ConstraintDescriptionEditable { + internal func inset(_ amount: Double) -> ConstraintDescriptionEditable { let value = CGFloat(amount) self.constant = EdgeInsets(top: value, left: value, bottom: -value, right: -value) return self } - internal func inset(amount: CGFloat) -> ConstraintDescriptionEditable { + internal func inset(_ amount: CGFloat) -> ConstraintDescriptionEditable { self.constant = EdgeInsets(top: amount, left: amount, bottom: -amount, right: -amount) return self } - internal func inset(amount: Int) -> ConstraintDescriptionEditable { + internal func inset(_ amount: Int) -> ConstraintDescriptionEditable { let value = CGFloat(amount) self.constant = EdgeInsets(top: value, left: value, bottom: -value, right: -value) return self } - internal func inset(amount: UInt) -> ConstraintDescriptionEditable { + internal func inset(_ amount: UInt) -> ConstraintDescriptionEditable { let value = CGFloat(amount) self.constant = EdgeInsets(top: value, left: value, bottom: -value, right: -value) return self } - internal func inset(amount: EdgeInsets) -> ConstraintDescriptionEditable { + internal func inset(_ amount: EdgeInsets) -> ConstraintDescriptionEditable { self.constant = EdgeInsets(top: amount.top, left: amount.left, bottom: -amount.bottom, right: -amount.right) return self } // MARK: priority - internal func priority(priority: Float) -> ConstraintDescriptionFinalizable { + internal func priority(_ priority: Float) -> ConstraintDescriptionFinalizable { self.priority = priority return self } - internal func priority(priority: Double) -> ConstraintDescriptionFinalizable { + internal func priority(_ priority: Double) -> ConstraintDescriptionFinalizable { return self.priority(Float(priority)) } - internal func priority(priority: CGFloat) -> ConstraintDescriptionFinalizable { + internal func priority(_ priority: CGFloat) -> ConstraintDescriptionFinalizable { return self.priority(Float(priority)) } - func priority(priority: UInt) -> ConstraintDescriptionFinalizable { + func priority(_ priority: UInt) -> ConstraintDescriptionFinalizable { return self.priority(Float(priority)) } - internal func priority(priority: Int) -> ConstraintDescriptionFinalizable { + internal func priority(_ priority: Int) -> ConstraintDescriptionFinalizable { return self.priority(Float(priority)) } internal func priorityRequired() -> ConstraintDescriptionFinalizable { @@ -520,65 +520,65 @@ internal class ConstraintDescription: ConstraintDescriptionExtendable, Constrain return self.concreteConstraint! } - func labeled(label: String) -> ConstraintDescriptionFinalizable { + func labeled(_ label: String) -> ConstraintDescriptionFinalizable { self.label = label return self } // MARK: Private - private let fromItem: ConstraintItem - private var toItem: ConstraintItem { + fileprivate let fromItem: ConstraintItem + fileprivate var toItem: ConstraintItem { willSet { if self.concreteConstraint != nil { fatalError("Attempting to modify a ConstraintDescription after its constraint has been created.") } } } - private var relation: ConstraintRelation? { + fileprivate var relation: ConstraintRelation? { willSet { if self.concreteConstraint != nil { fatalError("Attempting to modify a ConstraintDescription after its constraint has been created.") } } } - private var constant: Any = Float(0.0) { + fileprivate var constant: Any = Float(0.0) { willSet { if self.concreteConstraint != nil { fatalError("Attempting to modify a ConstraintDescription after its constraint has been created.") } } } - private var multiplier: Float = 1.0 { + fileprivate var multiplier: Float = 1.0 { willSet { if self.concreteConstraint != nil { fatalError("Attempting to modify a ConstraintDescription after its constraint has been created.") } } } - private var priority: Float = 1000.0 { + fileprivate var priority: Float = 1000.0 { willSet { if self.concreteConstraint != nil { fatalError("Attempting to modify a ConstraintDescription after its constraint has been created.") } } } - private var concreteConstraint: ConcreteConstraint? = nil + fileprivate var concreteConstraint: ConcreteConstraint? = nil - private func addConstraint(attributes: ConstraintAttributes) -> ConstraintDescription { + fileprivate func addConstraint(_ attributes: ConstraintAttributes) -> ConstraintDescription { if self.relation == nil { self.fromItem.attributes += attributes } return self } - private func constrainTo(other: ConstraintItem, relation: ConstraintRelation) -> ConstraintDescription { + fileprivate func constrainTo(_ other: ConstraintItem, relation: ConstraintRelation) -> ConstraintDescription { if other.attributes != ConstraintAttributes.None { let toLayoutAttributes = other.attributes.layoutAttributes if toLayoutAttributes.count > 1 { let fromLayoutAttributes = self.fromItem.attributes.layoutAttributes if toLayoutAttributes != fromLayoutAttributes { - NSException(name: "Invalid Constraint", reason: "Cannot constrain to multiple non identical attributes", userInfo: nil).raise() + NSException(name: NSExceptionName(rawValue: "Invalid Constraint"), reason: "Cannot constrain to multiple non identical attributes", userInfo: nil).raise() return self } other.attributes = ConstraintAttributes.None @@ -589,41 +589,41 @@ internal class ConstraintDescription: ConstraintDescriptionExtendable, Constrain return self } - private func constrainTo(other: View, relation: ConstraintRelation) -> ConstraintDescription { + fileprivate func constrainTo(_ other: View, relation: ConstraintRelation) -> ConstraintDescription { return constrainTo(ConstraintItem(object: other, attributes: ConstraintAttributes.None), relation: relation) } @available(iOS 7.0, *) - private func constrainTo(other: LayoutSupport, relation: ConstraintRelation) -> ConstraintDescription { + fileprivate func constrainTo(_ other: LayoutSupport, relation: ConstraintRelation) -> ConstraintDescription { return constrainTo(ConstraintItem(object: other, attributes: ConstraintAttributes.None), relation: relation) } @available(iOS 9.0, OSX 10.11, *) - private func constrainTo(other: NSLayoutAnchor, relation: ConstraintRelation) -> ConstraintDescription { + fileprivate func constrainTo(_ other: NSLayoutAnchor, relation: ConstraintRelation) -> ConstraintDescription { return constrainTo(ConstraintItem(object: other, attributes: ConstraintAttributes.None), relation: relation) } - private func constrainTo(other: Float, relation: ConstraintRelation) -> ConstraintDescription { + fileprivate func constrainTo(_ other: Float, relation: ConstraintRelation) -> ConstraintDescription { self.constant = other return constrainTo(ConstraintItem(object: nil, attributes: ConstraintAttributes.None), relation: relation) } - private func constrainTo(other: Double, relation: ConstraintRelation) -> ConstraintDescription { + fileprivate func constrainTo(_ other: Double, relation: ConstraintRelation) -> ConstraintDescription { self.constant = other return constrainTo(ConstraintItem(object: nil, attributes: ConstraintAttributes.None), relation: relation) } - private func constrainTo(other: CGSize, relation: ConstraintRelation) -> ConstraintDescription { + fileprivate func constrainTo(_ other: CGSize, relation: ConstraintRelation) -> ConstraintDescription { self.constant = other return constrainTo(ConstraintItem(object: nil, attributes: ConstraintAttributes.None), relation: relation) } - private func constrainTo(other: CGPoint, relation: ConstraintRelation) -> ConstraintDescription { + fileprivate func constrainTo(_ other: CGPoint, relation: ConstraintRelation) -> ConstraintDescription { self.constant = other return constrainTo(ConstraintItem(object: nil, attributes: ConstraintAttributes.None), relation: relation) } - private func constrainTo(other: EdgeInsets, relation: ConstraintRelation) -> ConstraintDescription { + fileprivate func constrainTo(_ other: EdgeInsets, relation: ConstraintRelation) -> ConstraintDescription { self.constant = other return constrainTo(ConstraintItem(object: nil, attributes: ConstraintAttributes.None), relation: relation) } diff --git a/Example/Pods/SnapKit/Source/ConstraintItem.swift b/Example/Pods/SnapKit/Source/ConstraintItem.swift index b2c9062..369623a 100644 --- a/Example/Pods/SnapKit/Source/ConstraintItem.swift +++ b/Example/Pods/SnapKit/Source/ConstraintItem.swift @@ -30,7 +30,7 @@ import AppKit /** Used to assist in building a constraint */ -public class ConstraintItem { +open class ConstraintItem { internal init(object: AnyObject?, attributes: ConstraintAttributes) { self.object = object @@ -65,4 +65,4 @@ internal func ==(left: ConstraintItem, right: ConstraintItem) -> Bool { return false } return true -} \ No newline at end of file +} diff --git a/Example/Pods/SnapKit/Source/ConstraintMaker.swift b/Example/Pods/SnapKit/Source/ConstraintMaker.swift index 154b9dd..01baa52 100644 --- a/Example/Pods/SnapKit/Source/ConstraintMaker.swift +++ b/Example/Pods/SnapKit/Source/ConstraintMaker.swift @@ -30,93 +30,93 @@ import AppKit /** Used to make constraints */ -public class ConstraintMaker { +open class ConstraintMaker { /// left edge - public var left: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Left) } + open var left: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Left) } /// top edge - public var top: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Top) } + open var top: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Top) } /// right edge - public var right: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Right) } + open var right: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Right) } /// bottom edge - public var bottom: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Bottom) } + open var bottom: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Bottom) } /// leading edge - public var leading: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Leading) } + open var leading: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Leading) } /// trailing edge - public var trailing: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Trailing) } + open var trailing: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Trailing) } /// width dimension - public var width: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Width) } + open var width: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Width) } /// height dimension - public var height: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Height) } + open var height: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Height) } /// centerX dimension - public var centerX: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.CenterX) } + open var centerX: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.CenterX) } /// centerY dimension - public var centerY: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.CenterY) } + open var centerY: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.CenterY) } /// baseline position - public var baseline: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Baseline) } + open var baseline: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Baseline) } /// firse baseline position @available(iOS 8.0, *) - public var firstBaseline: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.FirstBaseline) } + open var firstBaseline: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.FirstBaseline) } /// left margin @available(iOS 8.0, *) - public var leftMargin: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.LeftMargin) } + open var leftMargin: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.LeftMargin) } /// right margin @available(iOS 8.0, *) - public var rightMargin: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.RightMargin) } + open var rightMargin: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.RightMargin) } /// top margin @available(iOS 8.0, *) - public var topMargin: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.TopMargin) } + open var topMargin: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.TopMargin) } /// bottom margin @available(iOS 8.0, *) - public var bottomMargin: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.BottomMargin) } + open var bottomMargin: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.BottomMargin) } /// leading margin @available(iOS 8.0, *) - public var leadingMargin: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.LeadingMargin) } + open var leadingMargin: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.LeadingMargin) } /// trailing margin @available(iOS 8.0, *) - public var trailingMargin: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.TrailingMargin) } + open var trailingMargin: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.TrailingMargin) } /// centerX within margins @available(iOS 8.0, *) - public var centerXWithinMargins: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.CenterXWithinMargins) } + open var centerXWithinMargins: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.CenterXWithinMargins) } /// centerY within margins @available(iOS 8.0, *) - public var centerYWithinMargins: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.CenterYWithinMargins) } + open var centerYWithinMargins: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.CenterYWithinMargins) } /// top + left + bottom + right edges - public var edges: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Edges) } + open var edges: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Edges) } /// width + height dimensions - public var size: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Size) } + open var size: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Size) } // centerX + centerY positions - public var center: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Center) } + open var center: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Center) } // top + left + bottom + right margins @available(iOS 8.0, *) - public var margins: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Margins) } + open var margins: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Margins) } // centerX + centerY within margins @available(iOS 8.0, *) - public var centerWithinMargins: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.CenterWithinMargins) } + open var centerWithinMargins: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.CenterWithinMargins) } internal init(view: View, file: String, line: UInt) { self.view = view @@ -129,16 +129,16 @@ public class ConstraintMaker { internal let view: View internal var constraintDescriptions = [ConstraintDescription]() - internal func makeConstraintDescription(attributes: ConstraintAttributes) -> ConstraintDescription { + internal func makeConstraintDescription(_ attributes: ConstraintAttributes) -> ConstraintDescription { let item = ConstraintItem(object: self.view, attributes: attributes) let constraintDescription = ConstraintDescription(fromItem: item) self.constraintDescriptions.append(constraintDescription) return constraintDescription } - internal class func prepareConstraints(view view: View, file: String = "Unknown", line: UInt = 0, @noescape closure: (make: ConstraintMaker) -> Void) -> [Constraint] { + internal class func prepareConstraints(view: View, file: String = "Unknown", line: UInt = 0, closure: (_ make: ConstraintMaker) -> Void) -> [Constraint] { let maker = ConstraintMaker(view: view, file: file, line: line) - closure(make: maker) + closure(maker) let constraints = maker.constraintDescriptions.map { $0.constraint } for constraint in constraints { @@ -148,10 +148,10 @@ public class ConstraintMaker { return constraints } - internal class func makeConstraints(view view: View, file: String = "Unknown", line: UInt = 0, @noescape closure: (make: ConstraintMaker) -> Void) { + internal class func makeConstraints(view: View, file: String = "Unknown", line: UInt = 0, closure: (_ make: ConstraintMaker) -> Void) { view.translatesAutoresizingMaskIntoConstraints = false let maker = ConstraintMaker(view: view, file: file, line: line) - closure(make: maker) + closure(maker) let constraints = maker.constraintDescriptions.map { $0.constraint as! ConcreteConstraint } for constraint in constraints { @@ -161,10 +161,10 @@ public class ConstraintMaker { } } - internal class func remakeConstraints(view view: View, file: String = "Unknown", line: UInt = 0, @noescape closure: (make: ConstraintMaker) -> Void) { + internal class func remakeConstraints(view: View, file: String = "Unknown", line: UInt = 0, closure: (_ make: ConstraintMaker) -> Void) { view.translatesAutoresizingMaskIntoConstraints = false let maker = ConstraintMaker(view: view, file: file, line: line) - closure(make: maker) + closure(maker) self.removeConstraints(view: view) let constraints = maker.constraintDescriptions.map { $0.constraint as! ConcreteConstraint } @@ -175,10 +175,10 @@ public class ConstraintMaker { } } - internal class func updateConstraints(view view: View, file: String = "Unknown", line: UInt = 0, @noescape closure: (make: ConstraintMaker) -> Void) { + internal class func updateConstraints(view: View, file: String = "Unknown", line: UInt = 0, closure: (_ make: ConstraintMaker) -> Void) { view.translatesAutoresizingMaskIntoConstraints = false let maker = ConstraintMaker(view: view, file: file, line: line) - closure(make: maker) + closure(maker) let constraints = maker.constraintDescriptions.map { $0.constraint as! ConcreteConstraint} for constraint in constraints { @@ -188,7 +188,7 @@ public class ConstraintMaker { } } - internal class func removeConstraints(view view: View) { + internal class func removeConstraints(view: View) { for existingLayoutConstraint in view.snp_installedLayoutConstraints { existingLayoutConstraint.snp_constraint?.uninstall() } diff --git a/Example/Pods/SnapKit/Source/ConstraintRelation.swift b/Example/Pods/SnapKit/Source/ConstraintRelation.swift index f1b1ab2..20049b9 100644 --- a/Example/Pods/SnapKit/Source/ConstraintRelation.swift +++ b/Example/Pods/SnapKit/Source/ConstraintRelation.swift @@ -31,18 +31,18 @@ import AppKit Used to define `NSLayoutRelation` */ internal enum ConstraintRelation: Int { - case Equal = 1, LessThanOrEqualTo, GreaterThanOrEqualTo + case equal = 1, lessThanOrEqualTo, greaterThanOrEqualTo internal var layoutRelation: NSLayoutRelation { get { switch(self) { - case .LessThanOrEqualTo: - return .LessThanOrEqual - case .GreaterThanOrEqualTo: - return .GreaterThanOrEqual + case .lessThanOrEqualTo: + return .lessThanOrEqual + case .greaterThanOrEqualTo: + return .greaterThanOrEqual default: - return .Equal + return .equal } } } -} \ No newline at end of file +} diff --git a/Example/Pods/SnapKit/Source/Debugging.swift b/Example/Pods/SnapKit/Source/Debugging.swift index 302012a..55688ca 100644 --- a/Example/Pods/SnapKit/Source/Debugging.swift +++ b/Example/Pods/SnapKit/Source/Debugging.swift @@ -57,13 +57,13 @@ public extension LayoutConstraint { } } - override public var description: String { + override open var description: String { var description = "<" description += descriptionForObject(self) description += " \(descriptionForObject(self.firstItem))" - if self.firstAttribute != .NotAnAttribute { + if self.firstAttribute != .notAnAttribute { description += ".\(self.firstAttribute.snp_description)" } @@ -73,7 +73,7 @@ public extension LayoutConstraint { description += " \(descriptionForObject(secondItem))" } - if self.secondAttribute != .NotAnAttribute { + if self.secondAttribute != .notAnAttribute { description += ".\(self.secondAttribute.snp_description)" } @@ -81,13 +81,13 @@ public extension LayoutConstraint { description += " * \(self.multiplier)" } - if self.secondAttribute == .NotAnAttribute { + if self.secondAttribute == .notAnAttribute { description += " \(self.constant)" } else { if self.constant > 0.0 { description += " + \(self.constant)" } else if self.constant < 0.0 { - description += " - \(CGFloat.abs(self.constant))" + description += " - \(abs(self.constant))" } } @@ -112,16 +112,16 @@ public extension LayoutConstraint { private var labelKey = "" -private func descriptionForObject(object: AnyObject) -> String { - let pointerDescription = NSString(format: "%p", ObjectIdentifier(object).uintValue) +private func descriptionForObject(_ object: AnyObject) -> String { + let pointerDescription = NSString(format: "%p", UInt(bitPattern: ObjectIdentifier(object))) var desc = "" - desc += object.dynamicType.description() + desc += type(of: object).description() if let object = object as? View { - desc += ":\(object.snp_label ?? pointerDescription)" + desc += ":\(object.snp_label ?? pointerDescription as String)" } else if let object = object as? LayoutConstraint { - desc += ":\(object.snp_label ?? pointerDescription)" + desc += ":\(object.snp_label ?? pointerDescription as String)" } else { desc += ":\(pointerDescription)" } @@ -136,11 +136,11 @@ private func descriptionForObject(object: AnyObject) -> String { private extension NSLayoutRelation { - private var snp_description: String { + var snp_description: String { switch self { - case .Equal: return "==" - case .GreaterThanOrEqual: return ">=" - case .LessThanOrEqual: return "<=" + case .equal: return "==" + case .greaterThanOrEqual: return ">=" + case .lessThanOrEqual: return "<=" } } @@ -148,30 +148,30 @@ private extension NSLayoutRelation { private extension NSLayoutAttribute { - private var snp_description: String { + var snp_description: String { #if os(iOS) || os(tvOS) switch self { - case .NotAnAttribute: return "notAnAttribute" - case .Top: return "top" - case .Left: return "left" - case .Bottom: return "bottom" - case .Right: return "right" - case .Leading: return "leading" - case .Trailing: return "trailing" - case .Width: return "width" - case .Height: return "height" - case .CenterX: return "centerX" - case .CenterY: return "centerY" - case .Baseline: return "baseline" - case .FirstBaseline: return "firstBaseline" - case .TopMargin: return "topMargin" - case .LeftMargin: return "leftMargin" - case .BottomMargin: return "bottomMargin" - case .RightMargin: return "rightMargin" - case .LeadingMargin: return "leadingMargin" - case .TrailingMargin: return "trailingMargin" - case .CenterXWithinMargins: return "centerXWithinMargins" - case .CenterYWithinMargins: return "centerYWithinMargins" + case .notAnAttribute: return "notAnAttribute" + case .top: return "top" + case .left: return "left" + case .bottom: return "bottom" + case .right: return "right" + case .leading: return "leading" + case .trailing: return "trailing" + case .width: return "width" + case .height: return "height" + case .centerX: return "centerX" + case .centerY: return "centerY" + case .lastBaseline: return "baseline" + case .firstBaseline: return "firstBaseline" + case .topMargin: return "topMargin" + case .leftMargin: return "leftMargin" + case .bottomMargin: return "bottomMargin" + case .rightMargin: return "rightMargin" + case .leadingMargin: return "leadingMargin" + case .trailingMargin: return "trailingMargin" + case .centerXWithinMargins: return "centerXWithinMargins" + case .centerYWithinMargins: return "centerYWithinMargins" } #else switch self { diff --git a/Example/Pods/SnapKit/Source/EdgeInsets.swift b/Example/Pods/SnapKit/Source/EdgeInsets.swift index 299874a..e73a795 100644 --- a/Example/Pods/SnapKit/Source/EdgeInsets.swift +++ b/Example/Pods/SnapKit/Source/EdgeInsets.swift @@ -24,7 +24,7 @@ #if os(iOS) || os(tvOS) import UIKit public typealias EdgeInsets = UIEdgeInsets -public func EdgeInsetsMake(top: CGFloat, left: CGFloat, bottom: CGFloat, right: CGFloat) -> EdgeInsets { +public func EdgeInsetsMake(_ top: CGFloat, left: CGFloat, bottom: CGFloat, right: CGFloat) -> EdgeInsets { return EdgeInsets(top: top, left: left, bottom: bottom, right: right) } public let EdgeInsetsZero = EdgeInsets(top: 0, left: 0, bottom: 0, right: 0) diff --git a/Example/Pods/SnapKit/Source/LayoutConstraint.swift b/Example/Pods/SnapKit/Source/LayoutConstraint.swift index 14ec1ed..39b2e4a 100644 --- a/Example/Pods/SnapKit/Source/LayoutConstraint.swift +++ b/Example/Pods/SnapKit/Source/LayoutConstraint.swift @@ -30,7 +30,7 @@ import AppKit /** Used to add extra information to the actual `NSLayoutConstraint`'s that will UIKit/AppKit will utilize */ -public class LayoutConstraint: NSLayoutConstraint { +open class LayoutConstraint: NSLayoutConstraint { internal var snp_constraint: Constraint? = nil diff --git a/Example/Pods/SnapKit/Source/SnapKit.swift b/Example/Pods/SnapKit/Source/SnapKit.swift index 3aa5181..8602e73 100644 --- a/Example/Pods/SnapKit/Source/SnapKit.swift +++ b/Example/Pods/SnapKit/Source/SnapKit.swift @@ -37,6 +37,6 @@ public class LayoutSupport {} public struct Config { /// The interface layout direction - public static var interfaceLayoutDirection = InterfaceLayoutDirection.LeftToRight + public static var interfaceLayoutDirection = InterfaceLayoutDirection.leftToRight -} \ No newline at end of file +} diff --git a/Example/Pods/SnapKit/Source/View+SnapKit.swift b/Example/Pods/SnapKit/Source/View+SnapKit.swift index 51cde58..43e19a9 100644 --- a/Example/Pods/SnapKit/Source/View+SnapKit.swift +++ b/Example/Pods/SnapKit/Source/View+SnapKit.swift @@ -127,7 +127,7 @@ public extension View { - returns: the constraints made */ - public func snp_prepareConstraints(file: String = #file, line: UInt = #line, @noescape closure: (make: ConstraintMaker) -> Void) -> [Constraint] { + public func snp_prepareConstraints(_ file: String = #file, line: UInt = #line, closure: (_ make: ConstraintMaker) -> Void) -> [Constraint] { return ConstraintMaker.prepareConstraints(view: self, file: file, line: line, closure: closure) } @@ -136,7 +136,7 @@ public extension View { - parameter closure that will be passed the `ConstraintMaker` to make the constraints with */ - public func snp_makeConstraints(file: String = #file, line: UInt = #line, @noescape closure: (make: ConstraintMaker) -> Void) -> Void { + public func snp_makeConstraints(_ file: String = #file, line: UInt = #line, closure: (_ make: ConstraintMaker) -> Void) -> Void { ConstraintMaker.makeConstraints(view: self, file: file, line: line, closure: closure) } @@ -147,7 +147,7 @@ public extension View { - parameter closure that will be passed the `ConstraintMaker` to update the constraints with */ - public func snp_updateConstraints(file: String = #file, line: UInt = #line, @noescape closure: (make: ConstraintMaker) -> Void) -> Void { + public func snp_updateConstraints(_ file: String = #file, line: UInt = #line, closure: (_ make: ConstraintMaker) -> Void) -> Void { ConstraintMaker.updateConstraints(view: self, file: file, line: line, closure: closure) } @@ -156,7 +156,7 @@ public extension View { - parameter closure that will be passed the `ConstraintMaker` to remake the constraints with */ - public func snp_remakeConstraints(file: String = #file, line: UInt = #line, @noescape closure: (make: ConstraintMaker) -> Void) -> Void { + public func snp_remakeConstraints(_ file: String = #file, line: UInt = #line, closure: (_ make: ConstraintMaker) -> Void) -> Void { ConstraintMaker.remakeConstraints(view: self, file: file, line: line, closure: closure) } diff --git a/Example/Tests/Tests.swift b/Example/Tests/Tests.swift index e33e4d8..91ce41a 100644 --- a/Example/Tests/Tests.swift +++ b/Example/Tests/Tests.swift @@ -21,7 +21,7 @@ class Tests: XCTestCase { func testPerformanceExample() { // This is an example of a performance test case. - self.measureBlock() { + self.measure() { // Put the code you want to measure the time of here. } } diff --git a/LiquidFloatingActionButton.podspec b/LiquidFloatingActionButton.podspec index bcae4ac..f7fbf1e 100644 --- a/LiquidFloatingActionButton.podspec +++ b/LiquidFloatingActionButton.podspec @@ -8,7 +8,7 @@ Pod::Spec.new do |s| s.name = "LiquidFloatingActionButton" - s.version = "0.1.7" + s.version = "0.2.0" s.summary = "Material Design Floating Action Button in liquid state" # This description is used to generate tags and improve search results. diff --git a/Pod/Classes/ArrayEx.swift b/Pod/Classes/ArrayEx.swift index 2e4c76f..f437fb9 100644 --- a/Pod/Classes/ArrayEx.swift +++ b/Pod/Classes/ArrayEx.swift @@ -9,7 +9,7 @@ import Foundation extension Array { - func each(f: (Element) -> ()) { + func each(_ f: (Element) -> ()) { for item in self { f(item) } diff --git a/Pod/Classes/CGPointEx.swift b/Pod/Classes/CGPointEx.swift index 6eea558..2d61c63 100644 --- a/Pod/Classes/CGPointEx.swift +++ b/Pod/Classes/CGPointEx.swift @@ -12,30 +12,30 @@ import UIKit extension CGPoint { // 足し算 - func plus(point: CGPoint) -> CGPoint { + func plus(_ point: CGPoint) -> CGPoint { return CGPoint(x: self.x + point.x, y: self.y + point.y) } // 引き算 - func minus(point: CGPoint) -> CGPoint { + func minus(_ point: CGPoint) -> CGPoint { return CGPoint(x: self.x - point.x, y: self.y - point.y) } - func minusX(dx: CGFloat) -> CGPoint { + func minusX(_ dx: CGFloat) -> CGPoint { return CGPoint(x: self.x - dx, y: self.y) } - func minusY(dy: CGFloat) -> CGPoint { + func minusY(_ dy: CGFloat) -> CGPoint { return CGPoint(x: self.x, y: self.y - dy) } // 掛け算 - func mul(rhs: CGFloat) -> CGPoint { + func mul(_ rhs: CGFloat) -> CGPoint { return CGPoint(x: self.x * rhs, y: self.y * rhs) } // 割り算 - func div(rhs: CGFloat) -> CGPoint { + func div(_ rhs: CGFloat) -> CGPoint { return CGPoint(x: self.x / rhs, y: self.y / rhs) } @@ -50,24 +50,24 @@ extension CGPoint { } // 内積 - func dot(point: CGPoint) -> CGFloat { + func dot(_ point: CGPoint) -> CGFloat { return self.x * point.x + self.y * point.y } // 外積 - func cross(point: CGPoint) -> CGFloat { + func cross(_ point: CGPoint) -> CGFloat { return self.x * point.y - self.y * point.x } - func split(point: CGPoint, ratio: CGFloat) -> CGPoint { + func split(_ point: CGPoint, ratio: CGFloat) -> CGPoint { return self.mul(ratio).plus(point.mul(1.0 - ratio)) } - func mid(point: CGPoint) -> CGPoint { + func mid(_ point: CGPoint) -> CGPoint { return split(point, ratio: 0.5) } - static func intersection(from: CGPoint, to: CGPoint, from2: CGPoint, to2: CGPoint) -> CGPoint? { + static func intersection(_ from: CGPoint, to: CGPoint, from2: CGPoint, to2: CGPoint) -> CGPoint? { let ac = CGPoint(x: to.x - from.x, y: to.y - from.y) let bd = CGPoint(x: to2.x - from2.x, y: to2.y - from2.y) let ab = CGPoint(x: from2.x - from.x, y: from2.y - from.y) @@ -84,4 +84,4 @@ extension CGPoint { return nil } -} \ No newline at end of file +} diff --git a/Pod/Classes/LiquidFloatingActionButton.swift b/Pod/Classes/LiquidFloatingActionButton.swift index 3820f5a..ab990ed 100644 --- a/Pod/Classes/LiquidFloatingActionButton.swift +++ b/Pod/Classes/LiquidFloatingActionButton.swift @@ -11,70 +11,70 @@ import QuartzCore // LiquidFloatingButton DataSource methods @objc public protocol LiquidFloatingActionButtonDataSource { - func numberOfCells(liquidFloatingActionButton: LiquidFloatingActionButton) -> Int - func cellForIndex(index: Int) -> LiquidFloatingCell + func numberOfCells(_ liquidFloatingActionButton: LiquidFloatingActionButton) -> Int + func cellForIndex(_ index: Int) -> LiquidFloatingCell } @objc public protocol LiquidFloatingActionButtonDelegate { // selected method - optional func liquidFloatingActionButton(liquidFloatingActionButton: LiquidFloatingActionButton, didSelectItemAtIndex index: Int) + @objc optional func liquidFloatingActionButton(_ liquidFloatingActionButton: LiquidFloatingActionButton, didSelectItemAtIndex index: Int) } public enum LiquidFloatingActionButtonAnimateStyle : Int { - case Up - case Right - case Left - case Down + case up + case right + case left + case down } @IBDesignable -public class LiquidFloatingActionButton : UIView { +open class LiquidFloatingActionButton : UIView { - private let internalRadiusRatio: CGFloat = 20.0 / 56.0 - public var cellRadiusRatio: CGFloat = 0.38 - public var animateStyle: LiquidFloatingActionButtonAnimateStyle = .Up { + fileprivate let internalRadiusRatio: CGFloat = 20.0 / 56.0 + open var cellRadiusRatio: CGFloat = 0.38 + open var animateStyle: LiquidFloatingActionButtonAnimateStyle = .up { didSet { baseView.animateStyle = animateStyle } } - public var enableShadow = true { + open var enableShadow = true { didSet { baseView.enableShadow = self.enableShadow setNeedsDisplay() } } - public var delegate: LiquidFloatingActionButtonDelegate? - public var dataSource: LiquidFloatingActionButtonDataSource? + open var delegate: LiquidFloatingActionButtonDelegate? + open var dataSource: LiquidFloatingActionButtonDataSource? - public var responsible = true - public var isOpening: Bool { + open var responsible = true + open var isOpening: Bool { get { return !baseView.openingCells.isEmpty } } - public private(set) var isClosed: Bool = true + open fileprivate(set) var isClosed: Bool = true - @IBInspectable public var color: UIColor = UIColor(red: 82 / 255.0, green: 112 / 255.0, blue: 235 / 255.0, alpha: 1.0) + @IBInspectable open var color: UIColor = UIColor(red: 82 / 255.0, green: 112 / 255.0, blue: 235 / 255.0, alpha: 1.0) - @IBInspectable public var image: UIImage? { + @IBInspectable open var image: UIImage? { didSet { if image != nil { - plusLayer.contents = image!.CGImage + plusLayer.contents = image!.cgImage plusLayer.path = nil } } } - @IBInspectable public var rotationDegrees: CGFloat = 45.0 + @IBInspectable open var rotationDegrees: CGFloat = 45.0 - private var plusLayer = CAShapeLayer() - private let circleLayer = CAShapeLayer() + fileprivate var plusLayer = CAShapeLayer() + fileprivate let circleLayer = CAShapeLayer() - private var touching = false + fileprivate var touching = false - private var baseView = CircleLiquidBaseView() - private let liquidView = UIView() + fileprivate var baseView = CircleLiquidBaseView() + fileprivate let liquidView = UIView() public override init(frame: CGRect) { super.init(frame: frame) @@ -86,7 +86,7 @@ public class LiquidFloatingActionButton : UIView { setup() } - private func insertCell(cell: LiquidFloatingCell) { + fileprivate func insertCell(_ cell: LiquidFloatingCell) { /* // Default to the button color if cell.color == nil { @@ -102,7 +102,7 @@ public class LiquidFloatingActionButton : UIView { insertSubview(cell, aboveSubview: baseView) } - private func cellArray() -> [LiquidFloatingCell] { + fileprivate func cellArray() -> [LiquidFloatingCell] { var result: [LiquidFloatingCell] = [] if let source = dataSource { for i in 0.. CAShapeLayer { + open func createPlusLayer(_ frame: CGRect) -> CAShapeLayer { // draw plus shape let plusLayer = CAShapeLayer() plusLayer.lineCap = kCALineCapRound - plusLayer.strokeColor = UIColor.whiteColor().CGColor + plusLayer.strokeColor = UIColor.white.cgColor plusLayer.lineWidth = 3.0 let path = UIBezierPath() - path.moveToPoint(CGPoint(x: frame.width * internalRadiusRatio, y: frame.height * 0.5)) - path.addLineToPoint(CGPoint(x: frame.width * (1 - internalRadiusRatio), y: frame.height * 0.5)) - path.moveToPoint(CGPoint(x: frame.width * 0.5, y: frame.height * internalRadiusRatio)) - path.addLineToPoint(CGPoint(x: frame.width * 0.5, y: frame.height * (1 - internalRadiusRatio))) + path.move(to: CGPoint(x: frame.width * internalRadiusRatio, y: frame.height * 0.5)) + path.addLine(to: CGPoint(x: frame.width * (1 - internalRadiusRatio), y: frame.height * 0.5)) + path.move(to: CGPoint(x: frame.width * 0.5, y: frame.height * internalRadiusRatio)) + path.addLine(to: CGPoint(x: frame.width * 0.5, y: frame.height * (1 - internalRadiusRatio))) - plusLayer.path = path.CGPath + plusLayer.path = path.cgPath return plusLayer } - private func drawCircle() { + fileprivate func drawCircle() { self.circleLayer.cornerRadius = self.frame.width * 0.5 self.circleLayer.masksToBounds = true if touching && responsible { - self.circleLayer.backgroundColor = self.color.white(0.5).CGColor + self.circleLayer.backgroundColor = self.color.whiteTransform(0.5).cgColor } else { - self.circleLayer.backgroundColor = self.color.CGColor + self.circleLayer.backgroundColor = self.color.cgColor } } - private func drawShadow() { + fileprivate func drawShadow() { if enableShadow { circleLayer.appendShadow() } } // MARK: Events - public override func touchesBegan(touches: Set, withEvent event: UIEvent?) { + open override func touchesBegan(_ touches: Set, with event: UIEvent?) { self.touching = true setNeedsDisplay() } - public override func touchesEnded(touches: Set, withEvent event: UIEvent?) { + open override func touchesEnded(_ touches: Set, with event: UIEvent?) { self.touching = false setNeedsDisplay() didTapped() } - public override func touchesCancelled(touches: Set?, withEvent event: UIEvent?) { + open override func touchesCancelled(_ touches: Set, with event: UIEvent?) { self.touching = false setNeedsDisplay() } - public override func hitTest(point: CGPoint, withEvent event: UIEvent?) -> UIView? { + open override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { for cell in cellArray() { - let pointForTargetView = cell.convertPoint(point, fromView: self) + let pointForTargetView = cell.convert(point, from: self) - if (CGRectContainsPoint(cell.bounds, pointForTargetView)) { - if cell.userInteractionEnabled { - return cell.hitTest(pointForTargetView, withEvent: event) + if (cell.bounds.contains(pointForTargetView)) { + if cell.isUserInteractionEnabled { + return cell.hitTest(pointForTargetView, with: event) } } } - return super.hitTest(point, withEvent: event) + return super.hitTest(point, with: event) } // MARK: private methods - private func setup() { - self.backgroundColor = UIColor.clearColor() + fileprivate func setup() { + self.backgroundColor = UIColor.clear self.clipsToBounds = false baseView.setup(self) addSubview(baseView) liquidView.frame = baseView.frame - liquidView.userInteractionEnabled = false + liquidView.isUserInteractionEnabled = false addSubview(liquidView) liquidView.layer.addSublayer(circleLayer) @@ -233,7 +233,7 @@ public class LiquidFloatingActionButton : UIView { plusLayer.frame = circleLayer.bounds } - private func didTapped() { + fileprivate func didTapped() { if isClosed { open() } else { @@ -241,7 +241,7 @@ public class LiquidFloatingActionButton : UIView { } } - public func didTappedCell(target: LiquidFloatingCell) { + open func didTappedCell(_ target: LiquidFloatingCell) { if let _ = dataSource { let cells = cellArray() for i in 0.. ()) { + func translateY(_ layer: CALayer, duration: CFTimeInterval, f: (CABasicAnimation) -> ()) { let translate = CABasicAnimation(keyPath: "transform.translation.y") f(translate) translate.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut) - translate.removedOnCompletion = false + translate.isRemovedOnCompletion = false translate.fillMode = kCAFillModeForwards translate.duration = duration - layer.addAnimation(translate, forKey: "transYAnim") + layer.add(translate, forKey: "transYAnim") } } @@ -276,18 +276,18 @@ class CircleLiquidBaseView : ActionBarBaseView { let openDuration: CGFloat = 0.6 let closeDuration: CGFloat = 0.2 let viscosity: CGFloat = 0.65 - var animateStyle: LiquidFloatingActionButtonAnimateStyle = .Up + var animateStyle: LiquidFloatingActionButtonAnimateStyle = .up var baseLiquid: LiquittableCircle? var engine: SimpleCircleLiquidEngine? var bigEngine: SimpleCircleLiquidEngine? var enableShadow = true - private var openingCells: [LiquidFloatingCell] = [] - private var keyDuration: CGFloat = 0 - private var displayLink: CADisplayLink? + fileprivate var openingCells: [LiquidFloatingCell] = [] + fileprivate var keyDuration: CGFloat = 0 + fileprivate var displayLink: CADisplayLink? - override func setup(actionButton: LiquidFloatingActionButton) { + override func setup(_ actionButton: LiquidFloatingActionButton) { self.frame = actionButton.frame self.center = actionButton.center.minus(actionButton.frame.origin) self.animateStyle = actionButton.animateStyle @@ -306,10 +306,10 @@ class CircleLiquidBaseView : ActionBarBaseView { addSubview(baseLiquid!) } - func open(cells: [LiquidFloatingCell]) { + func open(_ cells: [LiquidFloatingCell]) { stop() displayLink = CADisplayLink(target: self, selector: #selector(CircleLiquidBaseView.didDisplayRefresh)) - displayLink?.addToRunLoop(NSRunLoop.currentRunLoop(), forMode: NSRunLoopCommonModes) + displayLink?.add(to: RunLoop.current, forMode: RunLoopMode.commonModes) opening = true for cell in cells { cell.layer.removeAllAnimations() @@ -318,23 +318,23 @@ class CircleLiquidBaseView : ActionBarBaseView { } } - func close(cells: [LiquidFloatingCell]) { + func close(_ cells: [LiquidFloatingCell]) { stop() opening = false displayLink = CADisplayLink(target: self, selector: #selector(CircleLiquidBaseView.didDisplayRefresh)) - displayLink?.addToRunLoop(NSRunLoop.currentRunLoop(), forMode: NSRunLoopCommonModes) + displayLink?.add(to: RunLoop.current, forMode: RunLoopMode.commonModes) for cell in cells { cell.layer.removeAllAnimations() cell.layer.eraseShadow() openingCells.append(cell) - cell.userInteractionEnabled = false + cell.isUserInteractionEnabled = false } } func didFinishUpdate() { if opening { for cell in openingCells { - cell.userInteractionEnabled = true + cell.isUserInteractionEnabled = true } } else { for cell in openingCells { @@ -343,7 +343,7 @@ class CircleLiquidBaseView : ActionBarBaseView { } } - func update(delay: CGFloat, duration: CGFloat, f: (LiquidFloatingCell, Int, CGFloat) -> ()) { + func update(_ delay: CGFloat, duration: CGFloat, f: (LiquidFloatingCell, Int, CGFloat) -> ()) { if openingCells.isEmpty { return } @@ -401,15 +401,15 @@ class CircleLiquidBaseView : ActionBarBaseView { } } - func differencePoint(distance: CGFloat) -> CGPoint { + func differencePoint(_ distance: CGFloat) -> CGPoint { switch animateStyle { - case .Up: + case .up: return CGPoint(x: 0, y: -distance) - case .Right: + case .right: return CGPoint(x: distance, y: 0) - case .Left: + case .left: return CGPoint(x: -distance, y: 0) - case .Down: + case .down: return CGPoint(x: 0, y: distance) } } @@ -425,7 +425,7 @@ class CircleLiquidBaseView : ActionBarBaseView { displayLink?.invalidate() } - func easeInEaseOut(t: CGFloat) -> CGFloat { + func easeInEaseOut(_ t: CGFloat) -> CGFloat { if t >= 1.0 { return 1.0 } @@ -435,7 +435,7 @@ class CircleLiquidBaseView : ActionBarBaseView { return -1 * t * (t - 2) } - func didDisplayRefresh(displayLink: CADisplayLink) { + func didDisplayRefresh(_ displayLink: CADisplayLink) { if opening { keyDuration += CGFloat(displayLink.duration) updateOpen() @@ -447,18 +447,18 @@ class CircleLiquidBaseView : ActionBarBaseView { } -public class LiquidFloatingCell : LiquittableCircle { +open class LiquidFloatingCell : LiquittableCircle { let internalRatio: CGFloat = 0.75 - public var responsible = true - public var imageView = UIImageView() + open var responsible = true + open var imageView = UIImageView() weak var actionButton: LiquidFloatingActionButton? // for implement responsible color // private var originalColor: UIColor - public override var frame: CGRect { + open override var frame: CGRect { didSet { resizeSubviews() } @@ -486,31 +486,31 @@ public class LiquidFloatingCell : LiquittableCircle { fatalError("init(coder:) has not been implemented") } - func setup(image: UIImage, tintColor: UIColor = UIColor.whiteColor()) { - imageView.image = image.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate) + func setup(_ image: UIImage, tintColor: UIColor = UIColor.white) { + imageView.image = image.withRenderingMode(UIImageRenderingMode.alwaysTemplate) imageView.tintColor = tintColor setupView(imageView) } - public func setupView(view: UIView) { - userInteractionEnabled = false + open func setupView(_ view: UIView) { + isUserInteractionEnabled = false addSubview(view) resizeSubviews() } - private func resizeSubviews() { + fileprivate func resizeSubviews() { let size = CGSize(width: frame.width * 0.5, height: frame.height * 0.5) imageView.frame = CGRect(x: frame.width - frame.width * internalRatio, y: frame.height - frame.height * internalRatio, width: size.width, height: size.height) } - func update(key: CGFloat, open: Bool) { + func update(_ key: CGFloat, open: Bool) { for subview in self.subviews { let ratio = max(2 * (key * key - 0.5), 0) subview.alpha = open ? ratio : -ratio } } - public override func touchesBegan(touches: Set, withEvent event: UIEvent?) { + open override func touchesBegan(_ touches: Set, with event: UIEvent?) { if responsible { // originalColor = color! // color = originalColor.white(0.5) @@ -518,16 +518,16 @@ public class LiquidFloatingCell : LiquittableCircle { } } - public override func touchesCancelled(touches: Set?, withEvent event: UIEvent?) { + open override func touchesCancelled(_ touches: Set, with event: UIEvent?) { if responsible { // color = originalColor setNeedsDisplay() } } - override public func touchesEnded(touches: Set, withEvent event: UIEvent?) { + override open func touchesEnded(_ touches: Set, with event: UIEvent?) { // color = originalColor actionButton?.didTappedCell(self) } -} \ No newline at end of file +} diff --git a/Pod/Classes/LiquidUtil.swift b/Pod/Classes/LiquidUtil.swift index 1eeeacd..1c936e4 100644 --- a/Pod/Classes/LiquidUtil.swift +++ b/Pod/Classes/LiquidUtil.swift @@ -9,16 +9,16 @@ import Foundation import UIKit -func withBezier(f: (UIBezierPath) -> ()) -> UIBezierPath { +func withBezier(_ f: (UIBezierPath) -> ()) -> UIBezierPath { let bezierPath = UIBezierPath() f(bezierPath) - bezierPath.closePath() + bezierPath.close() return bezierPath } extension CALayer { func appendShadow() { - shadowColor = UIColor.blackColor().CGColor + shadowColor = UIColor.black.cgColor shadowRadius = 2.0 shadowOpacity = 0.1 shadowOffset = CGSize(width: 4, height: 4) @@ -27,30 +27,30 @@ extension CALayer { func eraseShadow() { shadowRadius = 0.0 - shadowColor = UIColor.clearColor().CGColor + shadowColor = UIColor.clear.cgColor } } class CGMath { - static func radToDeg(rad: CGFloat) -> CGFloat { + static func radToDeg(_ rad: CGFloat) -> CGFloat { return rad * 180 / CGFloat(M_PI) } - static func degToRad(deg: CGFloat) -> CGFloat { + static func degToRad(_ deg: CGFloat) -> CGFloat { return deg * CGFloat(M_PI) / 180 } - static func circlePoint(center: CGPoint, radius: CGFloat, rad: CGFloat) -> CGPoint { + static func circlePoint(_ center: CGPoint, radius: CGFloat, rad: CGFloat) -> CGPoint { let x = center.x + radius * cos(rad) let y = center.y + radius * sin(rad) return CGPoint(x: x, y: y) } - static func linSpace(from: CGFloat, to: CGFloat, n: Int) -> [CGFloat] { + static func linSpace(_ from: CGFloat, to: CGFloat, n: Int) -> [CGFloat] { var values: [CGFloat] = [] for i in 0.. CAShapeLayer { + func draw(_ path: UIBezierPath) -> CAShapeLayer { circleLayer.lineWidth = 3.0 - circleLayer.fillColor = self.color?.CGColor ?? self.defaultColor.CGColor - circleLayer.path = path.CGPath + circleLayer.fillColor = self.color?.cgColor ?? self.defaultColor.cgColor + circleLayer.path = path.cgPath return circleLayer } - func circlePoint(rad: CGFloat) -> CGPoint { + func circlePoint(_ rad: CGFloat) -> CGPoint { return CGMath.circlePoint(center, radius: radius, rad: rad) } - public override func drawRect(rect: CGRect) { + open override func draw(_ rect: CGRect) { drawCircle() } -} \ No newline at end of file +} diff --git a/Pod/Classes/SimpleCircleLiquidEngine.swift b/Pod/Classes/SimpleCircleLiquidEngine.swift index 94e80cc..37c372e 100644 --- a/Pod/Classes/SimpleCircleLiquidEngine.swift +++ b/Pod/Classes/SimpleCircleLiquidEngine.swift @@ -15,10 +15,11 @@ import UIKit class SimpleCircleLiquidEngine { let radiusThresh: CGFloat - private var layer: CALayer = CAShapeLayer() + fileprivate var layer: CALayer = CAShapeLayer() + var viscosity: CGFloat = 0.65 - var color = UIColor.blueColor() + var color: UIColor = UIColor.blue var angleOpen: CGFloat = 1.0 let ConnectThresh: CGFloat = 0.3 @@ -29,7 +30,7 @@ class SimpleCircleLiquidEngine { self.angleThresh = angleThresh } - func push(circle: LiquittableCircle, other: LiquittableCircle) -> [LiquittableCircle] { + func push(_ circle: LiquittableCircle, other: LiquittableCircle) -> [LiquittableCircle] { if let paths = generateConnectedPath(circle, other: other) { let layers = paths.map(self.constructLayer) layers.each(layer.addSublayer) @@ -38,7 +39,7 @@ class SimpleCircleLiquidEngine { return [] } - func draw(parent: UIView) { + func draw(_ parent: UIView) { parent.layer.addSublayer(layer) } @@ -48,18 +49,18 @@ class SimpleCircleLiquidEngine { layer = CAShapeLayer() } - func constructLayer(path: UIBezierPath) -> CALayer { - let pathBounds = CGPathGetBoundingBox(path.CGPath); + func constructLayer(_ path: UIBezierPath) -> CALayer { + let pathBounds = path.cgPath.boundingBox; let shape = CAShapeLayer() - shape.fillColor = self.color.CGColor - shape.path = path.CGPath + shape.fillColor = self.color.cgColor + shape.path = path.cgPath shape.frame = CGRect(x: 0, y: 0, width: pathBounds.width, height: pathBounds.height) return shape } - private func circleConnectedPoint(circle: LiquittableCircle, other: LiquittableCircle, angle: CGFloat) -> (CGPoint, CGPoint) { + fileprivate func circleConnectedPoint(_ circle: LiquittableCircle, other: LiquittableCircle, angle: CGFloat) -> (CGPoint, CGPoint) { let vec = other.center.minus(circle.center) let radian = atan2(vec.y, vec.x) let p1 = circle.circlePoint(radian + angle) @@ -67,14 +68,14 @@ class SimpleCircleLiquidEngine { return (p1, p2) } - private func circleConnectedPoint(circle: LiquittableCircle, other: LiquittableCircle) -> (CGPoint, CGPoint) { + fileprivate func circleConnectedPoint(_ circle: LiquittableCircle, other: LiquittableCircle) -> (CGPoint, CGPoint) { var ratio = circleRatio(circle, other: other) ratio = (ratio + ConnectThresh) / (1.0 + ConnectThresh) let angle = CGFloat(M_PI_2) * angleOpen * ratio return circleConnectedPoint(circle, other: other, angle: angle) } - func generateConnectedPath(circle: LiquittableCircle, other: LiquittableCircle) -> [UIBezierPath]? { + func generateConnectedPath(_ circle: LiquittableCircle, other: LiquittableCircle) -> [UIBezierPath]? { if isConnected(circle, other: other) { let ratio = circleRatio(circle, other: other) switch ratio { @@ -93,27 +94,27 @@ class SimpleCircleLiquidEngine { } } - private func normalPath(circle: LiquittableCircle, other: LiquittableCircle) -> UIBezierPath? { + fileprivate func normalPath(_ circle: LiquittableCircle, other: LiquittableCircle) -> UIBezierPath? { let (p1, p2) = circleConnectedPoint(circle, other: other) let (p3, p4) = circleConnectedPoint(other, other: circle) if let crossed = CGPoint.intersection(p1, to: p3, from2: p2, to2: p4) { return withBezier { path in let r = self.circleRatio(circle, other: other) - path.moveToPoint(p1) + path.move(to: p1) let r1 = p2.mid(p3) let r2 = p1.mid(p4) let rate = (1 - r) / (1 - self.angleThresh) * self.viscosity let mul = r1.mid(crossed).split(r2, ratio: rate) let mul2 = r2.mid(crossed).split(r1, ratio: rate) - path.addQuadCurveToPoint(p4, controlPoint: mul) - path.addLineToPoint(p3) - path.addQuadCurveToPoint(p2, controlPoint: mul2) + path.addQuadCurve(to: p4, controlPoint: mul) + path.addLine(to: p3) + path.addQuadCurve(to: p2, controlPoint: mul2) } } return nil } - private func splitPath(circle: LiquittableCircle, other: LiquittableCircle, ratio: CGFloat) -> [UIBezierPath] { + fileprivate func splitPath(_ circle: LiquittableCircle, other: LiquittableCircle, ratio: CGFloat) -> [UIBezierPath] { let (p1, p2) = circleConnectedPoint(circle, other: other, angle: CGMath.degToRad(60)) let (p3, p4) = circleConnectedPoint(other, other: circle, angle: CGMath.degToRad(60)) @@ -124,26 +125,26 @@ class SimpleCircleLiquidEngine { let a1 = d2.split(crossed, ratio: (r * r)) let part = withBezier { path in - path.moveToPoint(p1) - path.addQuadCurveToPoint(p2, controlPoint: a1) + path.move(to: p1) + path.addQuadCurve(to: p2, controlPoint: a1) } let a2 = d1.split(crossed, ratio: (r * r)) let part2 = withBezier { path in - path.moveToPoint(p3) - path.addQuadCurveToPoint(p4, controlPoint: a2) + path.move(to: p3) + path.addQuadCurve(to: p4, controlPoint: a2) } return [part, part2] } return [] } - private func circleRatio(circle: LiquittableCircle, other: LiquittableCircle) -> CGFloat { + fileprivate func circleRatio(_ circle: LiquittableCircle, other: LiquittableCircle) -> CGFloat { let distance = other.center.minus(circle.center).length() let ratio = 1.0 - (distance - radiusThresh) / (circle.radius + other.radius + radiusThresh) return min(max(ratio, 0.0), 1.0) } - func isConnected(circle: LiquittableCircle, other: LiquittableCircle) -> Bool { + func isConnected(_ circle: LiquittableCircle, other: LiquittableCircle) -> Bool { let distance = circle.center.minus(other.center).length() return distance - circle.radius - other.radius < radiusThresh } diff --git a/Pod/Classes/UIColorEx.swift b/Pod/Classes/UIColorEx.swift index 33c77f7..06d5773 100644 --- a/Pod/Classes/UIColorEx.swift +++ b/Pod/Classes/UIColorEx.swift @@ -11,43 +11,43 @@ import UIKit extension UIColor { - var red: CGFloat { + var redComponent: CGFloat { get { - let components = CGColorGetComponents(self.CGColor) - return components[0] + let components = self.cgColor.components + return components![0] } } - var green: CGFloat { + var greenComponent: CGFloat { get { - let components = CGColorGetComponents(self.CGColor) - return components[1] + let components = self.cgColor.components + return components![1] } } - var blue: CGFloat { + var blueComponent: CGFloat { get { - let components = CGColorGetComponents(self.CGColor) - return components[2] + let components = self.cgColor.components + return components![2] } } - var alpha: CGFloat { + var alphaComponent: CGFloat { get { - return CGColorGetAlpha(self.CGColor) + return self.cgColor.alpha } } - func alpha(alpha: CGFloat) -> UIColor { - return UIColor(red: self.red, green: self.green, blue: self.blue, alpha: alpha) + func alphaTransform(_ alpha: CGFloat) -> UIColor { + return UIColor(red: self.redComponent, green: self.greenComponent, blue: self.blueComponent, alpha: alpha) } - func white(scale: CGFloat) -> UIColor { + func whiteTransform(_ scale: CGFloat) -> UIColor { return UIColor( - red: self.red + (1.0 - self.red) * scale, - green: self.green + (1.0 - self.green) * scale, - blue: self.blue + (1.0 - self.blue) * scale, + red: self.redComponent + (1.0 - self.redComponent) * scale, + green: self.greenComponent + (1.0 - self.greenComponent) * scale, + blue: self.blueComponent + (1.0 - self.blueComponent) * scale, alpha: 1.0 ) } -} \ No newline at end of file +} From 1df2109bdae391ecec1361f386f2a0c6a837a80f Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Tue, 20 Sep 2016 20:18:59 -0500 Subject: [PATCH 30/31] updated snapkit dependency to swift 3 --- Example/Podfile.lock | 8 +- .../LiquidFloatingActionButton.podspec.json | 4 +- Example/Pods/Manifest.lock | 8 +- Example/Pods/Pods.xcodeproj/project.pbxproj | 3874 +++++++++++++---- Example/Pods/SnapKit/README.md | 110 +- Example/Pods/SnapKit/Source/Constraint.swift | 612 +-- .../SnapKit/Source/ConstraintAttributes.swift | 162 +- .../Source/ConstraintDescription.swift | 631 +-- .../Pods/SnapKit/Source/ConstraintItem.swift | 53 +- .../Pods/SnapKit/Source/ConstraintMaker.swift | 234 +- .../SnapKit/Source/ConstraintRelation.swift | 22 +- Example/Pods/SnapKit/Source/Debugging.swift | 166 +- Example/Pods/SnapKit/Source/EdgeInsets.swift | 38 - .../SnapKit/Source/LayoutConstraint.swift | 52 +- Example/Pods/SnapKit/Source/SnapKit.swift | 42 - .../Pods/SnapKit/Source/View+SnapKit.swift | 183 - .../Source/ViewController+SnapKit.swift | 45 - .../LiquidFloatingActionButton/Info.plist | 2 +- .../Target Support Files/SnapKit/Info.plist | 2 +- 19 files changed, 3575 insertions(+), 2673 deletions(-) delete mode 100644 Example/Pods/SnapKit/Source/EdgeInsets.swift delete mode 100644 Example/Pods/SnapKit/Source/SnapKit.swift delete mode 100644 Example/Pods/SnapKit/Source/View+SnapKit.swift delete mode 100644 Example/Pods/SnapKit/Source/ViewController+SnapKit.swift diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 36b8184..89cc06f 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -1,6 +1,6 @@ PODS: - - LiquidFloatingActionButton (0.1.1) - - SnapKit (0.21.0) + - LiquidFloatingActionButton (0.2.0) + - SnapKit (3.0.1) DEPENDENCIES: - LiquidFloatingActionButton (from `../`) @@ -11,8 +11,8 @@ EXTERNAL SOURCES: :path: ../ SPEC CHECKSUMS: - LiquidFloatingActionButton: 1e13ddd113b18b953e80eed95adf64d2c0433815 - SnapKit: 2756fe24b706367af224c9c508d2f9166d03354c + LiquidFloatingActionButton: 29795cd474e42f44766f0d7073d573442cb989a8 + SnapKit: f818b8326d45b4e1c777d0ab27b5c0a3624bfdeb PODFILE CHECKSUM: d32e84aa2d52a9e8dbba10e8de937cda2a823e0d diff --git a/Example/Pods/Local Podspecs/LiquidFloatingActionButton.podspec.json b/Example/Pods/Local Podspecs/LiquidFloatingActionButton.podspec.json index 6241eaf..69d48c2 100644 --- a/Example/Pods/Local Podspecs/LiquidFloatingActionButton.podspec.json +++ b/Example/Pods/Local Podspecs/LiquidFloatingActionButton.podspec.json @@ -1,6 +1,6 @@ { "name": "LiquidFloatingActionButton", - "version": "0.1.1", + "version": "0.2.0", "summary": "Material Design Floating Action Button in liquid state", "description": "Material Design Floating Action Button in liquid state inspired by http://www.materialup.com/posts/material-in-a-liquid-state\nForked from: https://github.com/yoavlt/LiquidFloatingActionButton", "homepage": "https://github.com/shotaroikeda/LiquidFloatingActionButton", @@ -10,7 +10,7 @@ }, "source": { "git": "https://github.com/shotaroikeda/LiquidFloatingActionButton.git", - "tag": "0.1.1" + "tag": "0.2.0" }, "platforms": { "ios": "8.0" diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index 36b8184..89cc06f 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -1,6 +1,6 @@ PODS: - - LiquidFloatingActionButton (0.1.1) - - SnapKit (0.21.0) + - LiquidFloatingActionButton (0.2.0) + - SnapKit (3.0.1) DEPENDENCIES: - LiquidFloatingActionButton (from `../`) @@ -11,8 +11,8 @@ EXTERNAL SOURCES: :path: ../ SPEC CHECKSUMS: - LiquidFloatingActionButton: 1e13ddd113b18b953e80eed95adf64d2c0433815 - SnapKit: 2756fe24b706367af224c9c508d2f9166d03354c + LiquidFloatingActionButton: 29795cd474e42f44766f0d7073d573442cb989a8 + SnapKit: f818b8326d45b4e1c777d0ab27b5c0a3624bfdeb PODFILE CHECKSUM: d32e84aa2d52a9e8dbba10e8de937cda2a823e0d diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index 2da25e4..309fe1c 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -1,966 +1,2908 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 03793F206785B9D2BA06A5435E20AE0C /* ConstraintDescription.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3061A45F7542E986BCB23EBBD8AD4A13 /* ConstraintDescription.swift */; }; - 03D37CD9914A34403CA5E7773D42702F /* Pods-LiquidFloatingActionButton_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 15F42031AA343001A7E2C8D3D69C9DE2 /* Pods-LiquidFloatingActionButton_Example-dummy.m */; }; - 03F2B6FBFE5D55E34D7E5C88DE1CDA7B /* ConstraintAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEFB846E6A499B21514C1E298F56DE3B /* ConstraintAttributes.swift */; }; - 13C1A007BB18BD47FF80F8BAFA7C1589 /* View+SnapKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55BB547CA6D4862CCE70A4B51F1EABAE /* View+SnapKit.swift */; }; - 159EE4B496A34DD8AB3D288DAAE91542 /* SnapKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EA1CFBED61FB63BBC905CD3AFEE402C /* SnapKit.swift */; }; - 222D303213262931EA317A1E0F6BAB38 /* UIColorEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8D96BACF73B0930447045AF580F1F64 /* UIColorEx.swift */; }; - 3D41203B7B3855EA27D3E987D3EEB224 /* ArrayEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CAC4A98C58F1EBAF09C8E193E73E985 /* ArrayEx.swift */; }; - 40E154929C97169FF28608F168BAA648 /* Pods-LiquidFloatingActionButton_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A4A759ED5E8ED2278F9D307ABD11FC5 /* Pods-LiquidFloatingActionButton_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 42358D3ECCE5C55DBB5C84DB7CF83577 /* SnapKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 17ED37A4D4337C9AC445D07BA9E09051 /* SnapKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4C19ED4C22D6B9808195702DB3990008 /* Pods-LiquidFloatingActionButton_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 97232F629F7FC2174E1BE76D76737706 /* Pods-LiquidFloatingActionButton_Tests-dummy.m */; }; - 4CFF5A03EEC8466E2BB0A2CB1118C7CD /* ConstraintRelation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 92DD83C2BF9A16815558CBFACD79C938 /* ConstraintRelation.swift */; }; - 58625CE525EE7061B6D9931CFD0FD75C /* EdgeInsets.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7C496DA4CA3F61B29BB063F74876C70 /* EdgeInsets.swift */; }; - 5D47B5F7F9B93DB896CFAEDA03CCB522 /* LiquidFloatingActionButton-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 58C7159C06470D006C424DDC8A1A60EB /* LiquidFloatingActionButton-dummy.m */; }; - 6061324BD591EA79B018F2F1871A02C3 /* ConstraintItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = E7ED5648C0C88C2BBB8B1737D3C811DF /* ConstraintItem.swift */; }; - 6E328286AD7C502EA27A22A48B46157C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; - 70A374969C87173198D8D4B6111ECB6E /* LiquittableCircle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BAF44DB2E216127955F1E0FEF8213369 /* LiquittableCircle.swift */; }; - 7E538EF481F898874DF94F0F8CBC5D2C /* LiquidFloatingActionButton-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 824CA79EC009B18484863834998CC017 /* LiquidFloatingActionButton-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8D10C418C90EE34F5BA2C22019612D80 /* CGRectEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BEAD485B9DC8B38EBDE94D6A091FDB6 /* CGRectEx.swift */; }; - 903FE6138690401881CED819779A73AC /* CGPointEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 369689EDAB3FAFC4E5BB39A93321BBFC /* CGPointEx.swift */; }; - 95EFB8B2404A882E9DD5F0BF57EB7B2A /* Debugging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 415D45FAC3D162C8D3F9CFE592F79E42 /* Debugging.swift */; }; - 9839FC7BD136D98C4786DB72E56B3E5F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; - 9EEF0CC5FA1CC69D84773F08923C3284 /* LayoutConstraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = B869919EAC3B1E5EF05B0107B595C13C /* LayoutConstraint.swift */; }; - B21BD823B02D2B87FD9189869502FCD5 /* LiquidFloatingActionButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83AC495A087C2EAF9CAAC87835CAA680 /* LiquidFloatingActionButton.swift */; }; - B26546EC79C56C181B6A6BFA7A36CD56 /* ViewController+SnapKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A877C5C14A8B495ECAB69BE839FFA44 /* ViewController+SnapKit.swift */; }; - B4BFAED2D1CBD8A95C1B7F00F33D94AA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; - B909B243517B8B78112F067A6344B430 /* SnapKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 079E5EE3CDB090004C84E658BC83AEB7 /* SnapKit-dummy.m */; }; - C608DC8CB9DB303EB691EA97867E213E /* ConstraintMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = A03EFFB295211A70F01FAD48D41DF5F3 /* ConstraintMaker.swift */; }; - CB9BE415254E64439620E55C08536186 /* SimpleCircleLiquidEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3B69218901BE4E025D721BBC5CC763A /* SimpleCircleLiquidEngine.swift */; }; - EAC4522ECD9EDE06632C34321215099E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; - EAEFA188CC103359C4AE68AC11F8A844 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FD568EC2ADE52671E9F40F5B7FE5D901 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - F3F6F5C49B085A707AB2C67E1030AF76 /* Constraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9C745F502C842A223464EC61885F02BB /* Constraint.swift */; }; - FB4B87C1866264B4C63C18C6D89EC703 /* LiquidUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = D691EE87C404B7D086624B5801982F43 /* LiquidUtil.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 10B0CFDA9E4883AADDB4595153399A95 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4BCE15B65BE1423E31A139A48360119E; - remoteInfo = LiquidFloatingActionButton; - }; - 5925C73B578B569902B6E043D675652A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 4BCE15B65BE1423E31A139A48360119E; - remoteInfo = LiquidFloatingActionButton; - }; - F37E0413588FEF57B185C90A28936627 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 387CBFD0CECEC9E8DA816C353D8AA44B; - remoteInfo = SnapKit; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 050B0D0CB0787BEA95A638CEB77D19BC /* LiquidFloatingActionButton.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LiquidFloatingActionButton.xcconfig; sourceTree = ""; }; - 079E5EE3CDB090004C84E658BC83AEB7 /* SnapKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SnapKit-dummy.m"; sourceTree = ""; }; - 15C6FC5FD383058121E6098617B98C67 /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LiquidFloatingActionButton_Example.debug.xcconfig"; sourceTree = ""; }; - 15F42031AA343001A7E2C8D3D69C9DE2 /* Pods-LiquidFloatingActionButton_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-LiquidFloatingActionButton_Example-dummy.m"; sourceTree = ""; }; - 17ED37A4D4337C9AC445D07BA9E09051 /* SnapKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SnapKit-umbrella.h"; sourceTree = ""; }; - 1A4A759ED5E8ED2278F9D307ABD11FC5 /* Pods-LiquidFloatingActionButton_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-LiquidFloatingActionButton_Example-umbrella.h"; sourceTree = ""; }; - 1A877C5C14A8B495ECAB69BE839FFA44 /* ViewController+SnapKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ViewController+SnapKit.swift"; path = "Source/ViewController+SnapKit.swift"; sourceTree = ""; }; - 1C56ABE3696B5A7C30A744B23F17B774 /* Pods_LiquidFloatingActionButton_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LiquidFloatingActionButton_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 1EA1CFBED61FB63BBC905CD3AFEE402C /* SnapKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SnapKit.swift; path = Source/SnapKit.swift; sourceTree = ""; }; - 3061A45F7542E986BCB23EBBD8AD4A13 /* ConstraintDescription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDescription.swift; path = Source/ConstraintDescription.swift; sourceTree = ""; }; - 32A2AF2E2F4B1499E450931CC0CAD202 /* Pods-LiquidFloatingActionButton_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-LiquidFloatingActionButton_Example.modulemap"; sourceTree = ""; }; - 34A4795691704A615AA138BF95042DC5 /* Pods-LiquidFloatingActionButton_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-LiquidFloatingActionButton_Example-acknowledgements.markdown"; sourceTree = ""; }; - 369689EDAB3FAFC4E5BB39A93321BBFC /* CGPointEx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CGPointEx.swift; sourceTree = ""; }; - 37A83F173235565EDE9A076A15250F07 /* Pods-LiquidFloatingActionButton_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LiquidFloatingActionButton_Example-resources.sh"; sourceTree = ""; }; - 415D45FAC3D162C8D3F9CFE592F79E42 /* Debugging.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Debugging.swift; path = Source/Debugging.swift; sourceTree = ""; }; - 495929FB6F57FC07CF2233838AD92579 /* SnapKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SnapKit-prefix.pch"; sourceTree = ""; }; - 4EB840C0FCFA128ECC2A9B932415D6A8 /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LiquidFloatingActionButton_Example.release.xcconfig"; sourceTree = ""; }; - 55BB547CA6D4862CCE70A4B51F1EABAE /* View+SnapKit.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "View+SnapKit.swift"; path = "Source/View+SnapKit.swift"; sourceTree = ""; }; - 56B1FCA085C2AC4CDCEB52E3588F26EB /* SnapKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = SnapKit.modulemap; sourceTree = ""; }; - 58C7159C06470D006C424DDC8A1A60EB /* LiquidFloatingActionButton-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LiquidFloatingActionButton-dummy.m"; sourceTree = ""; }; - 5B850A0AE5BE721D248F258FB455C96E /* LiquidFloatingActionButton-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LiquidFloatingActionButton-prefix.pch"; sourceTree = ""; }; - 63AA079CA68C8594DE2EFCEECD70391B /* Pods-LiquidFloatingActionButton_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-LiquidFloatingActionButton_Tests-acknowledgements.plist"; sourceTree = ""; }; - 6BEAD485B9DC8B38EBDE94D6A091FDB6 /* CGRectEx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CGRectEx.swift; sourceTree = ""; }; - 70722508FEFCEA523F7B8F66D9DDF4F5 /* LiquidFloatingActionButton.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = LiquidFloatingActionButton.modulemap; sourceTree = ""; }; - 70791619EB473F8BD49DC7B26F2768A0 /* Pods_LiquidFloatingActionButton_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LiquidFloatingActionButton_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7BD5E598A90E9B5D7F5BE26DD5C7B6D6 /* Pods-LiquidFloatingActionButton_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LiquidFloatingActionButton_Tests-resources.sh"; sourceTree = ""; }; - 824CA79EC009B18484863834998CC017 /* LiquidFloatingActionButton-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LiquidFloatingActionButton-umbrella.h"; sourceTree = ""; }; - 82BC29399E8CB5DE4082F0C18B2BA3DC /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 83AC495A087C2EAF9CAAC87835CAA680 /* LiquidFloatingActionButton.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiquidFloatingActionButton.swift; sourceTree = ""; }; - 8CAC4A98C58F1EBAF09C8E193E73E985 /* ArrayEx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ArrayEx.swift; sourceTree = ""; }; - 8DB80E76EE113421A98CB8EE23DE90D4 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8EF67744D713AB87F9A34356FCB4C593 /* Pods-LiquidFloatingActionButton_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-LiquidFloatingActionButton_Tests.modulemap"; sourceTree = ""; }; - 90D8599FCFCA98DB19D3DE0AD81D9CD6 /* SnapKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SnapKit.xcconfig; sourceTree = ""; }; - 9231BEA6AC185B3FCBFD27ACB63CD892 /* LiquidFloatingActionButton.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LiquidFloatingActionButton.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 92DD83C2BF9A16815558CBFACD79C938 /* ConstraintRelation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintRelation.swift; path = Source/ConstraintRelation.swift; sourceTree = ""; }; - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 96F405472686341EFEEAB4A3B7E44B87 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 97232F629F7FC2174E1BE76D76737706 /* Pods-LiquidFloatingActionButton_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-LiquidFloatingActionButton_Tests-dummy.m"; sourceTree = ""; }; - 9B73872B15E9C56304335676CC951C90 /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LiquidFloatingActionButton_Tests.debug.xcconfig"; sourceTree = ""; }; - 9C745F502C842A223464EC61885F02BB /* Constraint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constraint.swift; path = Source/Constraint.swift; sourceTree = ""; }; - A03EFFB295211A70F01FAD48D41DF5F3 /* ConstraintMaker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMaker.swift; path = Source/ConstraintMaker.swift; sourceTree = ""; }; - A206D3FB01DAFF8C15F21FB01DFFCE5C /* Pods-LiquidFloatingActionButton_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LiquidFloatingActionButton_Example-frameworks.sh"; sourceTree = ""; }; - A7C496DA4CA3F61B29BB063F74876C70 /* EdgeInsets.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = EdgeInsets.swift; path = Source/EdgeInsets.swift; sourceTree = ""; }; - A804ABA92EC1DA52844E140917F08DF4 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - A8D96BACF73B0930447045AF580F1F64 /* UIColorEx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIColorEx.swift; sourceTree = ""; }; - AA63D17174A63F13D3434AAB04CB95CD /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LiquidFloatingActionButton_Tests.release.xcconfig"; sourceTree = ""; }; - B80DBE465AE8ED339A23BA7027E83E9C /* Pods-LiquidFloatingActionButton_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-LiquidFloatingActionButton_Example-acknowledgements.plist"; sourceTree = ""; }; - B869919EAC3B1E5EF05B0107B595C13C /* LayoutConstraint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LayoutConstraint.swift; path = Source/LayoutConstraint.swift; sourceTree = ""; }; - BAF44DB2E216127955F1E0FEF8213369 /* LiquittableCircle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiquittableCircle.swift; sourceTree = ""; }; - C113B9855019081B47BCB0011553CB7B /* SnapKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SnapKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - D2E296184E24EBA83C604214BE7B30AF /* Pods-LiquidFloatingActionButton_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-LiquidFloatingActionButton_Tests-acknowledgements.markdown"; sourceTree = ""; }; - D691EE87C404B7D086624B5801982F43 /* LiquidUtil.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiquidUtil.swift; sourceTree = ""; }; - DEFB846E6A499B21514C1E298F56DE3B /* ConstraintAttributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintAttributes.swift; path = Source/ConstraintAttributes.swift; sourceTree = ""; }; - E365F5D85C8B589E45B7CA5165A49929 /* Pods-LiquidFloatingActionButton_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LiquidFloatingActionButton_Tests-frameworks.sh"; sourceTree = ""; }; - E3B69218901BE4E025D721BBC5CC763A /* SimpleCircleLiquidEngine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SimpleCircleLiquidEngine.swift; sourceTree = ""; }; - E7ED5648C0C88C2BBB8B1737D3C811DF /* ConstraintItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintItem.swift; path = Source/ConstraintItem.swift; sourceTree = ""; }; - FD568EC2ADE52671E9F40F5B7FE5D901 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-LiquidFloatingActionButton_Tests-umbrella.h"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 614F0F65B18E3F7F4566838C2466DDF4 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - B4BFAED2D1CBD8A95C1B7F00F33D94AA /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 618F63A95B22676C4FA61F86A5AB3136 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 9839FC7BD136D98C4786DB72E56B3E5F /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 68F6EC99D6740686C4802F2C69A003BA /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - EAC4522ECD9EDE06632C34321215099E /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7DA469E70D4B27EE88D987E16A14CA0B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 6E328286AD7C502EA27A22A48B46157C /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 2B483F03EA79C3C9DDEEF7DB0181AFC0 /* Development Pods */ = { - isa = PBXGroup; - children = ( - AE2F18FBC8136A267123CC803D2C583B /* LiquidFloatingActionButton */, - ); - name = "Development Pods"; - sourceTree = ""; - }; - 3DCAB2B7CDE207B3958B6CB957FCC758 /* iOS */ = { - isa = PBXGroup; - children = ( - CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */, - ); - name = iOS; - sourceTree = ""; - }; - 5D0D78B2AEA5286AA98D3198C9653619 /* Products */ = { - isa = PBXGroup; - children = ( - 9231BEA6AC185B3FCBFD27ACB63CD892 /* LiquidFloatingActionButton.framework */, - 1C56ABE3696B5A7C30A744B23F17B774 /* Pods_LiquidFloatingActionButton_Example.framework */, - 70791619EB473F8BD49DC7B26F2768A0 /* Pods_LiquidFloatingActionButton_Tests.framework */, - C113B9855019081B47BCB0011553CB7B /* SnapKit.framework */, - ); - name = Products; - sourceTree = ""; - }; - 7A30ADABC44CCA0D9BC282B82A6F71FB /* Support Files */ = { - isa = PBXGroup; - children = ( - A804ABA92EC1DA52844E140917F08DF4 /* Info.plist */, - 56B1FCA085C2AC4CDCEB52E3588F26EB /* SnapKit.modulemap */, - 90D8599FCFCA98DB19D3DE0AD81D9CD6 /* SnapKit.xcconfig */, - 079E5EE3CDB090004C84E658BC83AEB7 /* SnapKit-dummy.m */, - 495929FB6F57FC07CF2233838AD92579 /* SnapKit-prefix.pch */, - 17ED37A4D4337C9AC445D07BA9E09051 /* SnapKit-umbrella.h */, - ); - name = "Support Files"; - path = "../Target Support Files/SnapKit"; - sourceTree = ""; - }; - 7DB346D0F39D3F0E887471402A8071AB = { - isa = PBXGroup; - children = ( - 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, - 2B483F03EA79C3C9DDEEF7DB0181AFC0 /* Development Pods */, - BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, - AAD880A40C1D678CA44C4575218EDE0E /* Pods */, - 5D0D78B2AEA5286AA98D3198C9653619 /* Products */, - F4BDFB4BCFC42C98938E70B06FC40921 /* Targets Support Files */, - ); - sourceTree = ""; - }; - 80DA2BFE26A78E748CCDAD5FE668A48C /* Classes */ = { - isa = PBXGroup; - children = ( - 8CAC4A98C58F1EBAF09C8E193E73E985 /* ArrayEx.swift */, - 369689EDAB3FAFC4E5BB39A93321BBFC /* CGPointEx.swift */, - 6BEAD485B9DC8B38EBDE94D6A091FDB6 /* CGRectEx.swift */, - 83AC495A087C2EAF9CAAC87835CAA680 /* LiquidFloatingActionButton.swift */, - D691EE87C404B7D086624B5801982F43 /* LiquidUtil.swift */, - BAF44DB2E216127955F1E0FEF8213369 /* LiquittableCircle.swift */, - E3B69218901BE4E025D721BBC5CC763A /* SimpleCircleLiquidEngine.swift */, - A8D96BACF73B0930447045AF580F1F64 /* UIColorEx.swift */, - ); - path = Classes; - sourceTree = ""; - }; - AAD880A40C1D678CA44C4575218EDE0E /* Pods */ = { - isa = PBXGroup; - children = ( - B3254E0B2B4708A89CF556DF239CDBA9 /* SnapKit */, - ); - name = Pods; - sourceTree = ""; - }; - AE2F18FBC8136A267123CC803D2C583B /* LiquidFloatingActionButton */ = { - isa = PBXGroup; - children = ( - F49E6C75BCE430958DB1CC52D1914458 /* Pod */, - D401308214B3B3372E1C579337305FF5 /* Support Files */, - ); - name = LiquidFloatingActionButton; - path = ../..; - sourceTree = ""; - }; - B3254E0B2B4708A89CF556DF239CDBA9 /* SnapKit */ = { - isa = PBXGroup; - children = ( - 9C745F502C842A223464EC61885F02BB /* Constraint.swift */, - DEFB846E6A499B21514C1E298F56DE3B /* ConstraintAttributes.swift */, - 3061A45F7542E986BCB23EBBD8AD4A13 /* ConstraintDescription.swift */, - E7ED5648C0C88C2BBB8B1737D3C811DF /* ConstraintItem.swift */, - A03EFFB295211A70F01FAD48D41DF5F3 /* ConstraintMaker.swift */, - 92DD83C2BF9A16815558CBFACD79C938 /* ConstraintRelation.swift */, - 415D45FAC3D162C8D3F9CFE592F79E42 /* Debugging.swift */, - A7C496DA4CA3F61B29BB063F74876C70 /* EdgeInsets.swift */, - B869919EAC3B1E5EF05B0107B595C13C /* LayoutConstraint.swift */, - 1EA1CFBED61FB63BBC905CD3AFEE402C /* SnapKit.swift */, - 55BB547CA6D4862CCE70A4B51F1EABAE /* View+SnapKit.swift */, - 1A877C5C14A8B495ECAB69BE839FFA44 /* ViewController+SnapKit.swift */, - 7A30ADABC44CCA0D9BC282B82A6F71FB /* Support Files */, - ); - path = SnapKit; - sourceTree = ""; - }; - BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { - isa = PBXGroup; - children = ( - 3DCAB2B7CDE207B3958B6CB957FCC758 /* iOS */, - ); - name = Frameworks; - sourceTree = ""; - }; - D401308214B3B3372E1C579337305FF5 /* Support Files */ = { - isa = PBXGroup; - children = ( - 82BC29399E8CB5DE4082F0C18B2BA3DC /* Info.plist */, - 70722508FEFCEA523F7B8F66D9DDF4F5 /* LiquidFloatingActionButton.modulemap */, - 050B0D0CB0787BEA95A638CEB77D19BC /* LiquidFloatingActionButton.xcconfig */, - 58C7159C06470D006C424DDC8A1A60EB /* LiquidFloatingActionButton-dummy.m */, - 5B850A0AE5BE721D248F258FB455C96E /* LiquidFloatingActionButton-prefix.pch */, - 824CA79EC009B18484863834998CC017 /* LiquidFloatingActionButton-umbrella.h */, - ); - name = "Support Files"; - path = "Example/Pods/Target Support Files/LiquidFloatingActionButton"; - sourceTree = ""; - }; - D6E0DF24DD4243EB00821C0996A56027 /* Pods-LiquidFloatingActionButton_Example */ = { - isa = PBXGroup; - children = ( - 96F405472686341EFEEAB4A3B7E44B87 /* Info.plist */, - 32A2AF2E2F4B1499E450931CC0CAD202 /* Pods-LiquidFloatingActionButton_Example.modulemap */, - 34A4795691704A615AA138BF95042DC5 /* Pods-LiquidFloatingActionButton_Example-acknowledgements.markdown */, - B80DBE465AE8ED339A23BA7027E83E9C /* Pods-LiquidFloatingActionButton_Example-acknowledgements.plist */, - 15F42031AA343001A7E2C8D3D69C9DE2 /* Pods-LiquidFloatingActionButton_Example-dummy.m */, - A206D3FB01DAFF8C15F21FB01DFFCE5C /* Pods-LiquidFloatingActionButton_Example-frameworks.sh */, - 37A83F173235565EDE9A076A15250F07 /* Pods-LiquidFloatingActionButton_Example-resources.sh */, - 1A4A759ED5E8ED2278F9D307ABD11FC5 /* Pods-LiquidFloatingActionButton_Example-umbrella.h */, - 15C6FC5FD383058121E6098617B98C67 /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */, - 4EB840C0FCFA128ECC2A9B932415D6A8 /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */, - ); - name = "Pods-LiquidFloatingActionButton_Example"; - path = "Target Support Files/Pods-LiquidFloatingActionButton_Example"; - sourceTree = ""; - }; - E05C697D61064335D42A08CC9BD13553 /* Pods-LiquidFloatingActionButton_Tests */ = { - isa = PBXGroup; - children = ( - 8DB80E76EE113421A98CB8EE23DE90D4 /* Info.plist */, - 8EF67744D713AB87F9A34356FCB4C593 /* Pods-LiquidFloatingActionButton_Tests.modulemap */, - D2E296184E24EBA83C604214BE7B30AF /* Pods-LiquidFloatingActionButton_Tests-acknowledgements.markdown */, - 63AA079CA68C8594DE2EFCEECD70391B /* Pods-LiquidFloatingActionButton_Tests-acknowledgements.plist */, - 97232F629F7FC2174E1BE76D76737706 /* Pods-LiquidFloatingActionButton_Tests-dummy.m */, - E365F5D85C8B589E45B7CA5165A49929 /* Pods-LiquidFloatingActionButton_Tests-frameworks.sh */, - 7BD5E598A90E9B5D7F5BE26DD5C7B6D6 /* Pods-LiquidFloatingActionButton_Tests-resources.sh */, - FD568EC2ADE52671E9F40F5B7FE5D901 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h */, - 9B73872B15E9C56304335676CC951C90 /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */, - AA63D17174A63F13D3434AAB04CB95CD /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */, - ); - name = "Pods-LiquidFloatingActionButton_Tests"; - path = "Target Support Files/Pods-LiquidFloatingActionButton_Tests"; - sourceTree = ""; - }; - F49E6C75BCE430958DB1CC52D1914458 /* Pod */ = { - isa = PBXGroup; - children = ( - 80DA2BFE26A78E748CCDAD5FE668A48C /* Classes */, - ); - path = Pod; - sourceTree = ""; - }; - F4BDFB4BCFC42C98938E70B06FC40921 /* Targets Support Files */ = { - isa = PBXGroup; - children = ( - D6E0DF24DD4243EB00821C0996A56027 /* Pods-LiquidFloatingActionButton_Example */, - E05C697D61064335D42A08CC9BD13553 /* Pods-LiquidFloatingActionButton_Tests */, - ); - name = "Targets Support Files"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 0B5E5C8758ACA9EBFD5F7E2AA6E8479A /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - EAEFA188CC103359C4AE68AC11F8A844 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 260679D455A5673E37DC64A285D035D0 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 7E538EF481F898874DF94F0F8CBC5D2C /* LiquidFloatingActionButton-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 9BA657C14DCF4133528472C8E44F67CD /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 40E154929C97169FF28608F168BAA648 /* Pods-LiquidFloatingActionButton_Example-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - C5453DEA4A21F19419F29DFDB5DFC00E /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 42358D3ECCE5C55DBB5C84DB7CF83577 /* SnapKit-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 0ED0A08396CBAD914DE4379BCF7E585E /* Pods-LiquidFloatingActionButton_Tests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4BBD76F68E67BC09C08CB14FFF4EA906 /* Build configuration list for PBXNativeTarget "Pods-LiquidFloatingActionButton_Tests" */; - buildPhases = ( - 66EC92D768733C8D9DBB4FD857FA4B06 /* Sources */, - 7DA469E70D4B27EE88D987E16A14CA0B /* Frameworks */, - 0B5E5C8758ACA9EBFD5F7E2AA6E8479A /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - E6929EACFC78DC2D512F1CACAB42D81A /* PBXTargetDependency */, - ); - name = "Pods-LiquidFloatingActionButton_Tests"; - productName = "Pods-LiquidFloatingActionButton_Tests"; - productReference = 70791619EB473F8BD49DC7B26F2768A0 /* Pods_LiquidFloatingActionButton_Tests.framework */; - productType = "com.apple.product-type.framework"; - }; - 387CBFD0CECEC9E8DA816C353D8AA44B /* SnapKit */ = { - isa = PBXNativeTarget; - buildConfigurationList = 47881458D9A4FBFCF836AE674D3268E5 /* Build configuration list for PBXNativeTarget "SnapKit" */; - buildPhases = ( - 59AF0DFA288CFB3CB396C4722C8CDFD0 /* Sources */, - 614F0F65B18E3F7F4566838C2466DDF4 /* Frameworks */, - C5453DEA4A21F19419F29DFDB5DFC00E /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SnapKit; - productName = SnapKit; - productReference = C113B9855019081B47BCB0011553CB7B /* SnapKit.framework */; - productType = "com.apple.product-type.framework"; - }; - 4BCE15B65BE1423E31A139A48360119E /* LiquidFloatingActionButton */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1EC12321BB0A0C22B6A6BE639A9983F3 /* Build configuration list for PBXNativeTarget "LiquidFloatingActionButton" */; - buildPhases = ( - 8749C03AAA14097B43EAADA1E8600D74 /* Sources */, - 68F6EC99D6740686C4802F2C69A003BA /* Frameworks */, - 260679D455A5673E37DC64A285D035D0 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = LiquidFloatingActionButton; - productName = LiquidFloatingActionButton; - productReference = 9231BEA6AC185B3FCBFD27ACB63CD892 /* LiquidFloatingActionButton.framework */; - productType = "com.apple.product-type.framework"; - }; - F7C1C7995CD2F101DD63DDC91BAABAA9 /* Pods-LiquidFloatingActionButton_Example */ = { - isa = PBXNativeTarget; - buildConfigurationList = 974C53BD384AA0C93E683E5246B81AF3 /* Build configuration list for PBXNativeTarget "Pods-LiquidFloatingActionButton_Example" */; - buildPhases = ( - 07AC5B339761C60E4C8735BC1C4F5E84 /* Sources */, - 618F63A95B22676C4FA61F86A5AB3136 /* Frameworks */, - 9BA657C14DCF4133528472C8E44F67CD /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - 94616D549170E6823044A6E5E95F9E86 /* PBXTargetDependency */, - 68B1870B4B682D119A8F8E735AEB1AA7 /* PBXTargetDependency */, - ); - name = "Pods-LiquidFloatingActionButton_Example"; - productName = "Pods-LiquidFloatingActionButton_Example"; - productReference = 1C56ABE3696B5A7C30A744B23F17B774 /* Pods_LiquidFloatingActionButton_Example.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0730; - LastUpgradeCheck = 0700; - TargetAttributes = { - 0ED0A08396CBAD914DE4379BCF7E585E = { - LastSwiftMigration = 0800; - }; - 387CBFD0CECEC9E8DA816C353D8AA44B = { - LastSwiftMigration = 0800; - }; - 4BCE15B65BE1423E31A139A48360119E = { - LastSwiftMigration = 0800; - }; - F7C1C7995CD2F101DD63DDC91BAABAA9 = { - LastSwiftMigration = 0800; - }; - }; - }; - buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 7DB346D0F39D3F0E887471402A8071AB; - productRefGroup = 5D0D78B2AEA5286AA98D3198C9653619 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 4BCE15B65BE1423E31A139A48360119E /* LiquidFloatingActionButton */, - F7C1C7995CD2F101DD63DDC91BAABAA9 /* Pods-LiquidFloatingActionButton_Example */, - 0ED0A08396CBAD914DE4379BCF7E585E /* Pods-LiquidFloatingActionButton_Tests */, - 387CBFD0CECEC9E8DA816C353D8AA44B /* SnapKit */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 07AC5B339761C60E4C8735BC1C4F5E84 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 03D37CD9914A34403CA5E7773D42702F /* Pods-LiquidFloatingActionButton_Example-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 59AF0DFA288CFB3CB396C4722C8CDFD0 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F3F6F5C49B085A707AB2C67E1030AF76 /* Constraint.swift in Sources */, - 03F2B6FBFE5D55E34D7E5C88DE1CDA7B /* ConstraintAttributes.swift in Sources */, - 03793F206785B9D2BA06A5435E20AE0C /* ConstraintDescription.swift in Sources */, - 6061324BD591EA79B018F2F1871A02C3 /* ConstraintItem.swift in Sources */, - C608DC8CB9DB303EB691EA97867E213E /* ConstraintMaker.swift in Sources */, - 4CFF5A03EEC8466E2BB0A2CB1118C7CD /* ConstraintRelation.swift in Sources */, - 95EFB8B2404A882E9DD5F0BF57EB7B2A /* Debugging.swift in Sources */, - 58625CE525EE7061B6D9931CFD0FD75C /* EdgeInsets.swift in Sources */, - 9EEF0CC5FA1CC69D84773F08923C3284 /* LayoutConstraint.swift in Sources */, - B909B243517B8B78112F067A6344B430 /* SnapKit-dummy.m in Sources */, - 159EE4B496A34DD8AB3D288DAAE91542 /* SnapKit.swift in Sources */, - 13C1A007BB18BD47FF80F8BAFA7C1589 /* View+SnapKit.swift in Sources */, - B26546EC79C56C181B6A6BFA7A36CD56 /* ViewController+SnapKit.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 66EC92D768733C8D9DBB4FD857FA4B06 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 4C19ED4C22D6B9808195702DB3990008 /* Pods-LiquidFloatingActionButton_Tests-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 8749C03AAA14097B43EAADA1E8600D74 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 3D41203B7B3855EA27D3E987D3EEB224 /* ArrayEx.swift in Sources */, - 903FE6138690401881CED819779A73AC /* CGPointEx.swift in Sources */, - 8D10C418C90EE34F5BA2C22019612D80 /* CGRectEx.swift in Sources */, - 5D47B5F7F9B93DB896CFAEDA03CCB522 /* LiquidFloatingActionButton-dummy.m in Sources */, - B21BD823B02D2B87FD9189869502FCD5 /* LiquidFloatingActionButton.swift in Sources */, - FB4B87C1866264B4C63C18C6D89EC703 /* LiquidUtil.swift in Sources */, - 70A374969C87173198D8D4B6111ECB6E /* LiquittableCircle.swift in Sources */, - CB9BE415254E64439620E55C08536186 /* SimpleCircleLiquidEngine.swift in Sources */, - 222D303213262931EA317A1E0F6BAB38 /* UIColorEx.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 68B1870B4B682D119A8F8E735AEB1AA7 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = SnapKit; - target = 387CBFD0CECEC9E8DA816C353D8AA44B /* SnapKit */; - targetProxy = F37E0413588FEF57B185C90A28936627 /* PBXContainerItemProxy */; - }; - 94616D549170E6823044A6E5E95F9E86 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = LiquidFloatingActionButton; - target = 4BCE15B65BE1423E31A139A48360119E /* LiquidFloatingActionButton */; - targetProxy = 5925C73B578B569902B6E043D675652A /* PBXContainerItemProxy */; - }; - E6929EACFC78DC2D512F1CACAB42D81A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = LiquidFloatingActionButton; - target = 4BCE15B65BE1423E31A139A48360119E /* LiquidFloatingActionButton */; - targetProxy = 10B0CFDA9E4883AADDB4595153399A95 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 001FD24C7FFEED6B7B9F95D34A0828DF /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9B73872B15E9C56304335676CC951C90 /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_LiquidFloatingActionButton_Tests; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 0ACDCBCB0B6796575F46FFA2F5410C6B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_RELEASE=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; - STRIP_INSTALLED_PRODUCT = NO; - SYMROOT = "${SRCROOT}/../build"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 0BC13CD5FBD0B6B917F7955554546458 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4EB840C0FCFA128ECC2A9B932415D6A8 /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Example/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_LiquidFloatingActionButton_Example; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 1597EB20B7AC6F8393337982BF89FADB /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 90D8599FCFCA98DB19D3DE0AD81D9CD6 /* SnapKit.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/SnapKit/SnapKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SnapKit/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/SnapKit/SnapKit.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = SnapKit; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 6EED94C3BCC5D4D74F39F92DA8C23BEE /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 15C6FC5FD383058121E6098617B98C67 /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Example/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_LiquidFloatingActionButton_Example; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 7A6E9C535D324A4F0E8ED7997F1DB5BB /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AA63D17174A63F13D3434AAB04CB95CD /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = Pods_LiquidFloatingActionButton_Tests; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - D3E3D092A3FF7311A98E44BBA36FFD12 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_DEBUG=1", - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.3; - ONLY_ACTIVE_ARCH = YES; - STRIP_INSTALLED_PRODUCT = NO; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Debug; - }; - E31108E78351255ACC4E34E6DD52DC86 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 050B0D0CB0787BEA95A638CEB77D19BC /* LiquidFloatingActionButton.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/LiquidFloatingActionButton/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = LiquidFloatingActionButton; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - F2B91DB995726D485A3A0C653AB36068 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 90D8599FCFCA98DB19D3DE0AD81D9CD6 /* SnapKit.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/SnapKit/SnapKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/SnapKit/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/SnapKit/SnapKit.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = SnapKit; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - F9CE954751AE262BA38DCEAFEE1B5D33 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 050B0D0CB0787BEA95A638CEB77D19BC /* LiquidFloatingActionButton.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREFIX_HEADER = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/LiquidFloatingActionButton/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = LiquidFloatingActionButton; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_VERSION = 3.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 1EC12321BB0A0C22B6A6BE639A9983F3 /* Build configuration list for PBXNativeTarget "LiquidFloatingActionButton" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - E31108E78351255ACC4E34E6DD52DC86 /* Debug */, - F9CE954751AE262BA38DCEAFEE1B5D33 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D3E3D092A3FF7311A98E44BBA36FFD12 /* Debug */, - 0ACDCBCB0B6796575F46FFA2F5410C6B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 47881458D9A4FBFCF836AE674D3268E5 /* Build configuration list for PBXNativeTarget "SnapKit" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1597EB20B7AC6F8393337982BF89FADB /* Debug */, - F2B91DB995726D485A3A0C653AB36068 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 4BBD76F68E67BC09C08CB14FFF4EA906 /* Build configuration list for PBXNativeTarget "Pods-LiquidFloatingActionButton_Tests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 001FD24C7FFEED6B7B9F95D34A0828DF /* Debug */, - 7A6E9C535D324A4F0E8ED7997F1DB5BB /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 974C53BD384AA0C93E683E5246B81AF3 /* Build configuration list for PBXNativeTarget "Pods-LiquidFloatingActionButton_Example" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 6EED94C3BCC5D4D74F39F92DA8C23BEE /* Debug */, - 0BC13CD5FBD0B6B917F7955554546458 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; -} + + + + + archiveVersion + 1 + classes + + objectVersion + 46 + objects + + 001FD24C7FFEED6B7B9F95D34A0828DF + + baseConfigurationReference + 9B73872B15E9C56304335676CC951C90 + buildSettings + + CODE_SIGN_IDENTITY[sdk=iphoneos*] + iPhone Developer + CURRENT_PROJECT_VERSION + 1 + DEBUG_INFORMATION_FORMAT + dwarf + DEFINES_MODULE + YES + DYLIB_COMPATIBILITY_VERSION + 1 + DYLIB_CURRENT_VERSION + 1 + DYLIB_INSTALL_NAME_BASE + @rpath + ENABLE_STRICT_OBJC_MSGSEND + YES + GCC_NO_COMMON_BLOCKS + YES + INFOPLIST_FILE + Target Support Files/Pods-LiquidFloatingActionButton_Tests/Info.plist + INSTALL_PATH + $(LOCAL_LIBRARY_DIR)/Frameworks + IPHONEOS_DEPLOYMENT_TARGET + 8.3 + LD_RUNPATH_SEARCH_PATHS + + $(inherited) + @executable_path/Frameworks + @loader_path/Frameworks + + MACH_O_TYPE + staticlib + MODULEMAP_FILE + Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.modulemap + MTL_ENABLE_DEBUG_INFO + YES + OTHER_LDFLAGS + + OTHER_LIBTOOLFLAGS + + PODS_ROOT + $(SRCROOT) + PRODUCT_BUNDLE_IDENTIFIER + org.cocoapods.${PRODUCT_NAME:rfc1034identifier} + PRODUCT_NAME + Pods_LiquidFloatingActionButton_Tests + SDKROOT + iphoneos + SKIP_INSTALL + YES + SWIFT_OPTIMIZATION_LEVEL + -Onone + TARGETED_DEVICE_FAMILY + 1,2 + VERSIONING_SYSTEM + apple-generic + VERSION_INFO_PREFIX + + + isa + XCBuildConfiguration + name + Debug + + 03D37CD9914A34403CA5E7773D42702F + + fileRef + 15F42031AA343001A7E2C8D3D69C9DE2 + isa + PBXBuildFile + + 041C7DFD4E40027278BABCCCD69743B2 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintAttributes.swift + path + Source/ConstraintAttributes.swift + sourceTree + <group> + + 050B0D0CB0787BEA95A638CEB77D19BC + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + path + LiquidFloatingActionButton.xcconfig + sourceTree + <group> + + 05703C849B29D1EF8195C8FE0EC6AF9E + + children + + 3B90EF7CA55AE01CE50EAF5C3C574CDD + 041C7DFD4E40027278BABCCCD69743B2 + 597734A7EDE6E13F6D1939A7C7373CD1 + F9319AF949935BC0602093E0830E8B10 + CB70FEBA9EF66CAAA461E6F3F819716B + 3FE15693153A62AC79B129BA5FFB7C3D + E855200DC6085FF07EBD87301AD370C9 + 1F2B728DCF7E9F88008827314C2AE823 + 7BEA23F4393572EE30AED50A651CD185 + B525F7008B3760076D71FE29C0859BDC + 446C79107F482F7B2D7E4061657DCA44 + 212E2771F1CD458D21A0FB3CA1C914F3 + 6CC7FF80150FA3840AD57BCE994C9FAB + 3A6167E299BA9862893D87DDBF170B70 + 9F8ECEBD49CA569FC524CB77465180B6 + 8705AFD8FF18225FA8BB0228A69E72AA + D8AA583273C076DD4A1EBAFDDA0E89A8 + 261BC3C65CE6EBBED920977848212F6F + 87CCF4DB7EFBDC070B92BFC0BC0D2C8C + 0729DC38B02A17974FD7A7238FCB1836 + AF1BDEFD46348EE8C41DE053AEDBFD1B + 97F0138AE8EA08984375344610BE7E1E + 813C2A5263E149C889A2DF40FFDD89BA + C4C807430C3A7B9A82E2DDD844C58759 + EBCF77FFA89397B4F19B5CD8A7BDB0A3 + E11295210FBB75091BE22529081A2720 + 8B78113584563565B18CD0248D9D0A93 + 737B1700C2C19AD11C2872C1C46EC8D4 + 73878F9931EAA78C3DAAF7DDA048218E + 7B4759EEB4180EAF3DA189AAE28199AC + 0AB21FA0A2E5B45AB133215CC241236D + 458932A7F6390E9028454F0A27A50A13 + + isa + PBXGroup + name + SnapKit + path + SnapKit + sourceTree + <group> + + 067A34DB72BA048934A4ACB8F865D499 + + fileRef + C4C807430C3A7B9A82E2DDD844C58759 + isa + PBXBuildFile + + 0729DC38B02A17974FD7A7238FCB1836 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintMultiplierTarget.swift + path + Source/ConstraintMultiplierTarget.swift + sourceTree + <group> + + 07AC5B339761C60E4C8735BC1C4F5E84 + + buildActionMask + 2147483647 + files + + 03D37CD9914A34403CA5E7773D42702F + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 07C1582DE353E230C116FBBA55215D38 + + fileRef + 3A6167E299BA9862893D87DDBF170B70 + isa + PBXBuildFile + + 0AB21FA0A2E5B45AB133215CC241236D + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + UILayoutSupport+Extensions.swift + path + Source/UILayoutSupport+Extensions.swift + sourceTree + <group> + + 0ACDCBCB0B6796575F46FFA2F5410C6B + + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + CLANG_ANALYZER_NONNULL + YES + CLANG_CXX_LANGUAGE_STANDARD + gnu++0x + CLANG_CXX_LIBRARY + libc++ + CLANG_ENABLE_MODULES + YES + CLANG_ENABLE_OBJC_ARC + YES + CLANG_WARN_BOOL_CONVERSION + YES + CLANG_WARN_CONSTANT_CONVERSION + YES + CLANG_WARN_DIRECT_OBJC_ISA_USAGE + YES + CLANG_WARN_EMPTY_BODY + YES + CLANG_WARN_ENUM_CONVERSION + YES + CLANG_WARN_INT_CONVERSION + YES + CLANG_WARN_OBJC_ROOT_CLASS + YES + CLANG_WARN_UNREACHABLE_CODE + YES + CLANG_WARN__DUPLICATE_METHOD_MATCH + YES + COPY_PHASE_STRIP + YES + ENABLE_NS_ASSERTIONS + NO + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_PREPROCESSOR_DEFINITIONS + + POD_CONFIGURATION_RELEASE=1 + $(inherited) + + GCC_WARN_64_TO_32_BIT_CONVERSION + YES + GCC_WARN_ABOUT_RETURN_TYPE + YES + GCC_WARN_UNDECLARED_SELECTOR + YES + GCC_WARN_UNINITIALIZED_AUTOS + YES + GCC_WARN_UNUSED_FUNCTION + YES + GCC_WARN_UNUSED_VARIABLE + YES + IPHONEOS_DEPLOYMENT_TARGET + 8.3 + STRIP_INSTALLED_PRODUCT + NO + SYMROOT + ${SRCROOT}/../build + VALIDATE_PRODUCT + YES + + isa + XCBuildConfiguration + name + Release + + 0B5E5C8758ACA9EBFD5F7E2AA6E8479A + + buildActionMask + 2147483647 + files + + EAEFA188CC103359C4AE68AC11F8A844 + + isa + PBXHeadersBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 0BC13CD5FBD0B6B917F7955554546458 + + baseConfigurationReference + 4EB840C0FCFA128ECC2A9B932415D6A8 + buildSettings + + CODE_SIGN_IDENTITY[sdk=iphoneos*] + iPhone Developer + CURRENT_PROJECT_VERSION + 1 + DEBUG_INFORMATION_FORMAT + dwarf-with-dsym + DEFINES_MODULE + YES + DYLIB_COMPATIBILITY_VERSION + 1 + DYLIB_CURRENT_VERSION + 1 + DYLIB_INSTALL_NAME_BASE + @rpath + ENABLE_STRICT_OBJC_MSGSEND + YES + GCC_NO_COMMON_BLOCKS + YES + INFOPLIST_FILE + Target Support Files/Pods-LiquidFloatingActionButton_Example/Info.plist + INSTALL_PATH + $(LOCAL_LIBRARY_DIR)/Frameworks + IPHONEOS_DEPLOYMENT_TARGET + 8.3 + LD_RUNPATH_SEARCH_PATHS + + $(inherited) + @executable_path/Frameworks + @loader_path/Frameworks + + MACH_O_TYPE + staticlib + MODULEMAP_FILE + Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.modulemap + MTL_ENABLE_DEBUG_INFO + NO + OTHER_LDFLAGS + + OTHER_LIBTOOLFLAGS + + PODS_ROOT + $(SRCROOT) + PRODUCT_BUNDLE_IDENTIFIER + org.cocoapods.${PRODUCT_NAME:rfc1034identifier} + PRODUCT_NAME + Pods_LiquidFloatingActionButton_Example + SDKROOT + iphoneos + SKIP_INSTALL + YES + TARGETED_DEVICE_FAMILY + 1,2 + VERSIONING_SYSTEM + apple-generic + VERSION_INFO_PREFIX + + + isa + XCBuildConfiguration + name + Release + + 0C905D6D9629186A407EC43C7DEF7E66 + + fileRef + 9F8ECEBD49CA569FC524CB77465180B6 + isa + PBXBuildFile + + 0ED0A08396CBAD914DE4379BCF7E585E + + buildConfigurationList + 4BBD76F68E67BC09C08CB14FFF4EA906 + buildPhases + + 66EC92D768733C8D9DBB4FD857FA4B06 + 7DA469E70D4B27EE88D987E16A14CA0B + 0B5E5C8758ACA9EBFD5F7E2AA6E8479A + + buildRules + + dependencies + + E6929EACFC78DC2D512F1CACAB42D81A + + isa + PBXNativeTarget + name + Pods-LiquidFloatingActionButton_Tests + productName + Pods-LiquidFloatingActionButton_Tests + productReference + 70791619EB473F8BD49DC7B26F2768A0 + productType + com.apple.product-type.framework + + 10B0CFDA9E4883AADDB4595153399A95 + + containerPortal + D41D8CD98F00B204E9800998ECF8427E + isa + PBXContainerItemProxy + proxyType + 1 + remoteGlobalIDString + 4BCE15B65BE1423E31A139A48360119E + remoteInfo + LiquidFloatingActionButton + + 14426FA5248A96FBC6A531879E24CFA5 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + SnapKit-prefix.pch + sourceTree + <group> + + 156D6C46DF45A7803E62D7F023CD095A + + fileRef + 73878F9931EAA78C3DAAF7DDA048218E + isa + PBXBuildFile + + 1597EB20B7AC6F8393337982BF89FADB + + baseConfigurationReference + E885DC7A2C93B352F3CCBAF6C4F30F7F + buildSettings + + CODE_SIGN_IDENTITY[sdk=iphoneos*] + iPhone Developer + CURRENT_PROJECT_VERSION + 1 + DEBUG_INFORMATION_FORMAT + dwarf + DEFINES_MODULE + YES + DYLIB_COMPATIBILITY_VERSION + 1 + DYLIB_CURRENT_VERSION + 1 + DYLIB_INSTALL_NAME_BASE + @rpath + ENABLE_STRICT_OBJC_MSGSEND + YES + GCC_NO_COMMON_BLOCKS + YES + GCC_PREFIX_HEADER + Target Support Files/SnapKit/SnapKit-prefix.pch + INFOPLIST_FILE + Target Support Files/SnapKit/Info.plist + INSTALL_PATH + $(LOCAL_LIBRARY_DIR)/Frameworks + IPHONEOS_DEPLOYMENT_TARGET + 8.0 + LD_RUNPATH_SEARCH_PATHS + + $(inherited) + @executable_path/Frameworks + @loader_path/Frameworks + + MODULEMAP_FILE + Target Support Files/SnapKit/SnapKit.modulemap + MTL_ENABLE_DEBUG_INFO + YES + PRODUCT_NAME + SnapKit + SDKROOT + iphoneos + SKIP_INSTALL + YES + SWIFT_OPTIMIZATION_LEVEL + -Onone + TARGETED_DEVICE_FAMILY + 1,2 + VERSIONING_SYSTEM + apple-generic + VERSION_INFO_PREFIX + + + isa + XCBuildConfiguration + name + Debug + + 15C6FC5FD383058121E6098617B98C67 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + path + Pods-LiquidFloatingActionButton_Example.debug.xcconfig + sourceTree + <group> + + 15F42031AA343001A7E2C8D3D69C9DE2 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + Pods-LiquidFloatingActionButton_Example-dummy.m + sourceTree + <group> + + 1A4A759ED5E8ED2278F9D307ABD11FC5 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + Pods-LiquidFloatingActionButton_Example-umbrella.h + sourceTree + <group> + + 1C56ABE3696B5A7C30A744B23F17B774 + + explicitFileType + wrapper.framework + includeInIndex + 0 + isa + PBXFileReference + name + Pods_LiquidFloatingActionButton_Example.framework + path + Pods-LiquidFloatingActionButton_Example.framework + sourceTree + BUILT_PRODUCTS_DIR + + 1EC12321BB0A0C22B6A6BE639A9983F3 + + buildConfigurations + + E31108E78351255ACC4E34E6DD52DC86 + F9CE954751AE262BA38DCEAFEE1B5D33 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + 1F2B728DCF7E9F88008827314C2AE823 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintInsetTarget.swift + path + Source/ConstraintInsetTarget.swift + sourceTree + <group> + + 212E2771F1CD458D21A0FB3CA1C914F3 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintLayoutSupport.swift + path + Source/ConstraintLayoutSupport.swift + sourceTree + <group> + + 222D303213262931EA317A1E0F6BAB38 + + fileRef + A8D96BACF73B0930447045AF580F1F64 + isa + PBXBuildFile + + 260679D455A5673E37DC64A285D035D0 + + buildActionMask + 2147483647 + files + + 7E538EF481F898874DF94F0F8CBC5D2C + + isa + PBXHeadersBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 261BC3C65CE6EBBED920977848212F6F + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintMakerPriortizable.swift + path + Source/ConstraintMakerPriortizable.swift + sourceTree + <group> + + 2A243039ECE25C22417777FADC30ED4B + + fileRef + 446C79107F482F7B2D7E4061657DCA44 + isa + PBXBuildFile + + 2B483F03EA79C3C9DDEEF7DB0181AFC0 + + children + + AE2F18FBC8136A267123CC803D2C583B + + isa + PBXGroup + name + Development Pods + sourceTree + <group> + + 2C83799F09E1AA0516AB5DB90625639B + + fileRef + 6CC7FF80150FA3840AD57BCE994C9FAB + isa + PBXBuildFile + + 2D8E8EC45A3A1A1D94AE762CB5028504 + + buildConfigurations + + D3E3D092A3FF7311A98E44BBA36FFD12 + 0ACDCBCB0B6796575F46FFA2F5410C6B + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + 32A2AF2E2F4B1499E450931CC0CAD202 + + includeInIndex + 1 + isa + PBXFileReference + path + Pods-LiquidFloatingActionButton_Example.modulemap + sourceTree + <group> + + 34A4795691704A615AA138BF95042DC5 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text + path + Pods-LiquidFloatingActionButton_Example-acknowledgements.markdown + sourceTree + <group> + + 369689EDAB3FAFC4E5BB39A93321BBFC + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + CGPointEx.swift + sourceTree + <group> + + 36F74146B8079D5E7A7D8309B0FF7565 + + fileRef + 261BC3C65CE6EBBED920977848212F6F + isa + PBXBuildFile + + 37A83F173235565EDE9A076A15250F07 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.script.sh + path + Pods-LiquidFloatingActionButton_Example-resources.sh + sourceTree + <group> + + 382A89C8A9966985B246A0297407D219 + + fileRef + 041C7DFD4E40027278BABCCCD69743B2 + isa + PBXBuildFile + + 387CBFD0CECEC9E8DA816C353D8AA44B + + buildConfigurationList + 47881458D9A4FBFCF836AE674D3268E5 + buildPhases + + 7DEFD17BAEAC401FE05557EEB7477DD1 + 614F0F65B18E3F7F4566838C2466DDF4 + C5453DEA4A21F19419F29DFDB5DFC00E + + buildRules + + dependencies + + isa + PBXNativeTarget + name + SnapKit + productName + SnapKit + productReference + C113B9855019081B47BCB0011553CB7B + productType + com.apple.product-type.framework + + 3A6167E299BA9862893D87DDBF170B70 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintMaker.swift + path + Source/ConstraintMaker.swift + sourceTree + <group> + + 3B90EF7CA55AE01CE50EAF5C3C574CDD + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + Constraint.swift + path + Source/Constraint.swift + sourceTree + <group> + + 3D41203B7B3855EA27D3E987D3EEB224 + + fileRef + 8CAC4A98C58F1EBAF09C8E193E73E985 + isa + PBXBuildFile + + 3DCAB2B7CDE207B3958B6CB957FCC758 + + children + + CEC22C73C1608DFA5D5D78BDCB218219 + + isa + PBXGroup + name + iOS + sourceTree + <group> + + 3FE15693153A62AC79B129BA5FFB7C3D + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintDSL.swift + path + Source/ConstraintDSL.swift + sourceTree + <group> + + 403679D690C81703CB583C940107CFD1 + + fileRef + 737B1700C2C19AD11C2872C1C46EC8D4 + isa + PBXBuildFile + + 40E154929C97169FF28608F168BAA648 + + fileRef + 1A4A759ED5E8ED2278F9D307ABD11FC5 + isa + PBXBuildFile + settings + + ATTRIBUTES + + Public + + + + 42358D3ECCE5C55DBB5C84DB7CF83577 + + fileRef + 50BF4E341DC91F918DC3DD74CA4ADC22 + isa + PBXBuildFile + settings + + ATTRIBUTES + + Public + + + + 446C79107F482F7B2D7E4061657DCA44 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintLayoutGuideDSL.swift + path + Source/ConstraintLayoutGuideDSL.swift + sourceTree + <group> + + 455D1C85888DD5A8DEB3D728C891AB98 + + fileRef + 8705AFD8FF18225FA8BB0228A69E72AA + isa + PBXBuildFile + + 458932A7F6390E9028454F0A27A50A13 + + children + + CA274E8C59BA433F4975D535FA594EFA + B7D4645BD3C0100FB7E1B4A6FDC96E0B + E885DC7A2C93B352F3CCBAF6C4F30F7F + 9F675DF8551ECAD72F0C6D96084C6DD4 + 14426FA5248A96FBC6A531879E24CFA5 + 50BF4E341DC91F918DC3DD74CA4ADC22 + + isa + PBXGroup + name + Support Files + path + ../Target Support Files/SnapKit + sourceTree + <group> + + 472AE9D6E5530C4A22E40EAE13A2B2A0 + + fileRef + AF1BDEFD46348EE8C41DE053AEDBFD1B + isa + PBXBuildFile + + 47881458D9A4FBFCF836AE674D3268E5 + + buildConfigurations + + 1597EB20B7AC6F8393337982BF89FADB + F2B91DB995726D485A3A0C653AB36068 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + 4891FC70C29A87882CF967258A163202 + + fileRef + 7B4759EEB4180EAF3DA189AAE28199AC + isa + PBXBuildFile + + 4944CA8FF8D31ABF8BFFEC2E46AE608D + + fileRef + 97F0138AE8EA08984375344610BE7E1E + isa + PBXBuildFile + + 4BBD76F68E67BC09C08CB14FFF4EA906 + + buildConfigurations + + 001FD24C7FFEED6B7B9F95D34A0828DF + 7A6E9C535D324A4F0E8ED7997F1DB5BB + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + 4BCE15B65BE1423E31A139A48360119E + + buildConfigurationList + 1EC12321BB0A0C22B6A6BE639A9983F3 + buildPhases + + 8749C03AAA14097B43EAADA1E8600D74 + 68F6EC99D6740686C4802F2C69A003BA + 260679D455A5673E37DC64A285D035D0 + + buildRules + + dependencies + + isa + PBXNativeTarget + name + LiquidFloatingActionButton + productName + LiquidFloatingActionButton + productReference + 9231BEA6AC185B3FCBFD27ACB63CD892 + productType + com.apple.product-type.framework + + 4C19ED4C22D6B9808195702DB3990008 + + fileRef + 97232F629F7FC2174E1BE76D76737706 + isa + PBXBuildFile + + 4CA7418B0FCBC3D61E2A0393244E1BF1 + + fileRef + F9319AF949935BC0602093E0830E8B10 + isa + PBXBuildFile + + 4EB840C0FCFA128ECC2A9B932415D6A8 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + path + Pods-LiquidFloatingActionButton_Example.release.xcconfig + sourceTree + <group> + + 50BF4E341DC91F918DC3DD74CA4ADC22 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + SnapKit-umbrella.h + sourceTree + <group> + + 558D7CB2FB7F2C0FB7BFA2BCF7217EAA + + fileRef + 3B90EF7CA55AE01CE50EAF5C3C574CDD + isa + PBXBuildFile + + 56703A4074D4D2B486FDD90CE6BA23D8 + + fileRef + 9F675DF8551ECAD72F0C6D96084C6DD4 + isa + PBXBuildFile + + 58C7159C06470D006C424DDC8A1A60EB + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + LiquidFloatingActionButton-dummy.m + sourceTree + <group> + + 5925C73B578B569902B6E043D675652A + + containerPortal + D41D8CD98F00B204E9800998ECF8427E + isa + PBXContainerItemProxy + proxyType + 1 + remoteGlobalIDString + 4BCE15B65BE1423E31A139A48360119E + remoteInfo + LiquidFloatingActionButton + + 597734A7EDE6E13F6D1939A7C7373CD1 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintConfig.swift + path + Source/ConstraintConfig.swift + sourceTree + <group> + + 5A82C9E223C33B72D27F16541E58440A + + fileRef + E11295210FBB75091BE22529081A2720 + isa + PBXBuildFile + + 5B850A0AE5BE721D248F258FB455C96E + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + LiquidFloatingActionButton-prefix.pch + sourceTree + <group> + + 5D0D78B2AEA5286AA98D3198C9653619 + + children + + 9231BEA6AC185B3FCBFD27ACB63CD892 + 1C56ABE3696B5A7C30A744B23F17B774 + 70791619EB473F8BD49DC7B26F2768A0 + C113B9855019081B47BCB0011553CB7B + + isa + PBXGroup + name + Products + sourceTree + <group> + + 5D47B5F7F9B93DB896CFAEDA03CCB522 + + fileRef + 58C7159C06470D006C424DDC8A1A60EB + isa + PBXBuildFile + + 614F0F65B18E3F7F4566838C2466DDF4 + + buildActionMask + 2147483647 + files + + B4BFAED2D1CBD8A95C1B7F00F33D94AA + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 618F63A95B22676C4FA61F86A5AB3136 + + buildActionMask + 2147483647 + files + + 9839FC7BD136D98C4786DB72E56B3E5F + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 63AA079CA68C8594DE2EFCEECD70391B + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.plist.xml + path + Pods-LiquidFloatingActionButton_Tests-acknowledgements.plist + sourceTree + <group> + + 66EC92D768733C8D9DBB4FD857FA4B06 + + buildActionMask + 2147483647 + files + + 4C19ED4C22D6B9808195702DB3990008 + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 6862F5F9E2EA9D362151AC37E55E276D + + fileRef + 7BEA23F4393572EE30AED50A651CD185 + isa + PBXBuildFile + + 68B1870B4B682D119A8F8E735AEB1AA7 + + isa + PBXTargetDependency + name + SnapKit + target + 387CBFD0CECEC9E8DA816C353D8AA44B + targetProxy + F37E0413588FEF57B185C90A28936627 + + 68F6EC99D6740686C4802F2C69A003BA + + buildActionMask + 2147483647 + files + + EAC4522ECD9EDE06632C34321215099E + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 6BEAD485B9DC8B38EBDE94D6A091FDB6 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + CGRectEx.swift + sourceTree + <group> + + 6CC7FF80150FA3840AD57BCE994C9FAB + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintLayoutSupportDSL.swift + path + Source/ConstraintLayoutSupportDSL.swift + sourceTree + <group> + + 6E328286AD7C502EA27A22A48B46157C + + fileRef + CEC22C73C1608DFA5D5D78BDCB218219 + isa + PBXBuildFile + + 6EED94C3BCC5D4D74F39F92DA8C23BEE + + baseConfigurationReference + 15C6FC5FD383058121E6098617B98C67 + buildSettings + + CODE_SIGN_IDENTITY[sdk=iphoneos*] + iPhone Developer + CURRENT_PROJECT_VERSION + 1 + DEBUG_INFORMATION_FORMAT + dwarf + DEFINES_MODULE + YES + DYLIB_COMPATIBILITY_VERSION + 1 + DYLIB_CURRENT_VERSION + 1 + DYLIB_INSTALL_NAME_BASE + @rpath + ENABLE_STRICT_OBJC_MSGSEND + YES + GCC_NO_COMMON_BLOCKS + YES + INFOPLIST_FILE + Target Support Files/Pods-LiquidFloatingActionButton_Example/Info.plist + INSTALL_PATH + $(LOCAL_LIBRARY_DIR)/Frameworks + IPHONEOS_DEPLOYMENT_TARGET + 8.3 + LD_RUNPATH_SEARCH_PATHS + + $(inherited) + @executable_path/Frameworks + @loader_path/Frameworks + + MACH_O_TYPE + staticlib + MODULEMAP_FILE + Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.modulemap + MTL_ENABLE_DEBUG_INFO + YES + OTHER_LDFLAGS + + OTHER_LIBTOOLFLAGS + + PODS_ROOT + $(SRCROOT) + PRODUCT_BUNDLE_IDENTIFIER + org.cocoapods.${PRODUCT_NAME:rfc1034identifier} + PRODUCT_NAME + Pods_LiquidFloatingActionButton_Example + SDKROOT + iphoneos + SKIP_INSTALL + YES + SWIFT_OPTIMIZATION_LEVEL + -Onone + TARGETED_DEVICE_FAMILY + 1,2 + VERSIONING_SYSTEM + apple-generic + VERSION_INFO_PREFIX + + + isa + XCBuildConfiguration + name + Debug + + 70722508FEFCEA523F7B8F66D9DDF4F5 + + includeInIndex + 1 + isa + PBXFileReference + path + LiquidFloatingActionButton.modulemap + sourceTree + <group> + + 70791619EB473F8BD49DC7B26F2768A0 + + explicitFileType + wrapper.framework + includeInIndex + 0 + isa + PBXFileReference + name + Pods_LiquidFloatingActionButton_Tests.framework + path + Pods-LiquidFloatingActionButton_Tests.framework + sourceTree + BUILT_PRODUCTS_DIR + + 70A374969C87173198D8D4B6111ECB6E + + fileRef + BAF44DB2E216127955F1E0FEF8213369 + isa + PBXBuildFile + + 737B1700C2C19AD11C2872C1C46EC8D4 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + Debugging.swift + path + Source/Debugging.swift + sourceTree + <group> + + 73878F9931EAA78C3DAAF7DDA048218E + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + LayoutConstraint.swift + path + Source/LayoutConstraint.swift + sourceTree + <group> + + 7A5DCCC054F4E24631ADC1E3C3A70343 + + fileRef + 212E2771F1CD458D21A0FB3CA1C914F3 + isa + PBXBuildFile + + 7A6E9C535D324A4F0E8ED7997F1DB5BB + + baseConfigurationReference + AA63D17174A63F13D3434AAB04CB95CD + buildSettings + + CODE_SIGN_IDENTITY[sdk=iphoneos*] + iPhone Developer + CURRENT_PROJECT_VERSION + 1 + DEBUG_INFORMATION_FORMAT + dwarf-with-dsym + DEFINES_MODULE + YES + DYLIB_COMPATIBILITY_VERSION + 1 + DYLIB_CURRENT_VERSION + 1 + DYLIB_INSTALL_NAME_BASE + @rpath + ENABLE_STRICT_OBJC_MSGSEND + YES + GCC_NO_COMMON_BLOCKS + YES + INFOPLIST_FILE + Target Support Files/Pods-LiquidFloatingActionButton_Tests/Info.plist + INSTALL_PATH + $(LOCAL_LIBRARY_DIR)/Frameworks + IPHONEOS_DEPLOYMENT_TARGET + 8.3 + LD_RUNPATH_SEARCH_PATHS + + $(inherited) + @executable_path/Frameworks + @loader_path/Frameworks + + MACH_O_TYPE + staticlib + MODULEMAP_FILE + Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.modulemap + MTL_ENABLE_DEBUG_INFO + NO + OTHER_LDFLAGS + + OTHER_LIBTOOLFLAGS + + PODS_ROOT + $(SRCROOT) + PRODUCT_BUNDLE_IDENTIFIER + org.cocoapods.${PRODUCT_NAME:rfc1034identifier} + PRODUCT_NAME + Pods_LiquidFloatingActionButton_Tests + SDKROOT + iphoneos + SKIP_INSTALL + YES + TARGETED_DEVICE_FAMILY + 1,2 + VERSIONING_SYSTEM + apple-generic + VERSION_INFO_PREFIX + + + isa + XCBuildConfiguration + name + Release + + 7B4759EEB4180EAF3DA189AAE28199AC + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + UILayoutGuide+Extensions.swift + path + Source/UILayoutGuide+Extensions.swift + sourceTree + <group> + + 7BD5E598A90E9B5D7F5BE26DD5C7B6D6 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.script.sh + path + Pods-LiquidFloatingActionButton_Tests-resources.sh + sourceTree + <group> + + 7BEA23F4393572EE30AED50A651CD185 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintItem.swift + path + Source/ConstraintItem.swift + sourceTree + <group> + + 7DA469E70D4B27EE88D987E16A14CA0B + + buildActionMask + 2147483647 + files + + 6E328286AD7C502EA27A22A48B46157C + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 7DB346D0F39D3F0E887471402A8071AB + + children + + 93A4A3777CF96A4AAC1D13BA6DCCEA73 + 2B483F03EA79C3C9DDEEF7DB0181AFC0 + BC3CA7F9E30CC8F7E2DD044DD34432FC + FCB3E800ADEFE141C46C6B85E298DF53 + 5D0D78B2AEA5286AA98D3198C9653619 + F4BDFB4BCFC42C98938E70B06FC40921 + + isa + PBXGroup + sourceTree + <group> + + 7DEFD17BAEAC401FE05557EEB7477DD1 + + buildActionMask + 2147483647 + files + + 558D7CB2FB7F2C0FB7BFA2BCF7217EAA + 382A89C8A9966985B246A0297407D219 + DA0B4783CA61D670415069AE79CA8BE1 + 4CA7418B0FCBC3D61E2A0393244E1BF1 + DFA8073CB687441FF93505CB02432936 + 8CAF98A2AD7189203548CDDA44E3B881 + 9038175ADF2AAA447C93DC65AF74C205 + A0E68453F95B1D24E992A71FFE5C9FB2 + 6862F5F9E2EA9D362151AC37E55E276D + FFFBAAED7A3ADC328B1EE0193BF98138 + 2A243039ECE25C22417777FADC30ED4B + 7A5DCCC054F4E24631ADC1E3C3A70343 + 2C83799F09E1AA0516AB5DB90625639B + 07C1582DE353E230C116FBBA55215D38 + 0C905D6D9629186A407EC43C7DEF7E66 + 455D1C85888DD5A8DEB3D728C891AB98 + 882DD384A96A03DE16B115C0AA801A8F + 36F74146B8079D5E7A7D8309B0FF7565 + F3132422696A8E14ED71162F16F900B0 + 83D17E8B5FF0BEE6E212CBBB98FCCF34 + 472AE9D6E5530C4A22E40EAE13A2B2A0 + 4944CA8FF8D31ABF8BFFEC2E46AE608D + F8B99B2534B76BA3A39D5787434BA16E + 067A34DB72BA048934A4ACB8F865D499 + 5A82C9E223C33B72D27F16541E58440A + E7D4AEB7F3C4AB23FEBA14AD82BB31E5 + 8217E7706802DF39D8369FD61A75F997 + 403679D690C81703CB583C940107CFD1 + 156D6C46DF45A7803E62D7F023CD095A + 56703A4074D4D2B486FDD90CE6BA23D8 + 4891FC70C29A87882CF967258A163202 + C74E7F220185731302C173547511274A + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 7E538EF481F898874DF94F0F8CBC5D2C + + fileRef + 824CA79EC009B18484863834998CC017 + isa + PBXBuildFile + settings + + ATTRIBUTES + + Public + + + + 80DA2BFE26A78E748CCDAD5FE668A48C + + children + + 8CAC4A98C58F1EBAF09C8E193E73E985 + 369689EDAB3FAFC4E5BB39A93321BBFC + 6BEAD485B9DC8B38EBDE94D6A091FDB6 + 83AC495A087C2EAF9CAAC87835CAA680 + D691EE87C404B7D086624B5801982F43 + BAF44DB2E216127955F1E0FEF8213369 + E3B69218901BE4E025D721BBC5CC763A + A8D96BACF73B0930447045AF580F1F64 + + isa + PBXGroup + name + Classes + path + Classes + sourceTree + <group> + + 813C2A5263E149C889A2DF40FFDD89BA + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintRelatableTarget.swift + path + Source/ConstraintRelatableTarget.swift + sourceTree + <group> + + 8217E7706802DF39D8369FD61A75F997 + + fileRef + 8B78113584563565B18CD0248D9D0A93 + isa + PBXBuildFile + + 824CA79EC009B18484863834998CC017 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + LiquidFloatingActionButton-umbrella.h + sourceTree + <group> + + 82BC29399E8CB5DE4082F0C18B2BA3DC + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.plist.xml + path + Info.plist + sourceTree + <group> + + 83AC495A087C2EAF9CAAC87835CAA680 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + LiquidFloatingActionButton.swift + sourceTree + <group> + + 83D17E8B5FF0BEE6E212CBBB98FCCF34 + + fileRef + 0729DC38B02A17974FD7A7238FCB1836 + isa + PBXBuildFile + + 8705AFD8FF18225FA8BB0228A69E72AA + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintMakerExtendable.swift + path + Source/ConstraintMakerExtendable.swift + sourceTree + <group> + + 8749C03AAA14097B43EAADA1E8600D74 + + buildActionMask + 2147483647 + files + + 3D41203B7B3855EA27D3E987D3EEB224 + 903FE6138690401881CED819779A73AC + 8D10C418C90EE34F5BA2C22019612D80 + 5D47B5F7F9B93DB896CFAEDA03CCB522 + B21BD823B02D2B87FD9189869502FCD5 + FB4B87C1866264B4C63C18C6D89EC703 + 70A374969C87173198D8D4B6111ECB6E + CB9BE415254E64439620E55C08536186 + 222D303213262931EA317A1E0F6BAB38 + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 87CCF4DB7EFBDC070B92BFC0BC0D2C8C + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintMakerRelatable.swift + path + Source/ConstraintMakerRelatable.swift + sourceTree + <group> + + 882DD384A96A03DE16B115C0AA801A8F + + fileRef + D8AA583273C076DD4A1EBAFDDA0E89A8 + isa + PBXBuildFile + + 8B78113584563565B18CD0248D9D0A93 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintViewDSL.swift + path + Source/ConstraintViewDSL.swift + sourceTree + <group> + + 8CAC4A98C58F1EBAF09C8E193E73E985 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + ArrayEx.swift + sourceTree + <group> + + 8CAF98A2AD7189203548CDDA44E3B881 + + fileRef + 3FE15693153A62AC79B129BA5FFB7C3D + isa + PBXBuildFile + + 8D10C418C90EE34F5BA2C22019612D80 + + fileRef + 6BEAD485B9DC8B38EBDE94D6A091FDB6 + isa + PBXBuildFile + + 8DB80E76EE113421A98CB8EE23DE90D4 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.plist.xml + path + Info.plist + sourceTree + <group> + + 8EF67744D713AB87F9A34356FCB4C593 + + includeInIndex + 1 + isa + PBXFileReference + path + Pods-LiquidFloatingActionButton_Tests.modulemap + sourceTree + <group> + + 9038175ADF2AAA447C93DC65AF74C205 + + fileRef + E855200DC6085FF07EBD87301AD370C9 + isa + PBXBuildFile + + 903FE6138690401881CED819779A73AC + + fileRef + 369689EDAB3FAFC4E5BB39A93321BBFC + isa + PBXBuildFile + + 9231BEA6AC185B3FCBFD27ACB63CD892 + + explicitFileType + wrapper.framework + includeInIndex + 0 + isa + PBXFileReference + name + LiquidFloatingActionButton.framework + path + LiquidFloatingActionButton.framework + sourceTree + BUILT_PRODUCTS_DIR + + 93A4A3777CF96A4AAC1D13BA6DCCEA73 + + explicitFileType + text.script.ruby + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text + name + Podfile + path + ../Podfile + sourceTree + SOURCE_ROOT + xcLanguageSpecificationIdentifier + xcode.lang.ruby + + 94616D549170E6823044A6E5E95F9E86 + + isa + PBXTargetDependency + name + LiquidFloatingActionButton + target + 4BCE15B65BE1423E31A139A48360119E + targetProxy + 5925C73B578B569902B6E043D675652A + + 96F405472686341EFEEAB4A3B7E44B87 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.plist.xml + path + Info.plist + sourceTree + <group> + + 97232F629F7FC2174E1BE76D76737706 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + Pods-LiquidFloatingActionButton_Tests-dummy.m + sourceTree + <group> + + 974C53BD384AA0C93E683E5246B81AF3 + + buildConfigurations + + 6EED94C3BCC5D4D74F39F92DA8C23BEE + 0BC13CD5FBD0B6B917F7955554546458 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + 97F0138AE8EA08984375344610BE7E1E + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintPriorityTarget.swift + path + Source/ConstraintPriorityTarget.swift + sourceTree + <group> + + 9839FC7BD136D98C4786DB72E56B3E5F + + fileRef + CEC22C73C1608DFA5D5D78BDCB218219 + isa + PBXBuildFile + + 9B73872B15E9C56304335676CC951C90 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + path + Pods-LiquidFloatingActionButton_Tests.debug.xcconfig + sourceTree + <group> + + 9BA657C14DCF4133528472C8E44F67CD + + buildActionMask + 2147483647 + files + + 40E154929C97169FF28608F168BAA648 + + isa + PBXHeadersBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 9F675DF8551ECAD72F0C6D96084C6DD4 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + SnapKit-dummy.m + sourceTree + <group> + + 9F8ECEBD49CA569FC524CB77465180B6 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintMakerEditable.swift + path + Source/ConstraintMakerEditable.swift + sourceTree + <group> + + A0E68453F95B1D24E992A71FFE5C9FB2 + + fileRef + 1F2B728DCF7E9F88008827314C2AE823 + isa + PBXBuildFile + + A206D3FB01DAFF8C15F21FB01DFFCE5C + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.script.sh + path + Pods-LiquidFloatingActionButton_Example-frameworks.sh + sourceTree + <group> + + A8D96BACF73B0930447045AF580F1F64 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + UIColorEx.swift + sourceTree + <group> + + AA63D17174A63F13D3434AAB04CB95CD + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + path + Pods-LiquidFloatingActionButton_Tests.release.xcconfig + sourceTree + <group> + + AE2F18FBC8136A267123CC803D2C583B + + children + + F49E6C75BCE430958DB1CC52D1914458 + D401308214B3B3372E1C579337305FF5 + + isa + PBXGroup + name + LiquidFloatingActionButton + path + ../.. + sourceTree + <group> + + AF1BDEFD46348EE8C41DE053AEDBFD1B + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintOffsetTarget.swift + path + Source/ConstraintOffsetTarget.swift + sourceTree + <group> + + B21BD823B02D2B87FD9189869502FCD5 + + fileRef + 83AC495A087C2EAF9CAAC87835CAA680 + isa + PBXBuildFile + + B4BFAED2D1CBD8A95C1B7F00F33D94AA + + fileRef + CEC22C73C1608DFA5D5D78BDCB218219 + isa + PBXBuildFile + + B525F7008B3760076D71FE29C0859BDC + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintLayoutGuide.swift + path + Source/ConstraintLayoutGuide.swift + sourceTree + <group> + + B7D4645BD3C0100FB7E1B4A6FDC96E0B + + includeInIndex + 1 + isa + PBXFileReference + path + SnapKit.modulemap + sourceTree + <group> + + B80DBE465AE8ED339A23BA7027E83E9C + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.plist.xml + path + Pods-LiquidFloatingActionButton_Example-acknowledgements.plist + sourceTree + <group> + + BAF44DB2E216127955F1E0FEF8213369 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + LiquittableCircle.swift + sourceTree + <group> + + BC3CA7F9E30CC8F7E2DD044DD34432FC + + children + + 3DCAB2B7CDE207B3958B6CB957FCC758 + + isa + PBXGroup + name + Frameworks + sourceTree + <group> + + C113B9855019081B47BCB0011553CB7B + + explicitFileType + wrapper.framework + includeInIndex + 0 + isa + PBXFileReference + name + SnapKit.framework + path + SnapKit.framework + sourceTree + BUILT_PRODUCTS_DIR + + C4C807430C3A7B9A82E2DDD844C58759 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintRelation.swift + path + Source/ConstraintRelation.swift + sourceTree + <group> + + C5453DEA4A21F19419F29DFDB5DFC00E + + buildActionMask + 2147483647 + files + + 42358D3ECCE5C55DBB5C84DB7CF83577 + + isa + PBXHeadersBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + C74E7F220185731302C173547511274A + + fileRef + 0AB21FA0A2E5B45AB133215CC241236D + isa + PBXBuildFile + + CA274E8C59BA433F4975D535FA594EFA + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.plist.xml + path + Info.plist + sourceTree + <group> + + CB70FEBA9EF66CAAA461E6F3F819716B + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintDescription.swift + path + Source/ConstraintDescription.swift + sourceTree + <group> + + CB9BE415254E64439620E55C08536186 + + fileRef + E3B69218901BE4E025D721BBC5CC763A + isa + PBXBuildFile + + CEC22C73C1608DFA5D5D78BDCB218219 + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + Foundation.framework + path + Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/Foundation.framework + sourceTree + DEVELOPER_DIR + + D2E296184E24EBA83C604214BE7B30AF + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text + path + Pods-LiquidFloatingActionButton_Tests-acknowledgements.markdown + sourceTree + <group> + + D3E3D092A3FF7311A98E44BBA36FFD12 + + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + CLANG_ANALYZER_NONNULL + YES + CLANG_CXX_LANGUAGE_STANDARD + gnu++0x + CLANG_CXX_LIBRARY + libc++ + CLANG_ENABLE_MODULES + YES + CLANG_ENABLE_OBJC_ARC + YES + CLANG_WARN_BOOL_CONVERSION + YES + CLANG_WARN_CONSTANT_CONVERSION + YES + CLANG_WARN_DIRECT_OBJC_ISA_USAGE + YES + CLANG_WARN_EMPTY_BODY + YES + CLANG_WARN_ENUM_CONVERSION + YES + CLANG_WARN_INT_CONVERSION + YES + CLANG_WARN_OBJC_ROOT_CLASS + YES + CLANG_WARN_UNREACHABLE_CODE + YES + CLANG_WARN__DUPLICATE_METHOD_MATCH + YES + COPY_PHASE_STRIP + NO + ENABLE_TESTABILITY + YES + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_DYNAMIC_NO_PIC + NO + GCC_OPTIMIZATION_LEVEL + 0 + GCC_PREPROCESSOR_DEFINITIONS + + POD_CONFIGURATION_DEBUG=1 + DEBUG=1 + $(inherited) + + GCC_SYMBOLS_PRIVATE_EXTERN + NO + GCC_WARN_64_TO_32_BIT_CONVERSION + YES + GCC_WARN_ABOUT_RETURN_TYPE + YES + GCC_WARN_UNDECLARED_SELECTOR + YES + GCC_WARN_UNINITIALIZED_AUTOS + YES + GCC_WARN_UNUSED_FUNCTION + YES + GCC_WARN_UNUSED_VARIABLE + YES + IPHONEOS_DEPLOYMENT_TARGET + 8.3 + ONLY_ACTIVE_ARCH + YES + STRIP_INSTALLED_PRODUCT + NO + SYMROOT + ${SRCROOT}/../build + + isa + XCBuildConfiguration + name + Debug + + D401308214B3B3372E1C579337305FF5 + + children + + 82BC29399E8CB5DE4082F0C18B2BA3DC + 70722508FEFCEA523F7B8F66D9DDF4F5 + 050B0D0CB0787BEA95A638CEB77D19BC + 58C7159C06470D006C424DDC8A1A60EB + 5B850A0AE5BE721D248F258FB455C96E + 824CA79EC009B18484863834998CC017 + + isa + PBXGroup + name + Support Files + path + Example/Pods/Target Support Files/LiquidFloatingActionButton + sourceTree + <group> + + D41D8CD98F00B204E9800998ECF8427E + + attributes + + LastSwiftUpdateCheck + 0730 + LastUpgradeCheck + 0700 + + buildConfigurationList + 2D8E8EC45A3A1A1D94AE762CB5028504 + compatibilityVersion + Xcode 3.2 + developmentRegion + English + hasScannedForEncodings + 0 + isa + PBXProject + knownRegions + + en + + mainGroup + 7DB346D0F39D3F0E887471402A8071AB + productRefGroup + 5D0D78B2AEA5286AA98D3198C9653619 + projectDirPath + + projectReferences + + projectRoot + + targets + + 4BCE15B65BE1423E31A139A48360119E + F7C1C7995CD2F101DD63DDC91BAABAA9 + 0ED0A08396CBAD914DE4379BCF7E585E + 387CBFD0CECEC9E8DA816C353D8AA44B + + + D691EE87C404B7D086624B5801982F43 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + LiquidUtil.swift + sourceTree + <group> + + D6E0DF24DD4243EB00821C0996A56027 + + children + + 96F405472686341EFEEAB4A3B7E44B87 + 32A2AF2E2F4B1499E450931CC0CAD202 + 34A4795691704A615AA138BF95042DC5 + B80DBE465AE8ED339A23BA7027E83E9C + 15F42031AA343001A7E2C8D3D69C9DE2 + A206D3FB01DAFF8C15F21FB01DFFCE5C + 37A83F173235565EDE9A076A15250F07 + 1A4A759ED5E8ED2278F9D307ABD11FC5 + 15C6FC5FD383058121E6098617B98C67 + 4EB840C0FCFA128ECC2A9B932415D6A8 + + isa + PBXGroup + name + Pods-LiquidFloatingActionButton_Example + path + Target Support Files/Pods-LiquidFloatingActionButton_Example + sourceTree + <group> + + D8AA583273C076DD4A1EBAFDDA0E89A8 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintMakerFinalizable.swift + path + Source/ConstraintMakerFinalizable.swift + sourceTree + <group> + + DA0B4783CA61D670415069AE79CA8BE1 + + fileRef + 597734A7EDE6E13F6D1939A7C7373CD1 + isa + PBXBuildFile + + DFA8073CB687441FF93505CB02432936 + + fileRef + CB70FEBA9EF66CAAA461E6F3F819716B + isa + PBXBuildFile + + E05C697D61064335D42A08CC9BD13553 + + children + + 8DB80E76EE113421A98CB8EE23DE90D4 + 8EF67744D713AB87F9A34356FCB4C593 + D2E296184E24EBA83C604214BE7B30AF + 63AA079CA68C8594DE2EFCEECD70391B + 97232F629F7FC2174E1BE76D76737706 + E365F5D85C8B589E45B7CA5165A49929 + 7BD5E598A90E9B5D7F5BE26DD5C7B6D6 + FD568EC2ADE52671E9F40F5B7FE5D901 + 9B73872B15E9C56304335676CC951C90 + AA63D17174A63F13D3434AAB04CB95CD + + isa + PBXGroup + name + Pods-LiquidFloatingActionButton_Tests + path + Target Support Files/Pods-LiquidFloatingActionButton_Tests + sourceTree + <group> + + E11295210FBB75091BE22529081A2720 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintView+Extensions.swift + path + Source/ConstraintView+Extensions.swift + sourceTree + <group> + + E31108E78351255ACC4E34E6DD52DC86 + + baseConfigurationReference + 050B0D0CB0787BEA95A638CEB77D19BC + buildSettings + + CODE_SIGN_IDENTITY[sdk=iphoneos*] + iPhone Developer + CURRENT_PROJECT_VERSION + 1 + DEBUG_INFORMATION_FORMAT + dwarf + DEFINES_MODULE + YES + DYLIB_COMPATIBILITY_VERSION + 1 + DYLIB_CURRENT_VERSION + 1 + DYLIB_INSTALL_NAME_BASE + @rpath + ENABLE_STRICT_OBJC_MSGSEND + YES + GCC_NO_COMMON_BLOCKS + YES + GCC_PREFIX_HEADER + Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton-prefix.pch + INFOPLIST_FILE + Target Support Files/LiquidFloatingActionButton/Info.plist + INSTALL_PATH + $(LOCAL_LIBRARY_DIR)/Frameworks + IPHONEOS_DEPLOYMENT_TARGET + 8.0 + LD_RUNPATH_SEARCH_PATHS + + $(inherited) + @executable_path/Frameworks + @loader_path/Frameworks + + MODULEMAP_FILE + Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.modulemap + MTL_ENABLE_DEBUG_INFO + YES + PRODUCT_NAME + LiquidFloatingActionButton + SDKROOT + iphoneos + SKIP_INSTALL + YES + SWIFT_OPTIMIZATION_LEVEL + -Onone + TARGETED_DEVICE_FAMILY + 1,2 + VERSIONING_SYSTEM + apple-generic + VERSION_INFO_PREFIX + + + isa + XCBuildConfiguration + name + Debug + + E365F5D85C8B589E45B7CA5165A49929 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.script.sh + path + Pods-LiquidFloatingActionButton_Tests-frameworks.sh + sourceTree + <group> + + E3B69218901BE4E025D721BBC5CC763A + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + SimpleCircleLiquidEngine.swift + sourceTree + <group> + + E6929EACFC78DC2D512F1CACAB42D81A + + isa + PBXTargetDependency + name + LiquidFloatingActionButton + target + 4BCE15B65BE1423E31A139A48360119E + targetProxy + 10B0CFDA9E4883AADDB4595153399A95 + + E7D4AEB7F3C4AB23FEBA14AD82BB31E5 + + fileRef + EBCF77FFA89397B4F19B5CD8A7BDB0A3 + isa + PBXBuildFile + + E855200DC6085FF07EBD87301AD370C9 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintInsets.swift + path + Source/ConstraintInsets.swift + sourceTree + <group> + + E885DC7A2C93B352F3CCBAF6C4F30F7F + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + path + SnapKit.xcconfig + sourceTree + <group> + + EAC4522ECD9EDE06632C34321215099E + + fileRef + CEC22C73C1608DFA5D5D78BDCB218219 + isa + PBXBuildFile + + EAEFA188CC103359C4AE68AC11F8A844 + + fileRef + FD568EC2ADE52671E9F40F5B7FE5D901 + isa + PBXBuildFile + settings + + ATTRIBUTES + + Public + + + + EBCF77FFA89397B4F19B5CD8A7BDB0A3 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintView.swift + path + Source/ConstraintView.swift + sourceTree + <group> + + F2B91DB995726D485A3A0C653AB36068 + + baseConfigurationReference + E885DC7A2C93B352F3CCBAF6C4F30F7F + buildSettings + + CODE_SIGN_IDENTITY[sdk=iphoneos*] + iPhone Developer + CURRENT_PROJECT_VERSION + 1 + DEBUG_INFORMATION_FORMAT + dwarf-with-dsym + DEFINES_MODULE + YES + DYLIB_COMPATIBILITY_VERSION + 1 + DYLIB_CURRENT_VERSION + 1 + DYLIB_INSTALL_NAME_BASE + @rpath + ENABLE_STRICT_OBJC_MSGSEND + YES + GCC_NO_COMMON_BLOCKS + YES + GCC_PREFIX_HEADER + Target Support Files/SnapKit/SnapKit-prefix.pch + INFOPLIST_FILE + Target Support Files/SnapKit/Info.plist + INSTALL_PATH + $(LOCAL_LIBRARY_DIR)/Frameworks + IPHONEOS_DEPLOYMENT_TARGET + 8.0 + LD_RUNPATH_SEARCH_PATHS + + $(inherited) + @executable_path/Frameworks + @loader_path/Frameworks + + MODULEMAP_FILE + Target Support Files/SnapKit/SnapKit.modulemap + MTL_ENABLE_DEBUG_INFO + NO + PRODUCT_NAME + SnapKit + SDKROOT + iphoneos + SKIP_INSTALL + YES + TARGETED_DEVICE_FAMILY + 1,2 + VERSIONING_SYSTEM + apple-generic + VERSION_INFO_PREFIX + + + isa + XCBuildConfiguration + name + Release + + F3132422696A8E14ED71162F16F900B0 + + fileRef + 87CCF4DB7EFBDC070B92BFC0BC0D2C8C + isa + PBXBuildFile + + F37E0413588FEF57B185C90A28936627 + + containerPortal + D41D8CD98F00B204E9800998ECF8427E + isa + PBXContainerItemProxy + proxyType + 1 + remoteGlobalIDString + 387CBFD0CECEC9E8DA816C353D8AA44B + remoteInfo + SnapKit + + F49E6C75BCE430958DB1CC52D1914458 + + children + + 80DA2BFE26A78E748CCDAD5FE668A48C + + isa + PBXGroup + name + Pod + path + Pod + sourceTree + <group> + + F4BDFB4BCFC42C98938E70B06FC40921 + + children + + D6E0DF24DD4243EB00821C0996A56027 + E05C697D61064335D42A08CC9BD13553 + + isa + PBXGroup + name + Targets Support Files + sourceTree + <group> + + F7C1C7995CD2F101DD63DDC91BAABAA9 + + buildConfigurationList + 974C53BD384AA0C93E683E5246B81AF3 + buildPhases + + 07AC5B339761C60E4C8735BC1C4F5E84 + 618F63A95B22676C4FA61F86A5AB3136 + 9BA657C14DCF4133528472C8E44F67CD + + buildRules + + dependencies + + 94616D549170E6823044A6E5E95F9E86 + 68B1870B4B682D119A8F8E735AEB1AA7 + + isa + PBXNativeTarget + name + Pods-LiquidFloatingActionButton_Example + productName + Pods-LiquidFloatingActionButton_Example + productReference + 1C56ABE3696B5A7C30A744B23F17B774 + productType + com.apple.product-type.framework + + F8B99B2534B76BA3A39D5787434BA16E + + fileRef + 813C2A5263E149C889A2DF40FFDD89BA + isa + PBXBuildFile + + F9319AF949935BC0602093E0830E8B10 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + name + ConstraintConstantTarget.swift + path + Source/ConstraintConstantTarget.swift + sourceTree + <group> + + F9CE954751AE262BA38DCEAFEE1B5D33 + + baseConfigurationReference + 050B0D0CB0787BEA95A638CEB77D19BC + buildSettings + + CODE_SIGN_IDENTITY[sdk=iphoneos*] + iPhone Developer + CURRENT_PROJECT_VERSION + 1 + DEBUG_INFORMATION_FORMAT + dwarf-with-dsym + DEFINES_MODULE + YES + DYLIB_COMPATIBILITY_VERSION + 1 + DYLIB_CURRENT_VERSION + 1 + DYLIB_INSTALL_NAME_BASE + @rpath + ENABLE_STRICT_OBJC_MSGSEND + YES + GCC_NO_COMMON_BLOCKS + YES + GCC_PREFIX_HEADER + Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton-prefix.pch + INFOPLIST_FILE + Target Support Files/LiquidFloatingActionButton/Info.plist + INSTALL_PATH + $(LOCAL_LIBRARY_DIR)/Frameworks + IPHONEOS_DEPLOYMENT_TARGET + 8.0 + LD_RUNPATH_SEARCH_PATHS + + $(inherited) + @executable_path/Frameworks + @loader_path/Frameworks + + MODULEMAP_FILE + Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.modulemap + MTL_ENABLE_DEBUG_INFO + NO + PRODUCT_NAME + LiquidFloatingActionButton + SDKROOT + iphoneos + SKIP_INSTALL + YES + TARGETED_DEVICE_FAMILY + 1,2 + VERSIONING_SYSTEM + apple-generic + VERSION_INFO_PREFIX + + + isa + XCBuildConfiguration + name + Release + + FB4B87C1866264B4C63C18C6D89EC703 + + fileRef + D691EE87C404B7D086624B5801982F43 + isa + PBXBuildFile + + FCB3E800ADEFE141C46C6B85E298DF53 + + children + + 05703C849B29D1EF8195C8FE0EC6AF9E + + isa + PBXGroup + name + Pods + sourceTree + <group> + + FD568EC2ADE52671E9F40F5B7FE5D901 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + Pods-LiquidFloatingActionButton_Tests-umbrella.h + sourceTree + <group> + + FFFBAAED7A3ADC328B1EE0193BF98138 + + fileRef + B525F7008B3760076D71FE29C0859BDC + isa + PBXBuildFile + + + rootObject + D41D8CD98F00B204E9800998ECF8427E + + diff --git a/Example/Pods/SnapKit/README.md b/Example/Pods/SnapKit/README.md index 14be1f0..0e5ac50 100644 --- a/Example/Pods/SnapKit/README.md +++ b/Example/Pods/SnapKit/README.md @@ -3,9 +3,101 @@ SnapKit is a DSL to make Auto Layout easy on both iOS and OS X. [![Build Status](https://travis-ci.org/SnapKit/SnapKit.svg)](https://travis-ci.org/SnapKit/SnapKit) -[![Cocoapods Compatible](https://img.shields.io/cocoapods/v/SnapKit.svg)](https://img.shields.io/cocoapods/v/SnapKit.svg) +[![Platform](https://img.shields.io/cocoapods/p/SnapKit.svg?style=flat)](https://github.com/SnapKit/SnapKit) +[![Cocoapods Compatible](https://img.shields.io/cocoapods/v/SnapKit.svg)](https://cocoapods.org/pods/SnapKit) [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) +#### ⚠️ **To use with Swift 2.x please ensure you are using == 0.22.0** ⚠️ +#### ⚠️ **To use with Swift 3.x please ensure you are using >= 3.0.0** ⚠️ + +## Contents + +- [Requirements](#requirements) +- [Migration Guides](#migration-guides) +- [Communication](#communication) +- [Installation](#installation) +- [Usage](#usage) +- [Credits](#credits) +- [License](#license) + +## Requirements + +- iOS 8.0+ / Mac OS X 10.11+ / tvOS 9.0+ +- Xcode 8.0+ +- Swift 3.0+ + +## Migration Guides + +- [SnapKit 3.0 Migration Guide](https://github.com/SnapKit/SnapKit/blob/master/Documentation/SnapKit%203.0%20Migration%20Guide.md) + +## Communication + +- If you **need help**, use [Stack Overflow](http://stackoverflow.com/questions/tagged/snapkit). (Tag 'snapkit') +- If you'd like to **ask a general question**, use [Stack Overflow](http://stackoverflow.com/questions/tagged/snapkit). +- If you **found a bug**, open an issue. +- If you **have a feature request**, open an issue. +- If you **want to contribute**, submit a pull request. + + +## Installation + +### CocoaPods + +[CocoaPods](http://cocoapods.org) is a dependency manager for Cocoa projects. You can install it with the following command: + +```bash +$ gem install cocoapods +``` + +> CocoaPods 1.1.0+ is required to build SnapKit 3.0.0+. + +To integrate SnapKit into your Xcode project using CocoaPods, specify it in your `Podfile`: + +```ruby +source 'https://github.com/CocoaPods/Specs.git' +platform :ios, '10.0' +use_frameworks! + +target '' do + pod 'SnapKit', '~> 3.0' +end +``` + +Then, run the following command: + +```bash +$ pod install +``` + +### Carthage + +[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. + +You can install Carthage with [Homebrew](http://brew.sh/) using the following command: + +```bash +$ brew update +$ brew install carthage +``` + +To integrate SnapKit into your Xcode project using Carthage, specify it in your `Cartfile`: + +```ogdl +github "SnapKit/SnapKit" ~> 3.0 +``` + +Run `carthage update` to build the framework and drag the built `SnapKit.framework` into your Xcode project. + +### Manually + +If you prefer not to use either of the aforementioned dependency managers, you can integrate SnapKit into your project manually. + +--- + +## Usage + +### Quick Start + ```swift import SnapKit @@ -17,7 +109,7 @@ class MyViewController: UIViewController { super.viewDidLoad() self.view.addSubview(box) - box.snp_makeConstraints { (make) -> Void in + box.snp.makeConstraints { (make) -> Void in make.width.height.equalTo(50) make.center.equalTo(self.view) } @@ -26,12 +118,16 @@ class MyViewController: UIViewController { } ``` -## Resources +### Resources + +- [Documentation](http://snapkit.io/docs/) +- [F.A.Q.](http://snapkit.io/faq/) + +## Credits -* [Documentation](http://snapkit.io/docs/) -* [F.A.Q.](http://snapkit.io/faq/) -* [Legacy Platforms (iOS 7.0, OS X 10.9)](http://snapkit.io/legacy-platforms/) +- Robert Payne ([@robertjpayne](https://twitter.com/robertjpayne)) +- Many other contributors ## License -MIT license. See the `LICENSE` file for details. +SnapKit is released under the MIT license. See LICENSE for details. diff --git a/Example/Pods/SnapKit/Source/Constraint.swift b/Example/Pods/SnapKit/Source/Constraint.swift index 0c7de46..b93a8d9 100644 --- a/Example/Pods/SnapKit/Source/Constraint.swift +++ b/Example/Pods/SnapKit/Source/Constraint.swift @@ -22,483 +22,247 @@ // THE SOFTWARE. #if os(iOS) || os(tvOS) -import UIKit + import UIKit #else -import AppKit + import AppKit #endif -/** - Used to expose API's for a Constraint -*/ -open class Constraint { +public class Constraint { - open func install() -> [LayoutConstraint] { fatalError("Must be implemented by Concrete subclass.") } - open func uninstall() -> Void { fatalError("Must be implemented by Concrete subclass.") } - open func activate() -> Void { fatalError("Must be implemented by Concrete subclass.") } - open func deactivate() -> Void { fatalError("Must be implemented by Concrete subclass.") } + internal let sourceLocation: (String, UInt) + internal let label: String? - open func updateOffset(_ amount: Float) -> Void { fatalError("Must be implemented by Concrete subclass.") } - open func updateOffset(_ amount: Double) -> Void { fatalError("Must be implemented by Concrete subclass.") } - open func updateOffset(_ amount: CGFloat) -> Void { fatalError("Must be implemented by Concrete subclass.") } - open func updateOffset(_ amount: Int) -> Void { fatalError("Must be implemented by Concrete subclass.") } - open func updateOffset(_ amount: UInt) -> Void { fatalError("Must be implemented by Concrete subclass.") } - open func updateOffset(_ amount: CGPoint) -> Void { fatalError("Must be implemented by Concrete subclass.") } - open func updateOffset(_ amount: CGSize) -> Void { fatalError("Must be implemented by Concrete subclass.") } - open func updateOffset(_ amount: EdgeInsets) -> Void { fatalError("Must be implemented by Concrete subclass.") } - - open func updateInsets(_ amount: EdgeInsets) -> Void { fatalError("Must be implemented by Concrete subclass.") } - - open func updatePriority(_ priority: Float) -> Void { fatalError("Must be implemented by Concrete subclass.") } - open func updatePriority(_ priority: Double) -> Void { fatalError("Must be implemented by Concrete subclass.") } - open func updatePriority(_ priority: CGFloat) -> Void { fatalError("Must be implemented by Concrete subclass.") } - open func updatePriority(_ priority: UInt) -> Void { fatalError("Must be implemented by Concrete subclass.") } - open func updatePriority(_ priority: Int) -> Void { fatalError("Must be implemented by Concrete subclass.") } - open func updatePriorityRequired() -> Void { fatalError("Must be implemented by Concrete subclass.") } - open func updatePriorityHigh() -> Void { fatalError("Must be implemented by Concrete subclass.") } - open func updatePriorityMedium() -> Void { fatalError("Must be implemented by Concrete subclass.") } - open func updatePriorityLow() -> Void { fatalError("Must be implemented by Concrete subclass.") } - - internal var makerFile: String = "Unknown" - internal var makerLine: UInt = 0 - -} - -/** - Used internally to implement a ConcreteConstraint -*/ -internal class ConcreteConstraint: Constraint { - - internal override func updateOffset(_ amount: Float) -> Void { - self.constant = amount - } - internal override func updateOffset(_ amount: Double) -> Void { - self.updateOffset(Float(amount)) - } - internal override func updateOffset(_ amount: CGFloat) -> Void { - self.updateOffset(Float(amount)) - } - internal override func updateOffset(_ amount: Int) -> Void { - self.updateOffset(Float(amount)) - } - internal override func updateOffset(_ amount: UInt) -> Void { - self.updateOffset(Float(amount)) - } - internal override func updateOffset(_ amount: CGPoint) -> Void { - self.constant = amount - } - internal override func updateOffset(_ amount: CGSize) -> Void { - self.constant = amount - } - internal override func updateOffset(_ amount: EdgeInsets) -> Void { - self.constant = amount - } - - internal override func updateInsets(_ amount: EdgeInsets) -> Void { - self.constant = EdgeInsets(top: amount.top, left: amount.left, bottom: -amount.bottom, right: -amount.right) - } - - internal override func updatePriority(_ priority: Float) -> Void { - self.priority = priority - } - internal override func updatePriority(_ priority: Double) -> Void { - self.updatePriority(Float(priority)) - } - internal override func updatePriority(_ priority: CGFloat) -> Void { - self.updatePriority(Float(priority)) - } - internal override func updatePriority(_ priority: UInt) -> Void { - self.updatePriority(Float(priority)) - } - internal override func updatePriority(_ priority: Int) -> Void { - self.updatePriority(Float(priority)) - } - internal override func updatePriorityRequired() -> Void { - self.updatePriority(Float(1000.0)) - } - internal override func updatePriorityHigh() -> Void { - self.updatePriority(Float(750.0)) - } - internal override func updatePriorityMedium() -> Void { - #if os(iOS) || os(tvOS) - self.updatePriority(Float(500.0)) - #else - self.updatePriority(Float(501.0)) - #endif - } - internal override func updatePriorityLow() -> Void { - self.updatePriority(Float(250.0)) - } - - internal override func install() -> [LayoutConstraint] { - return self.installOnView(updateExisting: false, file: self.makerFile, line: self.makerLine) - } - - internal override func uninstall() -> Void { - self.uninstallFromView() - } - - internal override func activate() -> Void { - guard self.installInfo != nil else { - self.install() - return - } - #if SNAPKIT_DEPLOYMENT_LEGACY - guard #available(iOS 8.0, OSX 10.10, *) else { - self.install() - return - } - #endif - let layoutConstraints = self.installInfo!.layoutConstraints.allObjects as! [LayoutConstraint] - if layoutConstraints.count > 0 { - NSLayoutConstraint.activate(layoutConstraints) - } - } - - internal override func deactivate() -> Void { - guard self.installInfo != nil else { - return - } - #if SNAPKIT_DEPLOYMENT_LEGACY - guard #available(iOS 8.0, OSX 10.10, *) else { - return - } - #endif - let layoutConstraints = self.installInfo!.layoutConstraints.allObjects as! [LayoutConstraint] - if layoutConstraints.count > 0 { - NSLayoutConstraint.deactivate(layoutConstraints) - } - } - - fileprivate let fromItem: ConstraintItem - fileprivate let toItem: ConstraintItem - fileprivate let relation: ConstraintRelation - fileprivate let multiplier: Float - fileprivate var constant: Any { + private let from: ConstraintItem + private let to: ConstraintItem + private let relation: ConstraintRelation + private let multiplier: ConstraintMultiplierTarget + private var constant: ConstraintConstantTarget { didSet { - if let installInfo = self.installInfo { - for layoutConstraint in installInfo.layoutConstraints.allObjects as! [LayoutConstraint] { - let attribute = (layoutConstraint.secondAttribute == .notAnAttribute) ? layoutConstraint.firstAttribute : layoutConstraint.secondAttribute - layoutConstraint.constant = attribute.snp_constantForValue(self.constant) - } - } + self.updateConstantAndPriorityIfNeeded() } } - fileprivate var priority: Float { + private var priority: ConstraintPriorityTarget { didSet { - if let installInfo = self.installInfo { - for layoutConstraint in installInfo.layoutConstraints.allObjects as! [LayoutConstraint] { - layoutConstraint.priority = self.priority - } - } + self.updateConstantAndPriorityIfNeeded() } } + private var layoutConstraints: [LayoutConstraint] - fileprivate let label: String? - - fileprivate var installInfo: ConcreteConstraintInstallInfo? = nil + // MARK: Initialization - internal init(fromItem: ConstraintItem, toItem: ConstraintItem, relation: ConstraintRelation, constant: Any, multiplier: Float, priority: Float, label: String? = nil) { - self.fromItem = fromItem - self.toItem = toItem + internal init(from: ConstraintItem, + to: ConstraintItem, + relation: ConstraintRelation, + sourceLocation: (String, UInt), + label: String?, + multiplier: ConstraintMultiplierTarget, + constant: ConstraintConstantTarget, + priority: ConstraintPriorityTarget) { + self.from = from + self.to = to self.relation = relation - self.constant = constant + self.sourceLocation = sourceLocation + self.label = label self.multiplier = multiplier + self.constant = constant self.priority = priority - self.label = label - } - - internal func installOnView(updateExisting: Bool = false, file: String? = nil, line: UInt? = nil) -> [LayoutConstraint] { - var installOnView: View? = nil - if self.toItem.view != nil { - installOnView = closestCommonSuperviewFromView(self.fromItem.view, toView: self.toItem.view) - if installOnView == nil { - NSException(name: NSExceptionName(rawValue: "Cannot Install Constraint"), reason: "No common superview between views (@\(self.makerFile)#\(self.makerLine))", userInfo: nil).raise() - return [] - } - } else { - - if self.fromItem.attributes.isSubset(of: ConstraintAttributes.Width.union(.Height)) { - installOnView = self.fromItem.view - } else { - installOnView = self.fromItem.view?.superview - if installOnView == nil { - NSException(name: NSExceptionName(rawValue: "Cannot Install Constraint"), reason: "Missing superview (@\(self.makerFile)#\(self.makerLine))", userInfo: nil).raise() - return [] - } - } - } - - if let installedOnView = self.installInfo?.view { - if installedOnView != installOnView { - NSException(name: NSExceptionName(rawValue: "Cannot Install Constraint"), reason: "Already installed on different view. (@\(self.makerFile)#\(self.makerLine))", userInfo: nil).raise() - return [] - } - return self.installInfo?.layoutConstraints.allObjects as? [LayoutConstraint] ?? [] - } + self.layoutConstraints = [] - var newLayoutConstraints = [LayoutConstraint]() - let layoutFromAttributes = self.fromItem.attributes.layoutAttributes - let layoutToAttributes = self.toItem.attributes.layoutAttributes + // get attributes + let layoutFromAttributes = self.from.attributes.layoutAttributes + let layoutToAttributes = self.to.attributes.layoutAttributes // get layout from - let layoutFrom: View? = self.fromItem.view + let layoutFrom: ConstraintView = self.from.view! - // get layout relation - let layoutRelation: NSLayoutRelation = self.relation.layoutRelation + // get relation + let layoutRelation = self.relation.layoutRelation for layoutFromAttribute in layoutFromAttributes { // get layout to attribute - let layoutToAttribute = (layoutToAttributes.count > 0) ? layoutToAttributes[0] : layoutFromAttribute + let layoutToAttribute: NSLayoutAttribute + #if os(iOS) || os(tvOS) + if layoutToAttributes.count > 0 { + if self.from.attributes == .edges && self.to.attributes == .margins { + switch layoutFromAttribute { + case .left: + layoutToAttribute = .leftMargin + case .right: + layoutToAttribute = .rightMargin + case .top: + layoutToAttribute = .topMargin + case .bottom: + layoutToAttribute = .bottomMargin + default: + fatalError() + } + } else if self.from.attributes == .margins && self.to.attributes == .edges { + switch layoutFromAttribute { + case .leftMargin: + layoutToAttribute = .left + case .rightMargin: + layoutToAttribute = .right + case .topMargin: + layoutToAttribute = .top + case .bottomMargin: + layoutToAttribute = .bottom + default: + fatalError() + } + } else if self.from.attributes == self.to.attributes { + layoutToAttribute = layoutFromAttribute + } else { + layoutToAttribute = layoutToAttributes[0] + } + } else { + layoutToAttribute = layoutFromAttribute + } + #else + if self.from.attributes == self.to.attributes { + layoutToAttribute = layoutFromAttribute + } else if layoutToAttributes.count > 0 { + layoutToAttribute = layoutToAttributes[0] + } else { + layoutToAttribute = layoutFromAttribute + } + #endif // get layout constant - let layoutConstant: CGFloat = layoutToAttribute.snp_constantForValue(self.constant) + let layoutConstant: CGFloat = self.constant.constraintConstantTargetValueFor(layoutAttribute: layoutToAttribute) // get layout to - #if os(iOS) || os(tvOS) - var layoutTo: AnyObject? = self.toItem.view ?? self.toItem.layoutSupport - #else - var layoutTo: AnyObject? = self.toItem.view - #endif + var layoutTo: AnyObject? = self.to.target + + // use superview if possible if layoutTo == nil && layoutToAttribute != .width && layoutToAttribute != .height { - layoutTo = installOnView + layoutTo = layoutFrom.superview } // create layout constraint let layoutConstraint = LayoutConstraint( - item: layoutFrom!, + item: layoutFrom, attribute: layoutFromAttribute, relatedBy: layoutRelation, toItem: layoutTo, attribute: layoutToAttribute, - multiplier: CGFloat(self.multiplier), - constant: layoutConstant) - layoutConstraint.identifier = self.label + multiplier: self.multiplier.constraintMultiplierTargetValue, + constant: layoutConstant + ) + + // set label + layoutConstraint.label = self.label // set priority - layoutConstraint.priority = self.priority + layoutConstraint.priority = self.priority.constraintPriorityTargetValue // set constraint - layoutConstraint.snp_constraint = self + layoutConstraint.constraint = self - newLayoutConstraints.append(layoutConstraint) + // append + self.layoutConstraints.append(layoutConstraint) } - - // special logic for updating - if updateExisting { - // get existing constraints for this view - let existingLayoutConstraints = layoutFrom!.snp_installedLayoutConstraints.reversed() - - // array that will contain only new layout constraints to keep - var newLayoutConstraintsToKeep = [LayoutConstraint]() - - // begin looping - for layoutConstraint in newLayoutConstraints { - // layout constraint that should be updated - var updateLayoutConstraint: LayoutConstraint? = nil - - // loop through existing and check for match - for existingLayoutConstraint in existingLayoutConstraints { - if existingLayoutConstraint == layoutConstraint { - updateLayoutConstraint = existingLayoutConstraint - break - } - } - - // if we have existing one lets just update the constant - if updateLayoutConstraint != nil { - updateLayoutConstraint!.constant = layoutConstraint.constant - } - // otherwise add this layout constraint to new keep list - else { - newLayoutConstraintsToKeep.append(layoutConstraint) - } - } - - // set constraints to only new ones - newLayoutConstraints = newLayoutConstraintsToKeep - } - - // add constraints - #if SNAPKIT_DEPLOYMENT_LEGACY && !os(OSX) - if #available(iOS 8.0, *) { - NSLayoutConstraint.activateConstraints(newLayoutConstraints) - } else { - installOnView!.addConstraints(newLayoutConstraints) - } - #else - NSLayoutConstraint.activate(newLayoutConstraints) - #endif - - // set install info - self.installInfo = ConcreteConstraintInstallInfo(view: installOnView, layoutConstraints: NSHashTable.weakObjects()) - - // store which layout constraints are installed for this constraint - for layoutConstraint in newLayoutConstraints { - self.installInfo!.layoutConstraints.add(layoutConstraint) - } - - // store the layout constraints against the layout from view - layoutFrom!.snp_installedLayoutConstraints += newLayoutConstraints - - // return the new constraints - return newLayoutConstraints } - internal func uninstallFromView() { - if let installInfo = self.installInfo, - let installedLayoutConstraints = installInfo.layoutConstraints.allObjects as? [LayoutConstraint] { - - if installedLayoutConstraints.count > 0 { - // remove the constraints from the UIView's storage - #if SNAPKIT_DEPLOYMENT_LEGACY && !os(OSX) - if #available(iOS 8.0, *) { - NSLayoutConstraint.deactivateConstraints(installedLayoutConstraints) - } else if let installedOnView = installInfo.view { - installedOnView.removeConstraints(installedLayoutConstraints) - } - #else - NSLayoutConstraint.deactivate(installedLayoutConstraints) - #endif - - // remove the constraints from the from item view - if let fromView = self.fromItem.view { - fromView.snp_installedLayoutConstraints = fromView.snp_installedLayoutConstraints.filter { - return !installedLayoutConstraints.contains($0) - } - } - } - - } - self.installInfo = nil + // MARK: Public + + @available(*, deprecated:3.0, message:"Use activate().") + public func install() { + self.activate() } -} - -private struct ConcreteConstraintInstallInfo { + @available(*, deprecated:3.0, message:"Use deactivate().") + public func uninstall() { + self.deactivate() + } - weak var view: View? = nil - let layoutConstraints: NSHashTable + public func activate() { + self.activateIfNeeded() + } -} - -private extension NSLayoutAttribute { + public func deactivate() { + self.deactivateIfNeeded() + } - func snp_constantForValue(_ value: Any?) -> CGFloat { - // Float - if let float = value as? Float { - return CGFloat(float) - } - // Double - else if let double = value as? Double { - return CGFloat(double) - } - // UInt - else if let int = value as? Int { - return CGFloat(int) - } - // Int - else if let uint = value as? UInt { - return CGFloat(uint) - } - // CGFloat - else if let float = value as? CGFloat { - return float - } - // CGSize - else if let size = value as? CGSize { - if self == .width { - return size.width - } else if self == .height { - return size.height - } - } - // CGPoint - else if let point = value as? CGPoint { - #if os(iOS) || os(tvOS) - switch self { - case .left, .centerX, .leftMargin, .centerXWithinMargins: return point.x - case .top, .centerY, .topMargin, .centerYWithinMargins, .lastBaseline, .firstBaseline: return point.y - case .right, .rightMargin: return point.x - case .bottom, .bottomMargin: return point.y - case .leading, .leadingMargin: return point.x - case .trailing, .trailingMargin: return point.x - case .width, .height, .notAnAttribute: return CGFloat(0) - } - #else - switch self { - case .Left, .CenterX: return point.x - case .Top, .CenterY, .Baseline: return point.y - case .Right: return point.x - case .Bottom: return point.y - case .Leading: return point.x - case .Trailing: return point.x - case .Width, .Height, .NotAnAttribute: return CGFloat(0) - case .FirstBaseline: return point.y - } - #endif - } - // EdgeInsets - else if let insets = value as? EdgeInsets { - #if os(iOS) || os(tvOS) - switch self { - case .left, .centerX, .leftMargin, .centerXWithinMargins: return insets.left - case .top, .centerY, .topMargin, .centerYWithinMargins, .lastBaseline, .firstBaseline: return insets.top - case .right, .rightMargin: return insets.right - case .bottom, .bottomMargin: return insets.bottom - case .leading, .leadingMargin: return (Config.interfaceLayoutDirection == .leftToRight) ? insets.left : -insets.right - case .trailing, .trailingMargin: return (Config.interfaceLayoutDirection == .leftToRight) ? insets.right : -insets.left - case .width: return -insets.left + insets.right - case .height: return -insets.top + insets.bottom - case .notAnAttribute: return CGFloat(0) - } - #else - switch self { - case .Left, .CenterX: return insets.left - case .Top, .CenterY, .Baseline: return insets.top - case .Right: return insets.right - case .Bottom: return insets.bottom - case .Leading: return (Config.interfaceLayoutDirection == .LeftToRight) ? insets.left : -insets.right - case .Trailing: return (Config.interfaceLayoutDirection == .LeftToRight) ? insets.right : -insets.left - case .Width: return -insets.left + insets.right - case .Height: return -insets.top + insets.bottom - case .NotAnAttribute: return CGFloat(0) - case .FirstBaseline: return insets.bottom - } - #endif + @discardableResult + public func update(offset: ConstraintOffsetTarget) -> Constraint { + self.constant = offset.constraintOffsetTargetValue + return self + } + + @discardableResult + public func update(inset: ConstraintInsetTarget) -> Constraint { + self.constant = inset.constraintInsetTargetValue + return self + } + + @discardableResult + public func update(priority: ConstraintPriorityTarget) -> Constraint { + self.priority = priority.constraintPriorityTargetValue + return self + } + + @available(*, deprecated:3.0, message:"Use update(offset: ConstraintOffsetTarget) instead.") + public func updateOffset(amount: ConstraintOffsetTarget) -> Void { self.update(offset: amount) } + + @available(*, deprecated:3.0, message:"Use update(inset: ConstraintInsetTarget) instead.") + public func updateInsets(amount: ConstraintInsetTarget) -> Void { self.update(inset: amount) } + + @available(*, deprecated:3.0, message:"Use update(priority: ConstraintPriorityTarget) instead.") + public func updatePriority(amount: ConstraintPriorityTarget) -> Void { self.update(priority: amount) } + + @available(*, obsoleted:3.0, message:"Use update(priority: ConstraintPriorityTarget) instead.") + public func updatePriorityRequired() -> Void {} + + @available(*, obsoleted:3.0, message:"Use update(priority: ConstraintPriorityTarget) instead.") + public func updatePriorityHigh() -> Void { fatalError("Must be implemented by Concrete subclass.") } + + @available(*, obsoleted:3.0, message:"Use update(priority: ConstraintPriorityTarget) instead.") + public func updatePriorityMedium() -> Void { fatalError("Must be implemented by Concrete subclass.") } + + @available(*, obsoleted:3.0, message:"Use update(priority: ConstraintPriorityTarget) instead.") + public func updatePriorityLow() -> Void { fatalError("Must be implemented by Concrete subclass.") } + + // MARK: Internal + + internal func updateConstantAndPriorityIfNeeded() { + for layoutConstraint in self.layoutConstraints { + let attribute = (layoutConstraint.secondAttribute == .notAnAttribute) ? layoutConstraint.firstAttribute : layoutConstraint.secondAttribute + layoutConstraint.constant = self.constant.constraintConstantTargetValueFor(layoutAttribute: attribute) + layoutConstraint.priority = self.priority.constraintPriorityTargetValue } - - return CGFloat(0); } -} - -private func closestCommonSuperviewFromView(_ fromView: View?, toView: View?) -> View? { - var views = Set() - var fromView = fromView - var toView = toView - repeat { - if let view = toView { - if views.contains(view) { - return view - } - views.insert(view) - toView = view.superview + + internal func activateIfNeeded(updatingExisting: Bool = false) { + guard let view = self.from.view else { + print("WARNING: SnapKit failed to get from view from constraint. Activate will be a no-op.") + return } - if let view = fromView { - if views.contains(view) { - return view + let layoutConstraints = self.layoutConstraints + let existingLayoutConstraints = view.snp.constraints.map({ $0.layoutConstraints }).reduce([]) { $0 + $1 } + + if updatingExisting { + for layoutConstraint in layoutConstraints { + let existingLayoutConstraint = existingLayoutConstraints.first { $0 == layoutConstraint } + guard let updateLayoutConstraint = existingLayoutConstraint else { + fatalError("Updated constraint could not find existing matching constraint to update: \(layoutConstraint)") + } + + let updateLayoutAttribute = (updateLayoutConstraint.secondAttribute == .notAnAttribute) ? updateLayoutConstraint.firstAttribute : updateLayoutConstraint.secondAttribute + updateLayoutConstraint.constant = self.constant.constraintConstantTargetValueFor(layoutAttribute: updateLayoutAttribute) } - views.insert(view) - fromView = view.superview + } else { + NSLayoutConstraint.activate(layoutConstraints) + view.snp.add(constraints: [self]) } - } while (fromView != nil || toView != nil) + } - return nil -} - -private func ==(left: ConcreteConstraint, right: ConcreteConstraint) -> Bool { - return (left.fromItem == right.fromItem && - left.toItem == right.toItem && - left.relation == right.relation && - left.multiplier == right.multiplier && - left.priority == right.priority) + internal func deactivateIfNeeded() { + guard let view = self.from.view else { + print("WARNING: SnapKit failed to get from view from constraint. Deactivate will be a no-op.") + return + } + let layoutConstraints = self.layoutConstraints + NSLayoutConstraint.deactivate(layoutConstraints) + view.snp.remove(constraints: [self]) + } } diff --git a/Example/Pods/SnapKit/Source/ConstraintAttributes.swift b/Example/Pods/SnapKit/Source/ConstraintAttributes.swift index 8570b85..7236d24 100644 --- a/Example/Pods/SnapKit/Source/ConstraintAttributes.swift +++ b/Example/Pods/SnapKit/Source/ConstraintAttributes.swift @@ -1,7 +1,7 @@ // // SnapKit // -// Copyright (c) 2011-2015 SnapKit Team - https://github.com/SnapKit +// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -22,14 +22,12 @@ // THE SOFTWARE. #if os(iOS) || os(tvOS) -import UIKit + import UIKit #else -import AppKit + import AppKit #endif -/** - Used to define `NSLayoutAttributes` in a more concise and composite manner -*/ + internal struct ConstraintAttributes: OptionSet { internal init(rawValue: UInt) { @@ -42,7 +40,7 @@ internal struct ConstraintAttributes: OptionSet { self.rawValue = 0 } - internal fileprivate(set) var rawValue: UInt + internal private(set) var rawValue: UInt internal static var allZeros: ConstraintAttributes { return self.init(0) } internal static func convertFromNilLiteral() -> ConstraintAttributes { return self.init(0) } internal var boolValue: Bool { return self.rawValue != 0 } @@ -53,130 +51,140 @@ internal struct ConstraintAttributes: OptionSet { // normal - internal static var None: ConstraintAttributes { return self.init(0) } - internal static var Left: ConstraintAttributes { return self.init(1) } - internal static var Top: ConstraintAttributes { return self.init(2) } - internal static var Right: ConstraintAttributes { return self.init(4) } - internal static var Bottom: ConstraintAttributes { return self.init(8) } - internal static var Leading: ConstraintAttributes { return self.init(16) } - internal static var Trailing: ConstraintAttributes { return self.init(32) } - internal static var Width: ConstraintAttributes { return self.init(64) } - internal static var Height: ConstraintAttributes { return self.init(128) } - internal static var CenterX: ConstraintAttributes { return self.init(256) } - internal static var CenterY: ConstraintAttributes { return self.init(512) } - internal static var Baseline: ConstraintAttributes { return self.init(1024) } + internal static var none: ConstraintAttributes { return self.init(0) } + internal static var left: ConstraintAttributes { return self.init(1) } + internal static var top: ConstraintAttributes { return self.init(2) } + internal static var right: ConstraintAttributes { return self.init(4) } + internal static var bottom: ConstraintAttributes { return self.init(8) } + internal static var leading: ConstraintAttributes { return self.init(16) } + internal static var trailing: ConstraintAttributes { return self.init(32) } + internal static var width: ConstraintAttributes { return self.init(64) } + internal static var height: ConstraintAttributes { return self.init(128) } + internal static var centerX: ConstraintAttributes { return self.init(256) } + internal static var centerY: ConstraintAttributes { return self.init(512) } + internal static var lastBaseline: ConstraintAttributes { return self.init(1024) } + + @available(iOS 8.0, OSX 10.11, *) + internal static var firstBaseline: ConstraintAttributes { return self.init(2048) } @available(iOS 8.0, *) - internal static var FirstBaseline: ConstraintAttributes { return self.init(2048) } - @available(iOS 8.0, *) - internal static var LeftMargin: ConstraintAttributes { return self.init(4096) } + internal static var leftMargin: ConstraintAttributes { return self.init(4096) } + @available(iOS 8.0, *) - internal static var RightMargin: ConstraintAttributes { return self.init(8192) } + internal static var rightMargin: ConstraintAttributes { return self.init(8192) } + @available(iOS 8.0, *) - internal static var TopMargin: ConstraintAttributes { return self.init(16384) } + internal static var topMargin: ConstraintAttributes { return self.init(16384) } + @available(iOS 8.0, *) - internal static var BottomMargin: ConstraintAttributes { return self.init(32768) } + internal static var bottomMargin: ConstraintAttributes { return self.init(32768) } + @available(iOS 8.0, *) - internal static var LeadingMargin: ConstraintAttributes { return self.init(65536) } + internal static var leadingMargin: ConstraintAttributes { return self.init(65536) } + @available(iOS 8.0, *) - internal static var TrailingMargin: ConstraintAttributes { return self.init(131072) } + internal static var trailingMargin: ConstraintAttributes { return self.init(131072) } + @available(iOS 8.0, *) - internal static var CenterXWithinMargins: ConstraintAttributes { return self.init(262144) } + internal static var centerXWithinMargins: ConstraintAttributes { return self.init(262144) } + @available(iOS 8.0, *) - internal static var CenterYWithinMargins: ConstraintAttributes { return self.init(524288) } + internal static var centerYWithinMargins: ConstraintAttributes { return self.init(524288) } // aggregates - internal static var Edges: ConstraintAttributes { return self.init(15) } - internal static var Size: ConstraintAttributes { return self.init(192) } - internal static var Center: ConstraintAttributes { return self.init(768) } + internal static var edges: ConstraintAttributes { return self.init(15) } + internal static var size: ConstraintAttributes { return self.init(192) } + internal static var center: ConstraintAttributes { return self.init(768) } @available(iOS 8.0, *) - internal static var Margins: ConstraintAttributes { return self.init(61440) } + internal static var margins: ConstraintAttributes { return self.init(61440) } @available(iOS 8.0, *) - internal static var CenterWithinMargins: ConstraintAttributes { return self.init(786432) } + internal static var centerWithinMargins: ConstraintAttributes { return self.init(786432) } internal var layoutAttributes:[NSLayoutAttribute] { var attrs = [NSLayoutAttribute]() - if (self.contains(ConstraintAttributes.Left)) { + if (self.contains(ConstraintAttributes.left)) { attrs.append(.left) } - if (self.contains(ConstraintAttributes.Top)) { + if (self.contains(ConstraintAttributes.top)) { attrs.append(.top) } - if (self.contains(ConstraintAttributes.Right)) { + if (self.contains(ConstraintAttributes.right)) { attrs.append(.right) } - if (self.contains(ConstraintAttributes.Bottom)) { + if (self.contains(ConstraintAttributes.bottom)) { attrs.append(.bottom) } - if (self.contains(ConstraintAttributes.Leading)) { + if (self.contains(ConstraintAttributes.leading)) { attrs.append(.leading) } - if (self.contains(ConstraintAttributes.Trailing)) { + if (self.contains(ConstraintAttributes.trailing)) { attrs.append(.trailing) } - if (self.contains(ConstraintAttributes.Width)) { + if (self.contains(ConstraintAttributes.width)) { attrs.append(.width) } - if (self.contains(ConstraintAttributes.Height)) { + if (self.contains(ConstraintAttributes.height)) { attrs.append(.height) } - if (self.contains(ConstraintAttributes.CenterX)) { + if (self.contains(ConstraintAttributes.centerX)) { attrs.append(.centerX) } - if (self.contains(ConstraintAttributes.CenterY)) { + if (self.contains(ConstraintAttributes.centerY)) { attrs.append(.centerY) } - if (self.contains(ConstraintAttributes.Baseline)) { + if (self.contains(ConstraintAttributes.lastBaseline)) { attrs.append(.lastBaseline) } #if os(iOS) || os(tvOS) - #if SNAPKIT_DEPLOYMENT_LEGACY - guard #available(iOS 8.0, *) else { - return attrs - } - #endif - if (self.contains(ConstraintAttributes.FirstBaseline)) { - attrs.append(.firstBaseline) - } - if (self.contains(ConstraintAttributes.LeftMargin)) { - attrs.append(.leftMargin) - } - if (self.contains(ConstraintAttributes.RightMargin)) { - attrs.append(.rightMargin) - } - if (self.contains(ConstraintAttributes.TopMargin)) { - attrs.append(.topMargin) - } - if (self.contains(ConstraintAttributes.BottomMargin)) { - attrs.append(.bottomMargin) - } - if (self.contains(ConstraintAttributes.LeadingMargin)) { - attrs.append(.leadingMargin) - } - if (self.contains(ConstraintAttributes.TrailingMargin)) { - attrs.append(.trailingMargin) - } - if (self.contains(ConstraintAttributes.CenterXWithinMargins)) { - attrs.append(.centerXWithinMargins) - } - if (self.contains(ConstraintAttributes.CenterYWithinMargins)) { - attrs.append(.centerYWithinMargins) - } + if (self.contains(ConstraintAttributes.firstBaseline)) { + attrs.append(.firstBaseline) + } + if (self.contains(ConstraintAttributes.leftMargin)) { + attrs.append(.leftMargin) + } + if (self.contains(ConstraintAttributes.rightMargin)) { + attrs.append(.rightMargin) + } + if (self.contains(ConstraintAttributes.topMargin)) { + attrs.append(.topMargin) + } + if (self.contains(ConstraintAttributes.bottomMargin)) { + attrs.append(.bottomMargin) + } + if (self.contains(ConstraintAttributes.leadingMargin)) { + attrs.append(.leadingMargin) + } + if (self.contains(ConstraintAttributes.trailingMargin)) { + attrs.append(.trailingMargin) + } + if (self.contains(ConstraintAttributes.centerXWithinMargins)) { + attrs.append(.centerXWithinMargins) + } + if (self.contains(ConstraintAttributes.centerYWithinMargins)) { + attrs.append(.centerYWithinMargins) + } #endif return attrs } } + +internal func + (left: ConstraintAttributes, right: ConstraintAttributes) -> ConstraintAttributes { + return left.union(right) +} + internal func +=(left: inout ConstraintAttributes, right: ConstraintAttributes) { left.formUnion(right) } + internal func -=(left: inout ConstraintAttributes, right: ConstraintAttributes) { left.subtract(right) } + internal func ==(left: ConstraintAttributes, right: ConstraintAttributes) -> Bool { return left.rawValue == right.rawValue } diff --git a/Example/Pods/SnapKit/Source/ConstraintDescription.swift b/Example/Pods/SnapKit/Source/ConstraintDescription.swift index a50f993..d961fb5 100644 --- a/Example/Pods/SnapKit/Source/ConstraintDescription.swift +++ b/Example/Pods/SnapKit/Source/ConstraintDescription.swift @@ -1,7 +1,7 @@ // // SnapKit // -// Copyright (c) 2011-2015 SnapKit Team - https://github.com/SnapKit +// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -22,609 +22,48 @@ // THE SOFTWARE. #if os(iOS) || os(tvOS) -import UIKit + import UIKit #else -import AppKit + import AppKit #endif -/** - Used to expose the final API of a `ConstraintDescription` which allows getting a constraint from it - */ -public protocol ConstraintDescriptionFinalizable: class { - - var constraint: Constraint { get } - - func labeled(_ label: String) -> ConstraintDescriptionFinalizable - -} - -/** - Used to expose priority APIs - */ -public protocol ConstraintDescriptionPriortizable: ConstraintDescriptionFinalizable { - - func priority(_ priority: Float) -> ConstraintDescriptionFinalizable - func priority(_ priority: Double) -> ConstraintDescriptionFinalizable - func priority(_ priority: CGFloat) -> ConstraintDescriptionFinalizable - func priority(_ priority: UInt) -> ConstraintDescriptionFinalizable - func priority(_ priority: Int) -> ConstraintDescriptionFinalizable - func priorityRequired() -> ConstraintDescriptionFinalizable - func priorityHigh() -> ConstraintDescriptionFinalizable - func priorityMedium() -> ConstraintDescriptionFinalizable - func priorityLow() -> ConstraintDescriptionFinalizable -} - -/** - Used to expose multiplier & constant APIs -*/ -public protocol ConstraintDescriptionEditable: ConstraintDescriptionPriortizable { - - func multipliedBy(_ amount: Float) -> ConstraintDescriptionEditable - func multipliedBy(_ amount: Double) -> ConstraintDescriptionEditable - func multipliedBy(_ amount: CGFloat) -> ConstraintDescriptionEditable - func multipliedBy(_ amount: Int) -> ConstraintDescriptionEditable - func multipliedBy(_ amount: UInt) -> ConstraintDescriptionEditable - - func dividedBy(_ amount: Float) -> ConstraintDescriptionEditable - func dividedBy(_ amount: Double) -> ConstraintDescriptionEditable - func dividedBy(_ amount: CGFloat) -> ConstraintDescriptionEditable - func dividedBy(_ amount: Int) -> ConstraintDescriptionEditable - func dividedBy(_ amount: UInt) -> ConstraintDescriptionEditable - func offset(_ amount: Float) -> ConstraintDescriptionEditable - func offset(_ amount: Double) -> ConstraintDescriptionEditable - func offset(_ amount: CGFloat) -> ConstraintDescriptionEditable - func offset(_ amount: Int) -> ConstraintDescriptionEditable - func offset(_ amount: UInt) -> ConstraintDescriptionEditable - func offset(_ amount: CGPoint) -> ConstraintDescriptionEditable - func offset(_ amount: CGSize) -> ConstraintDescriptionEditable - func offset(_ amount: EdgeInsets) -> ConstraintDescriptionEditable - - func inset(_ amount: Float) -> ConstraintDescriptionEditable - func inset(_ amount: Double) -> ConstraintDescriptionEditable - func inset(_ amount: CGFloat) -> ConstraintDescriptionEditable - func inset(_ amount: Int) -> ConstraintDescriptionEditable - func inset(_ amount: UInt) -> ConstraintDescriptionEditable - func inset(_ amount: EdgeInsets) -> ConstraintDescriptionEditable -} - -/** - Used to expose relation APIs -*/ -public protocol ConstraintDescriptionRelatable: class { - - func equalTo(_ other: ConstraintItem) -> ConstraintDescriptionEditable - func equalTo(_ other: View) -> ConstraintDescriptionEditable - func equalToSuperview() -> ConstraintDescriptionEditable - @available(iOS 7.0, *) - func equalTo(_ other: LayoutSupport) -> ConstraintDescriptionEditable - @available(iOS 9.0, OSX 10.11, *) - func equalTo(other: NSLayoutAnchor) -> ConstraintDescriptionEditable - func equalTo(_ other: Float) -> ConstraintDescriptionEditable - func equalTo(_ other: Double) -> ConstraintDescriptionEditable - func equalTo(_ other: CGFloat) -> ConstraintDescriptionEditable - func equalTo(_ other: Int) -> ConstraintDescriptionEditable - func equalTo(_ other: UInt) -> ConstraintDescriptionEditable - func equalTo(_ other: CGSize) -> ConstraintDescriptionEditable - func equalTo(_ other: CGPoint) -> ConstraintDescriptionEditable - func equalTo(_ other: EdgeInsets) -> ConstraintDescriptionEditable - - func lessThanOrEqualTo(_ other: ConstraintItem) -> ConstraintDescriptionEditable - func lessThanOrEqualTo(_ other: View) -> ConstraintDescriptionEditable - func lessThanOrEqualToSuperview() -> ConstraintDescriptionEditable - @available(iOS 7.0, *) - func lessThanOrEqualTo(_ other: LayoutSupport) -> ConstraintDescriptionEditable - @available(iOS 9.0, OSX 10.11, *) - func lessThanOrEqualTo(other: NSLayoutAnchor) -> ConstraintDescriptionEditable - func lessThanOrEqualTo(_ other: Float) -> ConstraintDescriptionEditable - func lessThanOrEqualTo(_ other: Double) -> ConstraintDescriptionEditable - func lessThanOrEqualTo(_ other: CGFloat) -> ConstraintDescriptionEditable - func lessThanOrEqualTo(_ other: Int) -> ConstraintDescriptionEditable - func lessThanOrEqualTo(_ other: UInt) -> ConstraintDescriptionEditable - func lessThanOrEqualTo(_ other: CGSize) -> ConstraintDescriptionEditable - func lessThanOrEqualTo(_ other: CGPoint) -> ConstraintDescriptionEditable - func lessThanOrEqualTo(_ other: EdgeInsets) -> ConstraintDescriptionEditable - - func greaterThanOrEqualTo(_ other: ConstraintItem) -> ConstraintDescriptionEditable - func greaterThanOrEqualTo(_ other: View) -> ConstraintDescriptionEditable - func greaterThanOrEqualToSuperview() -> ConstraintDescriptionEditable - @available(iOS 7.0, *) - func greaterThanOrEqualTo(_ other: LayoutSupport) -> ConstraintDescriptionEditable - @available(iOS 9.0, OSX 10.11, *) - func greaterThanOrEqualTo(other: NSLayoutAnchor) -> ConstraintDescriptionEditable - func greaterThanOrEqualTo(_ other: Float) -> ConstraintDescriptionEditable - func greaterThanOrEqualTo(_ other: Double) -> ConstraintDescriptionEditable - func greaterThanOrEqualTo(_ other: CGFloat) -> ConstraintDescriptionEditable - func greaterThanOrEqualTo(_ other: Int) -> ConstraintDescriptionEditable - func greaterThanOrEqualTo(_ other: UInt) -> ConstraintDescriptionEditable - func greaterThanOrEqualTo(_ other: CGSize) -> ConstraintDescriptionEditable - func greaterThanOrEqualTo(_ other: CGPoint) -> ConstraintDescriptionEditable - func greaterThanOrEqualTo(_ other: EdgeInsets) -> ConstraintDescriptionEditable - -} - -/** - Used to expose chaining APIs -*/ -public protocol ConstraintDescriptionExtendable: ConstraintDescriptionRelatable { - - var left: ConstraintDescriptionExtendable { get } - var top: ConstraintDescriptionExtendable { get } - var bottom: ConstraintDescriptionExtendable { get } - var right: ConstraintDescriptionExtendable { get } - var leading: ConstraintDescriptionExtendable { get } - var trailing: ConstraintDescriptionExtendable { get } - var width: ConstraintDescriptionExtendable { get } - var height: ConstraintDescriptionExtendable { get } - var centerX: ConstraintDescriptionExtendable { get } - var centerY: ConstraintDescriptionExtendable { get } - var baseline: ConstraintDescriptionExtendable { get } - - @available(iOS 8.0, *) - var firstBaseline: ConstraintDescriptionExtendable { get } - @available(iOS 8.0, *) - var leftMargin: ConstraintDescriptionExtendable { get } - @available(iOS 8.0, *) - var rightMargin: ConstraintDescriptionExtendable { get } - @available(iOS 8.0, *) - var topMargin: ConstraintDescriptionExtendable { get } - @available(iOS 8.0, *) - var bottomMargin: ConstraintDescriptionExtendable { get } - @available(iOS 8.0, *) - var leadingMargin: ConstraintDescriptionExtendable { get } - @available(iOS 8.0, *) - var trailingMargin: ConstraintDescriptionExtendable { get } - @available(iOS 8.0, *) - var centerXWithinMargins: ConstraintDescriptionExtendable { get } - @available(iOS 8.0, *) - var centerYWithinMargins: ConstraintDescriptionExtendable { get } -} - -/** - Used to internally manage building constraint - */ -internal class ConstraintDescription: ConstraintDescriptionExtendable, ConstraintDescriptionEditable, ConstraintDescriptionFinalizable { - - internal var left: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.Left) } - internal var top: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.Top) } - internal var right: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.Right) } - internal var bottom: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.Bottom) } - internal var leading: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.Leading) } - internal var trailing: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.Trailing) } - internal var width: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.Width) } - internal var height: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.Height) } - internal var centerX: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.CenterX) } - internal var centerY: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.CenterY) } - internal var baseline: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.Baseline) } - internal var label: String? - - @available(iOS 8.0, *) - internal var firstBaseline: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.FirstBaseline) } - @available(iOS 8.0, *) - internal var leftMargin: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.LeftMargin) } - @available(iOS 8.0, *) - internal var rightMargin: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.RightMargin) } - @available(iOS 8.0, *) - internal var topMargin: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.TopMargin) } - @available(iOS 8.0, *) - internal var bottomMargin: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.BottomMargin) } - @available(iOS 8.0, *) - internal var leadingMargin: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.LeadingMargin) } - @available(iOS 8.0, *) - internal var trailingMargin: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.TrailingMargin) } - @available(iOS 8.0, *) - internal var centerXWithinMargins: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.CenterXWithinMargins) } - @available(iOS 8.0, *) - internal var centerYWithinMargins: ConstraintDescriptionExtendable { return self.addConstraint(ConstraintAttributes.CenterYWithinMargins) } - - // MARK: initializer - - init(fromItem: ConstraintItem) { - self.fromItem = fromItem - self.toItem = ConstraintItem(object: nil, attributes: ConstraintAttributes.None) - } - - // MARK: equalTo - - internal func equalTo(_ other: ConstraintItem) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .equal) - } - internal func equalTo(_ other: View) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .equal) - } - internal func equalToSuperview() -> ConstraintDescriptionEditable { - guard let superview = fromItem.view?.superview else { - fatalError("equalToSuperview() requires the view have a superview before being set.") - } - - return self.equalTo(superview) - } - @available(iOS 7.0, *) - internal func equalTo(_ other: LayoutSupport) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .equal) - } - @available(iOS 9.0, OSX 10.11, *) - internal func equalTo(other: NSLayoutAnchor) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .equal) - } - internal func equalTo(_ other: Float) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .equal) - } - internal func equalTo(_ other: Double) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .equal) - } - internal func equalTo(_ other: CGFloat) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .equal) - } - internal func equalTo(_ other: Int) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .equal) - } - internal func equalTo(_ other: UInt) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .equal) - } - internal func equalTo(_ other: CGSize) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .equal) - } - internal func equalTo(_ other: CGPoint) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .equal) - } - internal func equalTo(_ other: EdgeInsets) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .equal) - } - - // MARK: lessThanOrEqualTo - - internal func lessThanOrEqualTo(_ other: ConstraintItem) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .lessThanOrEqualTo) - } - internal func lessThanOrEqualTo(_ other: View) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .lessThanOrEqualTo) - } - internal func lessThanOrEqualToSuperview() -> ConstraintDescriptionEditable { - guard let superview = fromItem.view?.superview else { - fatalError("lessThanOrEqualToSuperview() requires the view have a superview before being set.") +public class ConstraintDescription { + + internal let view: ConstraintView + internal var attributes: ConstraintAttributes + internal var relation: ConstraintRelation? = nil + internal var sourceLocation: (String, UInt)? = nil + internal var label: String? = nil + internal var related: ConstraintItem? = nil + internal var multiplier: ConstraintMultiplierTarget = 1.0 + internal var constant: ConstraintConstantTarget = 0.0 + internal var priority: ConstraintPriorityTarget = 1000.0 + internal lazy var constraint: Constraint? = { + guard let relation = self.relation, + let related = self.related, + let sourceLocation = self.sourceLocation else { + return nil } + let from = ConstraintItem(target: self.view, attributes: self.attributes) - return self.lessThanOrEqualTo(superview) - } - @available(iOS 7.0, *) - internal func lessThanOrEqualTo(_ other: LayoutSupport) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .lessThanOrEqualTo) - } - @available(iOS 9.0, OSX 10.11, *) - internal func lessThanOrEqualTo(other: NSLayoutAnchor) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .lessThanOrEqualTo) - } - internal func lessThanOrEqualTo(_ other: Float) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .lessThanOrEqualTo) - } - internal func lessThanOrEqualTo(_ other: Double) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .lessThanOrEqualTo) - } - internal func lessThanOrEqualTo(_ other: CGFloat) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .lessThanOrEqualTo) - } - internal func lessThanOrEqualTo(_ other: Int) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .lessThanOrEqualTo) - } - internal func lessThanOrEqualTo(_ other: UInt) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .lessThanOrEqualTo) - } - internal func lessThanOrEqualTo(_ other: CGSize) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .lessThanOrEqualTo) - } - internal func lessThanOrEqualTo(_ other: CGPoint) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .lessThanOrEqualTo) - } - internal func lessThanOrEqualTo(_ other: EdgeInsets) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .lessThanOrEqualTo) - } + return Constraint( + from: from, + to: related, + relation: relation, + sourceLocation: sourceLocation, + label: self.label, + multiplier: self.multiplier, + constant: self.constant, + priority: self.priority + ) + }() - // MARK: greaterThanOrEqualTo + // MARK: Initialization - internal func greaterThanOrEqualTo(_ other: ConstraintItem) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .greaterThanOrEqualTo) - } - internal func greaterThanOrEqualTo(_ other: View) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .greaterThanOrEqualTo) - } - internal func greaterThanOrEqualToSuperview() -> ConstraintDescriptionEditable { - guard let superview = fromItem.view?.superview else { - fatalError("greaterThanOrEqualToSuperview() requires the view have a superview before being set.") - } - - return self.greaterThanOrEqualTo(superview) - } - @available(iOS 7.0, *) - internal func greaterThanOrEqualTo(_ other: LayoutSupport) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .greaterThanOrEqualTo) - } - @available(iOS 9.0, OSX 10.11, *) - internal func greaterThanOrEqualTo(other: NSLayoutAnchor) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .lessThanOrEqualTo) - } - internal func greaterThanOrEqualTo(_ other: Float) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .greaterThanOrEqualTo) - } - internal func greaterThanOrEqualTo(_ other: Double) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .greaterThanOrEqualTo) - } - internal func greaterThanOrEqualTo(_ other: CGFloat) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .greaterThanOrEqualTo) - } - internal func greaterThanOrEqualTo(_ other: Int) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .greaterThanOrEqualTo) - } - internal func greaterThanOrEqualTo(_ other: UInt) -> ConstraintDescriptionEditable { - return self.constrainTo(Float(other), relation: .greaterThanOrEqualTo) - } - internal func greaterThanOrEqualTo(_ other: CGSize) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .greaterThanOrEqualTo) - } - internal func greaterThanOrEqualTo(_ other: CGPoint) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .greaterThanOrEqualTo) - } - internal func greaterThanOrEqualTo(_ other: EdgeInsets) -> ConstraintDescriptionEditable { - return self.constrainTo(other, relation: .greaterThanOrEqualTo) + internal init(view: ConstraintView, attributes: ConstraintAttributes) { + self.view = view + self.attributes = attributes } - // MARK: multiplier - - internal func multipliedBy(_ amount: Float) -> ConstraintDescriptionEditable { - self.multiplier = amount - return self - } - internal func multipliedBy(_ amount: Double) -> ConstraintDescriptionEditable { - return self.multipliedBy(Float(amount)) - } - internal func multipliedBy(_ amount: CGFloat) -> ConstraintDescriptionEditable { - return self.multipliedBy(Float(amount)) - } - internal func multipliedBy(_ amount: Int) -> ConstraintDescriptionEditable { - return self.multipliedBy(Float(amount)) - } - internal func multipliedBy(_ amount: UInt) -> ConstraintDescriptionEditable { - return self.multipliedBy(Float(amount)) - } - - internal func dividedBy(_ amount: Float) -> ConstraintDescriptionEditable { - self.multiplier = 1.0 / amount; - return self - } - internal func dividedBy(_ amount: Double) -> ConstraintDescriptionEditable { - return self.dividedBy(Float(amount)) - } - internal func dividedBy(_ amount: CGFloat) -> ConstraintDescriptionEditable { - return self.dividedBy(Float(amount)) - } - internal func dividedBy(_ amount: Int) -> ConstraintDescriptionEditable { - return self.dividedBy(Float(amount)) - } - internal func dividedBy(_ amount: UInt) -> ConstraintDescriptionEditable { - return self.dividedBy(Float(amount)) - } - - // MARK: offset - - internal func offset(_ amount: Float) -> ConstraintDescriptionEditable { - self.constant = amount - return self - } - internal func offset(_ amount: Double) -> ConstraintDescriptionEditable { - return self.offset(Float(amount)) - } - internal func offset(_ amount: CGFloat) -> ConstraintDescriptionEditable { - return self.offset(Float(amount)) - } - internal func offset(_ amount: Int) -> ConstraintDescriptionEditable { - return self.offset(Float(amount)) - } - internal func offset(_ amount: UInt) -> ConstraintDescriptionEditable { - return self.offset(Float(amount)) - } - internal func offset(_ amount: CGPoint) -> ConstraintDescriptionEditable { - self.constant = amount - return self - } - internal func offset(_ amount: CGSize) -> ConstraintDescriptionEditable { - self.constant = amount - return self - } - internal func offset(_ amount: EdgeInsets) -> ConstraintDescriptionEditable { - self.constant = amount - return self - } - - // MARK: inset - - internal func inset(_ amount: Float) -> ConstraintDescriptionEditable { - let value = CGFloat(amount) - self.constant = EdgeInsets(top: value, left: value, bottom: -value, right: -value) - return self - } - internal func inset(_ amount: Double) -> ConstraintDescriptionEditable { - let value = CGFloat(amount) - self.constant = EdgeInsets(top: value, left: value, bottom: -value, right: -value) - return self - } - internal func inset(_ amount: CGFloat) -> ConstraintDescriptionEditable { - self.constant = EdgeInsets(top: amount, left: amount, bottom: -amount, right: -amount) - return self - } - internal func inset(_ amount: Int) -> ConstraintDescriptionEditable { - let value = CGFloat(amount) - self.constant = EdgeInsets(top: value, left: value, bottom: -value, right: -value) - return self - } - internal func inset(_ amount: UInt) -> ConstraintDescriptionEditable { - let value = CGFloat(amount) - self.constant = EdgeInsets(top: value, left: value, bottom: -value, right: -value) - return self - } - internal func inset(_ amount: EdgeInsets) -> ConstraintDescriptionEditable { - self.constant = EdgeInsets(top: amount.top, left: amount.left, bottom: -amount.bottom, right: -amount.right) - return self - } - - // MARK: priority - - internal func priority(_ priority: Float) -> ConstraintDescriptionFinalizable { - self.priority = priority - return self - } - internal func priority(_ priority: Double) -> ConstraintDescriptionFinalizable { - return self.priority(Float(priority)) - } - internal func priority(_ priority: CGFloat) -> ConstraintDescriptionFinalizable { - return self.priority(Float(priority)) - } - func priority(_ priority: UInt) -> ConstraintDescriptionFinalizable { - return self.priority(Float(priority)) - } - internal func priority(_ priority: Int) -> ConstraintDescriptionFinalizable { - return self.priority(Float(priority)) - } - internal func priorityRequired() -> ConstraintDescriptionFinalizable { - return self.priority(1000.0) - } - internal func priorityHigh() -> ConstraintDescriptionFinalizable { - return self.priority(750.0) - } - internal func priorityMedium() -> ConstraintDescriptionFinalizable { - #if os(iOS) || os(tvOS) - return self.priority(500.0) - #else - return self.priority(501.0) - #endif - } - internal func priorityLow() -> ConstraintDescriptionFinalizable { - return self.priority(250.0) - } - - // MARK: Constraint - - internal var constraint: Constraint { - if self.concreteConstraint == nil { - if self.relation == nil { - fatalError("Attempting to create a constraint from a ConstraintDescription before it has been fully chained.") - } - self.concreteConstraint = ConcreteConstraint( - fromItem: self.fromItem, - toItem: self.toItem, - relation: self.relation!, - constant: self.constant, - multiplier: self.multiplier, - priority: self.priority, - label: self.label) - } - return self.concreteConstraint! - } - - func labeled(_ label: String) -> ConstraintDescriptionFinalizable { - self.label = label - return self - } - - // MARK: Private - - fileprivate let fromItem: ConstraintItem - fileprivate var toItem: ConstraintItem { - willSet { - if self.concreteConstraint != nil { - fatalError("Attempting to modify a ConstraintDescription after its constraint has been created.") - } - } - } - fileprivate var relation: ConstraintRelation? { - willSet { - if self.concreteConstraint != nil { - fatalError("Attempting to modify a ConstraintDescription after its constraint has been created.") - } - } - } - fileprivate var constant: Any = Float(0.0) { - willSet { - if self.concreteConstraint != nil { - fatalError("Attempting to modify a ConstraintDescription after its constraint has been created.") - } - } - } - fileprivate var multiplier: Float = 1.0 { - willSet { - if self.concreteConstraint != nil { - fatalError("Attempting to modify a ConstraintDescription after its constraint has been created.") - } - } - } - fileprivate var priority: Float = 1000.0 { - willSet { - if self.concreteConstraint != nil { - fatalError("Attempting to modify a ConstraintDescription after its constraint has been created.") - } - } - } - fileprivate var concreteConstraint: ConcreteConstraint? = nil - - fileprivate func addConstraint(_ attributes: ConstraintAttributes) -> ConstraintDescription { - if self.relation == nil { - self.fromItem.attributes += attributes - } - return self - } - - fileprivate func constrainTo(_ other: ConstraintItem, relation: ConstraintRelation) -> ConstraintDescription { - if other.attributes != ConstraintAttributes.None { - let toLayoutAttributes = other.attributes.layoutAttributes - if toLayoutAttributes.count > 1 { - let fromLayoutAttributes = self.fromItem.attributes.layoutAttributes - if toLayoutAttributes != fromLayoutAttributes { - NSException(name: NSExceptionName(rawValue: "Invalid Constraint"), reason: "Cannot constrain to multiple non identical attributes", userInfo: nil).raise() - return self - } - other.attributes = ConstraintAttributes.None - } - } - self.toItem = other - self.relation = relation - return self - } - - fileprivate func constrainTo(_ other: View, relation: ConstraintRelation) -> ConstraintDescription { - return constrainTo(ConstraintItem(object: other, attributes: ConstraintAttributes.None), relation: relation) - } - - @available(iOS 7.0, *) - fileprivate func constrainTo(_ other: LayoutSupport, relation: ConstraintRelation) -> ConstraintDescription { - return constrainTo(ConstraintItem(object: other, attributes: ConstraintAttributes.None), relation: relation) - } - - @available(iOS 9.0, OSX 10.11, *) - fileprivate func constrainTo(_ other: NSLayoutAnchor, relation: ConstraintRelation) -> ConstraintDescription { - return constrainTo(ConstraintItem(object: other, attributes: ConstraintAttributes.None), relation: relation) - } - - fileprivate func constrainTo(_ other: Float, relation: ConstraintRelation) -> ConstraintDescription { - self.constant = other - return constrainTo(ConstraintItem(object: nil, attributes: ConstraintAttributes.None), relation: relation) - } - - fileprivate func constrainTo(_ other: Double, relation: ConstraintRelation) -> ConstraintDescription { - self.constant = other - return constrainTo(ConstraintItem(object: nil, attributes: ConstraintAttributes.None), relation: relation) - } - - fileprivate func constrainTo(_ other: CGSize, relation: ConstraintRelation) -> ConstraintDescription { - self.constant = other - return constrainTo(ConstraintItem(object: nil, attributes: ConstraintAttributes.None), relation: relation) - } - - fileprivate func constrainTo(_ other: CGPoint, relation: ConstraintRelation) -> ConstraintDescription { - self.constant = other - return constrainTo(ConstraintItem(object: nil, attributes: ConstraintAttributes.None), relation: relation) - } - - fileprivate func constrainTo(_ other: EdgeInsets, relation: ConstraintRelation) -> ConstraintDescription { - self.constant = other - return constrainTo(ConstraintItem(object: nil, attributes: ConstraintAttributes.None), relation: relation) - } } diff --git a/Example/Pods/SnapKit/Source/ConstraintItem.swift b/Example/Pods/SnapKit/Source/ConstraintItem.swift index 369623a..a9477da 100644 --- a/Example/Pods/SnapKit/Source/ConstraintItem.swift +++ b/Example/Pods/SnapKit/Source/ConstraintItem.swift @@ -1,7 +1,7 @@ // // SnapKit // -// Copyright (c) 2011-2015 SnapKit Team - https://github.com/SnapKit +// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -22,47 +22,40 @@ // THE SOFTWARE. #if os(iOS) || os(tvOS) -import UIKit + import UIKit #else -import AppKit + import AppKit #endif -/** - Used to assist in building a constraint -*/ -open class ConstraintItem { + +public class ConstraintItem: Equatable { + + internal weak var target: AnyObject? + internal let attributes: ConstraintAttributes - internal init(object: AnyObject?, attributes: ConstraintAttributes) { - self.object = object + internal init(target: AnyObject?, attributes: ConstraintAttributes) { + self.target = target self.attributes = attributes } - internal weak var object: AnyObject? - internal var attributes: ConstraintAttributes - - internal var view: View? { - return self.object as? View + internal var view: ConstraintView? { + return self.target as? ConstraintView } - @available(iOS 7.0, *) - internal var layoutSupport: LayoutSupport? { - return self.object as? LayoutSupport - } } - -internal func ==(left: ConstraintItem, right: ConstraintItem) -> Bool { - if left.object == nil { - return false +public func ==(lhs: ConstraintItem, rhs: ConstraintItem) -> Bool { + // pointer equality + guard lhs !== rhs else { + return true } - if right.object == nil { - return false - } - if left.object !== right.object { - return false - } - if left.attributes != right.attributes { - return false + + // must both have valid targets and identical attributes + guard let target1 = lhs.target, + let target2 = rhs.target, + target1 === target2 && lhs.attributes == rhs.attributes else { + return false } + return true } diff --git a/Example/Pods/SnapKit/Source/ConstraintMaker.swift b/Example/Pods/SnapKit/Source/ConstraintMaker.swift index 01baa52..73bc3cd 100644 --- a/Example/Pods/SnapKit/Source/ConstraintMaker.swift +++ b/Example/Pods/SnapKit/Source/ConstraintMaker.swift @@ -1,7 +1,7 @@ // // SnapKit // -// Copyright (c) 2011-2015 SnapKit Team - https://github.com/SnapKit +// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -22,175 +22,185 @@ // THE SOFTWARE. #if os(iOS) || os(tvOS) -import UIKit + import UIKit #else -import AppKit + import AppKit #endif -/** - Used to make constraints -*/ -open class ConstraintMaker { +public class ConstraintMaker { - /// left edge - open var left: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Left) } + public var left: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.left) + } - /// top edge - open var top: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Top) } + public var top: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.top) + } - /// right edge - open var right: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Right) } + public var bottom: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.bottom) + } - /// bottom edge - open var bottom: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Bottom) } + public var right: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.right) + } - /// leading edge - open var leading: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Leading) } + public var leading: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.leading) + } - /// trailing edge - open var trailing: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Trailing) } + public var trailing: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.trailing) + } - /// width dimension - open var width: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Width) } + public var width: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.width) + } - /// height dimension - open var height: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Height) } + public var height: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.height) + } - /// centerX dimension - open var centerX: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.CenterX) } + public var centerX: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.centerX) + } - /// centerY dimension - open var centerY: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.CenterY) } + public var centerY: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.centerY) + } - /// baseline position - open var baseline: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Baseline) } + @available(*, deprecated:3.0, message:"Use lastBaseline instead") + public var baseline: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.lastBaseline) + } - /// firse baseline position - @available(iOS 8.0, *) - open var firstBaseline: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.FirstBaseline) } + public var lastBaseline: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.lastBaseline) + } - /// left margin - @available(iOS 8.0, *) - open var leftMargin: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.LeftMargin) } + @available(iOS 8.0, OSX 10.11, *) + public var firstBaseline: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.firstBaseline) + } - /// right margin @available(iOS 8.0, *) - open var rightMargin: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.RightMargin) } + public var leftMargin: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.leftMargin) + } - /// top margin @available(iOS 8.0, *) - open var topMargin: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.TopMargin) } + public var rightMargin: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.rightMargin) + } - /// bottom margin @available(iOS 8.0, *) - open var bottomMargin: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.BottomMargin) } + public var bottomMargin: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.bottomMargin) + } - /// leading margin @available(iOS 8.0, *) - open var leadingMargin: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.LeadingMargin) } + public var leadingMargin: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.leadingMargin) + } - /// trailing margin @available(iOS 8.0, *) - open var trailingMargin: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.TrailingMargin) } + public var trailingMargin: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.trailingMargin) + } - /// centerX within margins @available(iOS 8.0, *) - open var centerXWithinMargins: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.CenterXWithinMargins) } + public var centerXWithinMargins: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.centerXWithinMargins) + } - /// centerY within margins @available(iOS 8.0, *) - open var centerYWithinMargins: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.CenterYWithinMargins) } - - /// top + left + bottom + right edges - open var edges: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Edges) } - - /// width + height dimensions - open var size: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Size) } + public var centerYWithinMargins: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.centerYWithinMargins) + } - // centerX + centerY positions - open var center: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Center) } + public var edges: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.edges) + } + public var size: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.size) + } + public var center: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.center) + } - // top + left + bottom + right margins @available(iOS 8.0, *) - open var margins: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.Margins) } + public var margins: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.margins) + } - // centerX + centerY within margins @available(iOS 8.0, *) - open var centerWithinMargins: ConstraintDescriptionExtendable { return self.makeConstraintDescription(ConstraintAttributes.CenterWithinMargins) } + public var centerWithinMargins: ConstraintMakerExtendable { + return self.makeExtendableWithAttributes(.centerWithinMargins) + } + + private let view: ConstraintView + private var descriptions = [ConstraintDescription]() - internal init(view: View, file: String, line: UInt) { + internal init(view: ConstraintView) { self.view = view - self.file = file - self.line = line + self.view.translatesAutoresizingMaskIntoConstraints = false } - internal let file: String - internal let line: UInt - internal let view: View - internal var constraintDescriptions = [ConstraintDescription]() - - internal func makeConstraintDescription(_ attributes: ConstraintAttributes) -> ConstraintDescription { - let item = ConstraintItem(object: self.view, attributes: attributes) - let constraintDescription = ConstraintDescription(fromItem: item) - self.constraintDescriptions.append(constraintDescription) - return constraintDescription + internal func makeExtendableWithAttributes(_ attributes: ConstraintAttributes) -> ConstraintMakerExtendable { + let description = ConstraintDescription(view: self.view, attributes: attributes) + self.descriptions.append(description) + return ConstraintMakerExtendable(description) } - internal class func prepareConstraints(view: View, file: String = "Unknown", line: UInt = 0, closure: (_ make: ConstraintMaker) -> Void) -> [Constraint] { - let maker = ConstraintMaker(view: view, file: file, line: line) + internal static func prepareConstraints(view: ConstraintView, closure: (_ make: ConstraintMaker) -> Void) -> [Constraint] { + let maker = ConstraintMaker(view: view) closure(maker) - - let constraints = maker.constraintDescriptions.map { $0.constraint } - for constraint in constraints { - constraint.makerFile = maker.file - constraint.makerLine = maker.line - } + let constraints = maker.descriptions + .map { $0.constraint } + .filter { $0 != nil } + .map { $0! } return constraints } - internal class func makeConstraints(view: View, file: String = "Unknown", line: UInt = 0, closure: (_ make: ConstraintMaker) -> Void) { - view.translatesAutoresizingMaskIntoConstraints = false - let maker = ConstraintMaker(view: view, file: file, line: line) + internal static func makeConstraints(view: ConstraintView, closure: (_ make: ConstraintMaker) -> Void) { + let maker = ConstraintMaker(view: view) closure(maker) - - let constraints = maker.constraintDescriptions.map { $0.constraint as! ConcreteConstraint } + let constraints = maker.descriptions + .map { $0.constraint } + .filter { $0 != nil } + .map { $0! } for constraint in constraints { - constraint.makerFile = maker.file - constraint.makerLine = maker.line - constraint.installOnView(updateExisting: false) + constraint.activateIfNeeded(updatingExisting: false) } } - internal class func remakeConstraints(view: View, file: String = "Unknown", line: UInt = 0, closure: (_ make: ConstraintMaker) -> Void) { - view.translatesAutoresizingMaskIntoConstraints = false - let maker = ConstraintMaker(view: view, file: file, line: line) - closure(maker) - + internal static func remakeConstraints(view: ConstraintView, closure: (_ make: ConstraintMaker) -> Void) { self.removeConstraints(view: view) - let constraints = maker.constraintDescriptions.map { $0.constraint as! ConcreteConstraint } - for constraint in constraints { - constraint.makerFile = maker.file - constraint.makerLine = maker.line - constraint.installOnView(updateExisting: false) - } + self.makeConstraints(view: view, closure: closure) } - internal class func updateConstraints(view: View, file: String = "Unknown", line: UInt = 0, closure: (_ make: ConstraintMaker) -> Void) { - view.translatesAutoresizingMaskIntoConstraints = false - let maker = ConstraintMaker(view: view, file: file, line: line) - closure(maker) + internal static func updateConstraints(view: ConstraintView, closure: (_ make: ConstraintMaker) -> Void) { + guard view.snp.constraints.count > 0 else { + self.makeConstraints(view: view, closure: closure) + return + } - let constraints = maker.constraintDescriptions.map { $0.constraint as! ConcreteConstraint} + let maker = ConstraintMaker(view: view) + closure(maker) + let constraints = maker.descriptions + .map { $0.constraint } + .filter { $0 != nil } + .map { $0! } for constraint in constraints { - constraint.makerFile = maker.file - constraint.makerLine = maker.line - constraint.installOnView(updateExisting: true) + constraint.activateIfNeeded(updatingExisting: true) } } - internal class func removeConstraints(view: View) { - for existingLayoutConstraint in view.snp_installedLayoutConstraints { - existingLayoutConstraint.snp_constraint?.uninstall() + internal static func removeConstraints(view: ConstraintView) { + let constraints = view.snp.constraints + for constraint in constraints { + constraint.deactivateIfNeeded() } } + } diff --git a/Example/Pods/SnapKit/Source/ConstraintRelation.swift b/Example/Pods/SnapKit/Source/ConstraintRelation.swift index 20049b9..48afbfc 100644 --- a/Example/Pods/SnapKit/Source/ConstraintRelation.swift +++ b/Example/Pods/SnapKit/Source/ConstraintRelation.swift @@ -1,7 +1,7 @@ // // SnapKit // -// Copyright (c) 2011-2015 SnapKit Team - https://github.com/SnapKit +// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -22,26 +22,26 @@ // THE SOFTWARE. #if os(iOS) || os(tvOS) -import UIKit + import UIKit #else -import AppKit + import AppKit #endif -/** - Used to define `NSLayoutRelation` -*/ + internal enum ConstraintRelation: Int { - case equal = 1, lessThanOrEqualTo, greaterThanOrEqualTo + case equal = 1 + case lessThanOrEqual + case greaterThanOrEqual internal var layoutRelation: NSLayoutRelation { get { switch(self) { - case .lessThanOrEqualTo: + case .equal: + return .equal + case .lessThanOrEqual: return .lessThanOrEqual - case .greaterThanOrEqualTo: + case .greaterThanOrEqual: return .greaterThanOrEqual - default: - return .equal } } } diff --git a/Example/Pods/SnapKit/Source/Debugging.swift b/Example/Pods/SnapKit/Source/Debugging.swift index 55688ca..fdc505d 100644 --- a/Example/Pods/SnapKit/Source/Debugging.swift +++ b/Example/Pods/SnapKit/Source/Debugging.swift @@ -1,7 +1,7 @@ // // SnapKit // -// Copyright (c) 2011-2015 SnapKit Team - https://github.com/SnapKit +// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -22,59 +22,34 @@ // THE SOFTWARE. #if os(iOS) || os(tvOS) -import UIKit + import UIKit #else -import AppKit + import AppKit #endif -/** - Used to allow adding a snp_label to a View for debugging purposes -*/ -public extension View { - - public var snp_label: String? { - get { - return objc_getAssociatedObject(self, &labelKey) as? String - } - set { - objc_setAssociatedObject(self, &labelKey, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_COPY_NONATOMIC) - } - } - -} - -/** - Used to allow adding a snp_label to a LayoutConstraint for debugging purposes -*/ public extension LayoutConstraint { - public var snp_label: String? { - get { - return objc_getAssociatedObject(self, &labelKey) as? String - } - set { - objc_setAssociatedObject(self, &labelKey, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_COPY_NONATOMIC) - } - } - - override open var description: String { + override public var description: String { var description = "<" description += descriptionForObject(self) - description += " \(descriptionForObject(self.firstItem))" + if let firstItem = conditionalOptional(from: self.firstItem) { + description += " \(descriptionForObject(firstItem))" + } + if self.firstAttribute != .notAnAttribute { - description += ".\(self.firstAttribute.snp_description)" + description += ".\(descriptionForAttribute(self.firstAttribute))" } - description += " \(self.relation.snp_description)" + description += " \(descriptionForRelation(self.relation))" - if let secondItem: AnyObject = self.secondItem { + if let secondItem = self.secondItem { description += " \(descriptionForObject(secondItem))" } if self.secondAttribute != .notAnAttribute { - description += ".\(self.secondAttribute.snp_description)" + description += ".\(descriptionForAttribute(self.secondAttribute))" } if self.multiplier != 1.0 { @@ -100,57 +75,19 @@ public extension LayoutConstraint { return description } - internal var snp_makerFile: String? { - return self.snp_constraint?.makerFile - } - - internal var snp_makerLine: UInt? { - return self.snp_constraint?.makerLine - } - } -private var labelKey = "" - -private func descriptionForObject(_ object: AnyObject) -> String { - let pointerDescription = NSString(format: "%p", UInt(bitPattern: ObjectIdentifier(object))) - var desc = "" - - desc += type(of: object).description() - - if let object = object as? View { - desc += ":\(object.snp_label ?? pointerDescription as String)" - } else if let object = object as? LayoutConstraint { - desc += ":\(object.snp_label ?? pointerDescription as String)" - } else { - desc += ":\(pointerDescription)" +private func descriptionForRelation(_ relation: NSLayoutRelation) -> String { + switch relation { + case .equal: return "==" + case .greaterThanOrEqual: return ">=" + case .lessThanOrEqual: return "<=" } - - if let object = object as? LayoutConstraint, let file = object.snp_makerFile, let line = object.snp_makerLine { - desc += "@\(file)#\(line)" - } - - desc += "" - return desc } -private extension NSLayoutRelation { - - var snp_description: String { - switch self { - case .equal: return "==" - case .greaterThanOrEqual: return ">=" - case .lessThanOrEqual: return "<=" - } - } - -} - -private extension NSLayoutAttribute { - - var snp_description: String { - #if os(iOS) || os(tvOS) - switch self { +private func descriptionForAttribute(_ attribute: NSLayoutAttribute) -> String { + #if os(iOS) || os(tvOS) + switch attribute { case .notAnAttribute: return "notAnAttribute" case .top: return "top" case .left: return "left" @@ -162,7 +99,7 @@ private extension NSLayoutAttribute { case .height: return "height" case .centerX: return "centerX" case .centerY: return "centerY" - case .lastBaseline: return "baseline" + case .lastBaseline: return "lastBaseline" case .firstBaseline: return "firstBaseline" case .topMargin: return "topMargin" case .leftMargin: return "leftMargin" @@ -173,24 +110,51 @@ private extension NSLayoutAttribute { case .centerXWithinMargins: return "centerXWithinMargins" case .centerYWithinMargins: return "centerYWithinMargins" } - #else - switch self { - case .NotAnAttribute: return "notAnAttribute" - case .Top: return "top" - case .Left: return "left" - case .Bottom: return "bottom" - case .Right: return "right" - case .Leading: return "leading" - case .Trailing: return "trailing" - case .Width: return "width" - case .Height: return "height" - case .CenterX: return "centerX" - case .CenterY: return "centerY" - case .Baseline: return "baseline" - default: return "default" + #else + switch attribute { + case .notAnAttribute: return "notAnAttribute" + case .top: return "top" + case .left: return "left" + case .bottom: return "bottom" + case .right: return "right" + case .leading: return "leading" + case .trailing: return "trailing" + case .width: return "width" + case .height: return "height" + case .centerX: return "centerX" + case .centerY: return "centerY" + case .lastBaseline: return "lastBaseline" + case .firstBaseline: return "firstBaseline" } - #endif - + #endif +} + +private func conditionalOptional(from object: Optional) -> Optional { + return object +} + +private func conditionalOptional(from object: T) -> Optional { + return Optional.some(object) +} + +private func descriptionForObject(_ object: AnyObject) -> String { + let pointerDescription = String(format: "%p", UInt(bitPattern: ObjectIdentifier(object))) + var desc = "" + + desc += type(of: object).description() + + if let object = object as? ConstraintView { + desc += ":\(object.snp.label() ?? pointerDescription)" + } else if let object = object as? LayoutConstraint { + desc += ":\(object.label ?? pointerDescription)" + } else { + desc += ":\(pointerDescription)" } + if let object = object as? LayoutConstraint, let file = object.constraint?.sourceLocation.0, let line = object.constraint?.sourceLocation.1 { + desc += "@\((file as NSString).lastPathComponent)#\(line)" + } + + desc += "" + return desc } diff --git a/Example/Pods/SnapKit/Source/EdgeInsets.swift b/Example/Pods/SnapKit/Source/EdgeInsets.swift deleted file mode 100644 index e73a795..0000000 --- a/Example/Pods/SnapKit/Source/EdgeInsets.swift +++ /dev/null @@ -1,38 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-2015 SnapKit Team - https://github.com/SnapKit -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#if os(iOS) || os(tvOS) -import UIKit -public typealias EdgeInsets = UIEdgeInsets -public func EdgeInsetsMake(_ top: CGFloat, left: CGFloat, bottom: CGFloat, right: CGFloat) -> EdgeInsets { - return EdgeInsets(top: top, left: left, bottom: bottom, right: right) -} -public let EdgeInsetsZero = EdgeInsets(top: 0, left: 0, bottom: 0, right: 0) -#else -import AppKit -public typealias EdgeInsets = NSEdgeInsets -public func EdgeInsetsMake(top: CGFloat, left: CGFloat, bottom: CGFloat, right: CGFloat) -> EdgeInsets { - return EdgeInsets(top: top, left: left, bottom: bottom, right: right) -} -public let EdgeInsetsZero = EdgeInsets(top: 0, left: 0, bottom: 0, right: 0) -#endif diff --git a/Example/Pods/SnapKit/Source/LayoutConstraint.swift b/Example/Pods/SnapKit/Source/LayoutConstraint.swift index 39b2e4a..27c4105 100644 --- a/Example/Pods/SnapKit/Source/LayoutConstraint.swift +++ b/Example/Pods/SnapKit/Source/LayoutConstraint.swift @@ -1,7 +1,7 @@ // // SnapKit // -// Copyright (c) 2011-2015 SnapKit Team - https://github.com/SnapKit +// Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal @@ -22,42 +22,36 @@ // THE SOFTWARE. #if os(iOS) || os(tvOS) -import UIKit + import UIKit #else -import AppKit + import AppKit #endif -/** - Used to add extra information to the actual `NSLayoutConstraint`'s that will UIKit/AppKit will utilize -*/ -open class LayoutConstraint: NSLayoutConstraint { + +public class LayoutConstraint: NSLayoutConstraint { + + public var label: String? { + get { + return self.identifier + } + set { + self.identifier = newValue + } + } - internal var snp_constraint: Constraint? = nil + internal weak var constraint: Constraint? = nil } -internal func ==(left: LayoutConstraint, right: LayoutConstraint) -> Bool { - if left.firstItem !== right.firstItem { - return false - } - if left.secondItem !== right.secondItem { - return false - } - if left.firstAttribute != right.firstAttribute { - return false - } - if left.secondAttribute != right.secondAttribute { - return false - } - if left.relation != right.relation { - return false - } - if left.priority != right.priority { - return false - } - if left.multiplier != right.multiplier { +internal func ==(lhs: LayoutConstraint, rhs: LayoutConstraint) -> Bool { + guard lhs.firstItem === rhs.firstItem && + lhs.secondItem === rhs.secondItem && + lhs.firstAttribute == rhs.firstAttribute && + lhs.secondAttribute == rhs.secondAttribute && + lhs.relation == rhs.relation && + lhs.priority == rhs.priority && + lhs.multiplier == rhs.multiplier else { return false } return true } - diff --git a/Example/Pods/SnapKit/Source/SnapKit.swift b/Example/Pods/SnapKit/Source/SnapKit.swift deleted file mode 100644 index 8602e73..0000000 --- a/Example/Pods/SnapKit/Source/SnapKit.swift +++ /dev/null @@ -1,42 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-2015 SnapKit Team - https://github.com/SnapKit -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#if os(iOS) || os(tvOS) -import UIKit -public typealias InterfaceLayoutDirection = UIUserInterfaceLayoutDirection -public typealias LayoutSupport = UILayoutSupport -#else -import AppKit -public typealias InterfaceLayoutDirection = NSUserInterfaceLayoutDirection -public class LayoutSupport {} -#endif - -/** - Used to configure different parts of SnapKit -*/ -public struct Config { - - /// The interface layout direction - public static var interfaceLayoutDirection = InterfaceLayoutDirection.leftToRight - -} diff --git a/Example/Pods/SnapKit/Source/View+SnapKit.swift b/Example/Pods/SnapKit/Source/View+SnapKit.swift deleted file mode 100644 index 43e19a9..0000000 --- a/Example/Pods/SnapKit/Source/View+SnapKit.swift +++ /dev/null @@ -1,183 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-2015 SnapKit Team - https://github.com/SnapKit -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#if os(iOS) || os(tvOS) -import UIKit -public typealias View = UIView -#else -import AppKit -public typealias View = NSView -#endif - -/** - Used to expose public API on views -*/ -public extension View { - - /// left edge - public var snp_left: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Left) } - - /// top edge - public var snp_top: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Top) } - - /// right edge - public var snp_right: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Right) } - - /// bottom edge - public var snp_bottom: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Bottom) } - - /// leading edge - public var snp_leading: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Leading) } - - /// trailing edge - public var snp_trailing: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Trailing) } - - /// width dimension - public var snp_width: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Width) } - - /// height dimension - public var snp_height: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Height) } - - /// centerX position - public var snp_centerX: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.CenterX) } - - /// centerY position - public var snp_centerY: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.CenterY) } - - /// baseline position - public var snp_baseline: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Baseline) } - - /// first baseline position - @available(iOS 8.0, *) - public var snp_firstBaseline: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.FirstBaseline) } - - /// left margin - @available(iOS 8.0, *) - public var snp_leftMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.LeftMargin) } - - /// right margin - @available(iOS 8.0, *) - public var snp_rightMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.RightMargin) } - - /// top margin - @available(iOS 8.0, *) - public var snp_topMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.TopMargin) } - - /// bottom margin - @available(iOS 8.0, *) - public var snp_bottomMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.BottomMargin) } - - /// leading margin - @available(iOS 8.0, *) - public var snp_leadingMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.LeadingMargin) } - - /// trailing margin - @available(iOS 8.0, *) - public var snp_trailingMargin: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.TrailingMargin) } - - /// centerX within margins - @available(iOS 8.0, *) - public var snp_centerXWithinMargins: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.CenterXWithinMargins) } - - /// centerY within margins - @available(iOS 8.0, *) - public var snp_centerYWithinMargins: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.CenterYWithinMargins) } - - // top + left + bottom + right edges - public var snp_edges: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Edges) } - - // width + height dimensions - public var snp_size: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Size) } - - // centerX + centerY positions - public var snp_center: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Center) } - - // top + left + bottom + right margins - @available(iOS 8.0, *) - public var snp_margins: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.Margins) } - - // centerX + centerY within margins - @available(iOS 8.0, *) - public var snp_centerWithinMargins: ConstraintItem { return ConstraintItem(object: self, attributes: ConstraintAttributes.CenterWithinMargins) } - - /** - Prepares constraints with a `ConstraintMaker` and returns the made constraints but does not install them. - - - parameter closure that will be passed the `ConstraintMaker` to make the constraints with - - - returns: the constraints made - */ - public func snp_prepareConstraints(_ file: String = #file, line: UInt = #line, closure: (_ make: ConstraintMaker) -> Void) -> [Constraint] { - return ConstraintMaker.prepareConstraints(view: self, file: file, line: line, closure: closure) - } - - /** - Makes constraints with a `ConstraintMaker` and installs them along side any previous made constraints. - - - parameter closure that will be passed the `ConstraintMaker` to make the constraints with - */ - public func snp_makeConstraints(_ file: String = #file, line: UInt = #line, closure: (_ make: ConstraintMaker) -> Void) -> Void { - ConstraintMaker.makeConstraints(view: self, file: file, line: line, closure: closure) - } - - /** - Updates constraints with a `ConstraintMaker` that will replace existing constraints that match and install new ones. - - For constraints to match only the constant can be updated. - - - parameter closure that will be passed the `ConstraintMaker` to update the constraints with - */ - public func snp_updateConstraints(_ file: String = #file, line: UInt = #line, closure: (_ make: ConstraintMaker) -> Void) -> Void { - ConstraintMaker.updateConstraints(view: self, file: file, line: line, closure: closure) - } - - /** - Remakes constraints with a `ConstraintMaker` that will first remove all previously made constraints and make and install new ones. - - - parameter closure that will be passed the `ConstraintMaker` to remake the constraints with - */ - public func snp_remakeConstraints(_ file: String = #file, line: UInt = #line, closure: (_ make: ConstraintMaker) -> Void) -> Void { - ConstraintMaker.remakeConstraints(view: self, file: file, line: line, closure: closure) - } - - /** - Removes all previously made constraints. - */ - public func snp_removeConstraints() { - ConstraintMaker.removeConstraints(view: self) - } - - internal var snp_installedLayoutConstraints: [LayoutConstraint] { - get { - if let constraints = objc_getAssociatedObject(self, &installedLayoutConstraintsKey) as? [LayoutConstraint] { - return constraints - } - return [] - } - set { - objc_setAssociatedObject(self, &installedLayoutConstraintsKey, newValue, objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC) - } - } -} - -private var installedLayoutConstraintsKey = "" diff --git a/Example/Pods/SnapKit/Source/ViewController+SnapKit.swift b/Example/Pods/SnapKit/Source/ViewController+SnapKit.swift deleted file mode 100644 index ed5451b..0000000 --- a/Example/Pods/SnapKit/Source/ViewController+SnapKit.swift +++ /dev/null @@ -1,45 +0,0 @@ -// -// SnapKit -// -// Copyright (c) 2011-2015 SnapKit Team - https://github.com/SnapKit -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. - -#if os(iOS) || os(tvOS) -import UIKit - -/** - Used to expose public API on view controllers -*/ -public extension UIViewController { - - /// top layout guide top - public var snp_topLayoutGuideTop: ConstraintItem { return ConstraintItem(object: self.topLayoutGuide, attributes: ConstraintAttributes.Top) } - - /// top layout guide bottom - public var snp_topLayoutGuideBottom: ConstraintItem { return ConstraintItem(object: self.topLayoutGuide, attributes: ConstraintAttributes.Bottom) } - - /// bottom layout guide top - public var snp_bottomLayoutGuideTop: ConstraintItem { return ConstraintItem(object: self.bottomLayoutGuide, attributes: ConstraintAttributes.Top) } - - /// bottom layout guide bottom - public var snp_bottomLayoutGuideBottom: ConstraintItem { return ConstraintItem(object: self.bottomLayoutGuide, attributes: ConstraintAttributes.Bottom) } - -} -#endif diff --git a/Example/Pods/Target Support Files/LiquidFloatingActionButton/Info.plist b/Example/Pods/Target Support Files/LiquidFloatingActionButton/Info.plist index 97eeeda..0d7bfa2 100644 --- a/Example/Pods/Target Support Files/LiquidFloatingActionButton/Info.plist +++ b/Example/Pods/Target Support Files/LiquidFloatingActionButton/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.1.1 + 0.2.0 CFBundleSignature ???? CFBundleVersion diff --git a/Example/Pods/Target Support Files/SnapKit/Info.plist b/Example/Pods/Target Support Files/SnapKit/Info.plist index 2582325..b0b461e 100644 --- a/Example/Pods/Target Support Files/SnapKit/Info.plist +++ b/Example/Pods/Target Support Files/SnapKit/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.21.0 + 3.0.1 CFBundleSignature ???? CFBundleVersion From e9af1dc6b86ccfb0fac23cf34e132d1eb652679a Mon Sep 17 00:00:00 2001 From: shotaroikeda Date: Tue, 20 Sep 2016 20:33:12 -0500 Subject: [PATCH 31/31] fixed demo build settings --- .../project.pbxproj | 4 +- .../ViewController.swift | 4 +- Example/Podfile.lock | 2 +- Example/Pods/Manifest.lock | 2 +- Example/Pods/Pods.xcodeproj/project.pbxproj | 3952 +++++------------ ...ctionButton_Example-acknowledgements.plist | 4 + ...loatingActionButton_Example.debug.xcconfig | 1 + ...atingActionButton_Example.release.xcconfig | 1 + ...gActionButton_Tests-acknowledgements.plist | 2 + ...dFloatingActionButton_Tests.debug.xcconfig | 1 + ...loatingActionButton_Tests.release.xcconfig | 1 + 11 files changed, 1060 insertions(+), 2914 deletions(-) diff --git a/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj b/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj index 2caf29b..99f3a24 100644 --- a/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj +++ b/Example/LiquidFloatingActionButton.xcodeproj/project.pbxproj @@ -277,7 +277,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; showEnvVarsInLog = 0; }; 66F99919ACD3F386814BB452 /* [CP] Embed Pods Frameworks */ = { @@ -307,7 +307,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; showEnvVarsInLog = 0; }; A2EA3849E353196C377A4869 /* [CP] Copy Pods Resources */ = { diff --git a/Example/LiquidFloatingActionButton/ViewController.swift b/Example/LiquidFloatingActionButton/ViewController.swift index 24e7b74..f8fd90f 100644 --- a/Example/LiquidFloatingActionButton/ViewController.swift +++ b/Example/LiquidFloatingActionButton/ViewController.swift @@ -29,11 +29,11 @@ open class CustomCell : LiquidFloatingCell { label.textColor = UIColor.white label.font = UIFont(name: "Helvetica-Neue", size: 12) addSubview(label) - label.snp_makeConstraints { make in + label.snp.makeConstraints({ make in make.left.equalTo(self).offset(-80) make.width.equalTo(75) make.top.height.equalTo(self) - } + }) } } diff --git a/Example/Podfile.lock b/Example/Podfile.lock index 89cc06f..bf4574d 100644 --- a/Example/Podfile.lock +++ b/Example/Podfile.lock @@ -16,4 +16,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: d32e84aa2d52a9e8dbba10e8de937cda2a823e0d -COCOAPODS: 1.0.1 +COCOAPODS: 1.1.0.rc.2 diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock index 89cc06f..bf4574d 100644 --- a/Example/Pods/Manifest.lock +++ b/Example/Pods/Manifest.lock @@ -16,4 +16,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: d32e84aa2d52a9e8dbba10e8de937cda2a823e0d -COCOAPODS: 1.0.1 +COCOAPODS: 1.1.0.rc.2 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj index 309fe1c..988e4eb 100644 --- a/Example/Pods/Pods.xcodeproj/project.pbxproj +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -1,2908 +1,1044 @@ - - - - - archiveVersion - 1 - classes - - objectVersion - 46 - objects - - 001FD24C7FFEED6B7B9F95D34A0828DF - - baseConfigurationReference - 9B73872B15E9C56304335676CC951C90 - buildSettings - - CODE_SIGN_IDENTITY[sdk=iphoneos*] - iPhone Developer - CURRENT_PROJECT_VERSION - 1 - DEBUG_INFORMATION_FORMAT - dwarf - DEFINES_MODULE - YES - DYLIB_COMPATIBILITY_VERSION - 1 - DYLIB_CURRENT_VERSION - 1 - DYLIB_INSTALL_NAME_BASE - @rpath - ENABLE_STRICT_OBJC_MSGSEND - YES - GCC_NO_COMMON_BLOCKS - YES - INFOPLIST_FILE - Target Support Files/Pods-LiquidFloatingActionButton_Tests/Info.plist - INSTALL_PATH - $(LOCAL_LIBRARY_DIR)/Frameworks - IPHONEOS_DEPLOYMENT_TARGET - 8.3 - LD_RUNPATH_SEARCH_PATHS - - $(inherited) - @executable_path/Frameworks - @loader_path/Frameworks - - MACH_O_TYPE - staticlib - MODULEMAP_FILE - Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.modulemap - MTL_ENABLE_DEBUG_INFO - YES - OTHER_LDFLAGS - - OTHER_LIBTOOLFLAGS - - PODS_ROOT - $(SRCROOT) - PRODUCT_BUNDLE_IDENTIFIER - org.cocoapods.${PRODUCT_NAME:rfc1034identifier} - PRODUCT_NAME - Pods_LiquidFloatingActionButton_Tests - SDKROOT - iphoneos - SKIP_INSTALL - YES - SWIFT_OPTIMIZATION_LEVEL - -Onone - TARGETED_DEVICE_FAMILY - 1,2 - VERSIONING_SYSTEM - apple-generic - VERSION_INFO_PREFIX - - - isa - XCBuildConfiguration - name - Debug - - 03D37CD9914A34403CA5E7773D42702F - - fileRef - 15F42031AA343001A7E2C8D3D69C9DE2 - isa - PBXBuildFile - - 041C7DFD4E40027278BABCCCD69743B2 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintAttributes.swift - path - Source/ConstraintAttributes.swift - sourceTree - <group> - - 050B0D0CB0787BEA95A638CEB77D19BC - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - path - LiquidFloatingActionButton.xcconfig - sourceTree - <group> - - 05703C849B29D1EF8195C8FE0EC6AF9E - - children - - 3B90EF7CA55AE01CE50EAF5C3C574CDD - 041C7DFD4E40027278BABCCCD69743B2 - 597734A7EDE6E13F6D1939A7C7373CD1 - F9319AF949935BC0602093E0830E8B10 - CB70FEBA9EF66CAAA461E6F3F819716B - 3FE15693153A62AC79B129BA5FFB7C3D - E855200DC6085FF07EBD87301AD370C9 - 1F2B728DCF7E9F88008827314C2AE823 - 7BEA23F4393572EE30AED50A651CD185 - B525F7008B3760076D71FE29C0859BDC - 446C79107F482F7B2D7E4061657DCA44 - 212E2771F1CD458D21A0FB3CA1C914F3 - 6CC7FF80150FA3840AD57BCE994C9FAB - 3A6167E299BA9862893D87DDBF170B70 - 9F8ECEBD49CA569FC524CB77465180B6 - 8705AFD8FF18225FA8BB0228A69E72AA - D8AA583273C076DD4A1EBAFDDA0E89A8 - 261BC3C65CE6EBBED920977848212F6F - 87CCF4DB7EFBDC070B92BFC0BC0D2C8C - 0729DC38B02A17974FD7A7238FCB1836 - AF1BDEFD46348EE8C41DE053AEDBFD1B - 97F0138AE8EA08984375344610BE7E1E - 813C2A5263E149C889A2DF40FFDD89BA - C4C807430C3A7B9A82E2DDD844C58759 - EBCF77FFA89397B4F19B5CD8A7BDB0A3 - E11295210FBB75091BE22529081A2720 - 8B78113584563565B18CD0248D9D0A93 - 737B1700C2C19AD11C2872C1C46EC8D4 - 73878F9931EAA78C3DAAF7DDA048218E - 7B4759EEB4180EAF3DA189AAE28199AC - 0AB21FA0A2E5B45AB133215CC241236D - 458932A7F6390E9028454F0A27A50A13 - - isa - PBXGroup - name - SnapKit - path - SnapKit - sourceTree - <group> - - 067A34DB72BA048934A4ACB8F865D499 - - fileRef - C4C807430C3A7B9A82E2DDD844C58759 - isa - PBXBuildFile - - 0729DC38B02A17974FD7A7238FCB1836 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintMultiplierTarget.swift - path - Source/ConstraintMultiplierTarget.swift - sourceTree - <group> - - 07AC5B339761C60E4C8735BC1C4F5E84 - - buildActionMask - 2147483647 - files - - 03D37CD9914A34403CA5E7773D42702F - - isa - PBXSourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 07C1582DE353E230C116FBBA55215D38 - - fileRef - 3A6167E299BA9862893D87DDBF170B70 - isa - PBXBuildFile - - 0AB21FA0A2E5B45AB133215CC241236D - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - UILayoutSupport+Extensions.swift - path - Source/UILayoutSupport+Extensions.swift - sourceTree - <group> - - 0ACDCBCB0B6796575F46FFA2F5410C6B - - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - CLANG_ANALYZER_NONNULL - YES - CLANG_CXX_LANGUAGE_STANDARD - gnu++0x - CLANG_CXX_LIBRARY - libc++ - CLANG_ENABLE_MODULES - YES - CLANG_ENABLE_OBJC_ARC - YES - CLANG_WARN_BOOL_CONVERSION - YES - CLANG_WARN_CONSTANT_CONVERSION - YES - CLANG_WARN_DIRECT_OBJC_ISA_USAGE - YES - CLANG_WARN_EMPTY_BODY - YES - CLANG_WARN_ENUM_CONVERSION - YES - CLANG_WARN_INT_CONVERSION - YES - CLANG_WARN_OBJC_ROOT_CLASS - YES - CLANG_WARN_UNREACHABLE_CODE - YES - CLANG_WARN__DUPLICATE_METHOD_MATCH - YES - COPY_PHASE_STRIP - YES - ENABLE_NS_ASSERTIONS - NO - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_PREPROCESSOR_DEFINITIONS - - POD_CONFIGURATION_RELEASE=1 - $(inherited) - - GCC_WARN_64_TO_32_BIT_CONVERSION - YES - GCC_WARN_ABOUT_RETURN_TYPE - YES - GCC_WARN_UNDECLARED_SELECTOR - YES - GCC_WARN_UNINITIALIZED_AUTOS - YES - GCC_WARN_UNUSED_FUNCTION - YES - GCC_WARN_UNUSED_VARIABLE - YES - IPHONEOS_DEPLOYMENT_TARGET - 8.3 - STRIP_INSTALLED_PRODUCT - NO - SYMROOT - ${SRCROOT}/../build - VALIDATE_PRODUCT - YES - - isa - XCBuildConfiguration - name - Release - - 0B5E5C8758ACA9EBFD5F7E2AA6E8479A - - buildActionMask - 2147483647 - files - - EAEFA188CC103359C4AE68AC11F8A844 - - isa - PBXHeadersBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 0BC13CD5FBD0B6B917F7955554546458 - - baseConfigurationReference - 4EB840C0FCFA128ECC2A9B932415D6A8 - buildSettings - - CODE_SIGN_IDENTITY[sdk=iphoneos*] - iPhone Developer - CURRENT_PROJECT_VERSION - 1 - DEBUG_INFORMATION_FORMAT - dwarf-with-dsym - DEFINES_MODULE - YES - DYLIB_COMPATIBILITY_VERSION - 1 - DYLIB_CURRENT_VERSION - 1 - DYLIB_INSTALL_NAME_BASE - @rpath - ENABLE_STRICT_OBJC_MSGSEND - YES - GCC_NO_COMMON_BLOCKS - YES - INFOPLIST_FILE - Target Support Files/Pods-LiquidFloatingActionButton_Example/Info.plist - INSTALL_PATH - $(LOCAL_LIBRARY_DIR)/Frameworks - IPHONEOS_DEPLOYMENT_TARGET - 8.3 - LD_RUNPATH_SEARCH_PATHS - - $(inherited) - @executable_path/Frameworks - @loader_path/Frameworks - - MACH_O_TYPE - staticlib - MODULEMAP_FILE - Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.modulemap - MTL_ENABLE_DEBUG_INFO - NO - OTHER_LDFLAGS - - OTHER_LIBTOOLFLAGS - - PODS_ROOT - $(SRCROOT) - PRODUCT_BUNDLE_IDENTIFIER - org.cocoapods.${PRODUCT_NAME:rfc1034identifier} - PRODUCT_NAME - Pods_LiquidFloatingActionButton_Example - SDKROOT - iphoneos - SKIP_INSTALL - YES - TARGETED_DEVICE_FAMILY - 1,2 - VERSIONING_SYSTEM - apple-generic - VERSION_INFO_PREFIX - - - isa - XCBuildConfiguration - name - Release - - 0C905D6D9629186A407EC43C7DEF7E66 - - fileRef - 9F8ECEBD49CA569FC524CB77465180B6 - isa - PBXBuildFile - - 0ED0A08396CBAD914DE4379BCF7E585E - - buildConfigurationList - 4BBD76F68E67BC09C08CB14FFF4EA906 - buildPhases - - 66EC92D768733C8D9DBB4FD857FA4B06 - 7DA469E70D4B27EE88D987E16A14CA0B - 0B5E5C8758ACA9EBFD5F7E2AA6E8479A - - buildRules - - dependencies - - E6929EACFC78DC2D512F1CACAB42D81A - - isa - PBXNativeTarget - name - Pods-LiquidFloatingActionButton_Tests - productName - Pods-LiquidFloatingActionButton_Tests - productReference - 70791619EB473F8BD49DC7B26F2768A0 - productType - com.apple.product-type.framework - - 10B0CFDA9E4883AADDB4595153399A95 - - containerPortal - D41D8CD98F00B204E9800998ECF8427E - isa - PBXContainerItemProxy - proxyType - 1 - remoteGlobalIDString - 4BCE15B65BE1423E31A139A48360119E - remoteInfo - LiquidFloatingActionButton - - 14426FA5248A96FBC6A531879E24CFA5 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - SnapKit-prefix.pch - sourceTree - <group> - - 156D6C46DF45A7803E62D7F023CD095A - - fileRef - 73878F9931EAA78C3DAAF7DDA048218E - isa - PBXBuildFile - - 1597EB20B7AC6F8393337982BF89FADB - - baseConfigurationReference - E885DC7A2C93B352F3CCBAF6C4F30F7F - buildSettings - - CODE_SIGN_IDENTITY[sdk=iphoneos*] - iPhone Developer - CURRENT_PROJECT_VERSION - 1 - DEBUG_INFORMATION_FORMAT - dwarf - DEFINES_MODULE - YES - DYLIB_COMPATIBILITY_VERSION - 1 - DYLIB_CURRENT_VERSION - 1 - DYLIB_INSTALL_NAME_BASE - @rpath - ENABLE_STRICT_OBJC_MSGSEND - YES - GCC_NO_COMMON_BLOCKS - YES - GCC_PREFIX_HEADER - Target Support Files/SnapKit/SnapKit-prefix.pch - INFOPLIST_FILE - Target Support Files/SnapKit/Info.plist - INSTALL_PATH - $(LOCAL_LIBRARY_DIR)/Frameworks - IPHONEOS_DEPLOYMENT_TARGET - 8.0 - LD_RUNPATH_SEARCH_PATHS - - $(inherited) - @executable_path/Frameworks - @loader_path/Frameworks - - MODULEMAP_FILE - Target Support Files/SnapKit/SnapKit.modulemap - MTL_ENABLE_DEBUG_INFO - YES - PRODUCT_NAME - SnapKit - SDKROOT - iphoneos - SKIP_INSTALL - YES - SWIFT_OPTIMIZATION_LEVEL - -Onone - TARGETED_DEVICE_FAMILY - 1,2 - VERSIONING_SYSTEM - apple-generic - VERSION_INFO_PREFIX - - - isa - XCBuildConfiguration - name - Debug - - 15C6FC5FD383058121E6098617B98C67 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - path - Pods-LiquidFloatingActionButton_Example.debug.xcconfig - sourceTree - <group> - - 15F42031AA343001A7E2C8D3D69C9DE2 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - Pods-LiquidFloatingActionButton_Example-dummy.m - sourceTree - <group> - - 1A4A759ED5E8ED2278F9D307ABD11FC5 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - Pods-LiquidFloatingActionButton_Example-umbrella.h - sourceTree - <group> - - 1C56ABE3696B5A7C30A744B23F17B774 - - explicitFileType - wrapper.framework - includeInIndex - 0 - isa - PBXFileReference - name - Pods_LiquidFloatingActionButton_Example.framework - path - Pods-LiquidFloatingActionButton_Example.framework - sourceTree - BUILT_PRODUCTS_DIR - - 1EC12321BB0A0C22B6A6BE639A9983F3 - - buildConfigurations - - E31108E78351255ACC4E34E6DD52DC86 - F9CE954751AE262BA38DCEAFEE1B5D33 - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - 1F2B728DCF7E9F88008827314C2AE823 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintInsetTarget.swift - path - Source/ConstraintInsetTarget.swift - sourceTree - <group> - - 212E2771F1CD458D21A0FB3CA1C914F3 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintLayoutSupport.swift - path - Source/ConstraintLayoutSupport.swift - sourceTree - <group> - - 222D303213262931EA317A1E0F6BAB38 - - fileRef - A8D96BACF73B0930447045AF580F1F64 - isa - PBXBuildFile - - 260679D455A5673E37DC64A285D035D0 - - buildActionMask - 2147483647 - files - - 7E538EF481F898874DF94F0F8CBC5D2C - - isa - PBXHeadersBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 261BC3C65CE6EBBED920977848212F6F - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintMakerPriortizable.swift - path - Source/ConstraintMakerPriortizable.swift - sourceTree - <group> - - 2A243039ECE25C22417777FADC30ED4B - - fileRef - 446C79107F482F7B2D7E4061657DCA44 - isa - PBXBuildFile - - 2B483F03EA79C3C9DDEEF7DB0181AFC0 - - children - - AE2F18FBC8136A267123CC803D2C583B - - isa - PBXGroup - name - Development Pods - sourceTree - <group> - - 2C83799F09E1AA0516AB5DB90625639B - - fileRef - 6CC7FF80150FA3840AD57BCE994C9FAB - isa - PBXBuildFile - - 2D8E8EC45A3A1A1D94AE762CB5028504 - - buildConfigurations - - D3E3D092A3FF7311A98E44BBA36FFD12 - 0ACDCBCB0B6796575F46FFA2F5410C6B - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - 32A2AF2E2F4B1499E450931CC0CAD202 - - includeInIndex - 1 - isa - PBXFileReference - path - Pods-LiquidFloatingActionButton_Example.modulemap - sourceTree - <group> - - 34A4795691704A615AA138BF95042DC5 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text - path - Pods-LiquidFloatingActionButton_Example-acknowledgements.markdown - sourceTree - <group> - - 369689EDAB3FAFC4E5BB39A93321BBFC - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - path - CGPointEx.swift - sourceTree - <group> - - 36F74146B8079D5E7A7D8309B0FF7565 - - fileRef - 261BC3C65CE6EBBED920977848212F6F - isa - PBXBuildFile - - 37A83F173235565EDE9A076A15250F07 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.script.sh - path - Pods-LiquidFloatingActionButton_Example-resources.sh - sourceTree - <group> - - 382A89C8A9966985B246A0297407D219 - - fileRef - 041C7DFD4E40027278BABCCCD69743B2 - isa - PBXBuildFile - - 387CBFD0CECEC9E8DA816C353D8AA44B - - buildConfigurationList - 47881458D9A4FBFCF836AE674D3268E5 - buildPhases - - 7DEFD17BAEAC401FE05557EEB7477DD1 - 614F0F65B18E3F7F4566838C2466DDF4 - C5453DEA4A21F19419F29DFDB5DFC00E - - buildRules - - dependencies - - isa - PBXNativeTarget - name - SnapKit - productName - SnapKit - productReference - C113B9855019081B47BCB0011553CB7B - productType - com.apple.product-type.framework - - 3A6167E299BA9862893D87DDBF170B70 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintMaker.swift - path - Source/ConstraintMaker.swift - sourceTree - <group> - - 3B90EF7CA55AE01CE50EAF5C3C574CDD - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - Constraint.swift - path - Source/Constraint.swift - sourceTree - <group> - - 3D41203B7B3855EA27D3E987D3EEB224 - - fileRef - 8CAC4A98C58F1EBAF09C8E193E73E985 - isa - PBXBuildFile - - 3DCAB2B7CDE207B3958B6CB957FCC758 - - children - - CEC22C73C1608DFA5D5D78BDCB218219 - - isa - PBXGroup - name - iOS - sourceTree - <group> - - 3FE15693153A62AC79B129BA5FFB7C3D - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintDSL.swift - path - Source/ConstraintDSL.swift - sourceTree - <group> - - 403679D690C81703CB583C940107CFD1 - - fileRef - 737B1700C2C19AD11C2872C1C46EC8D4 - isa - PBXBuildFile - - 40E154929C97169FF28608F168BAA648 - - fileRef - 1A4A759ED5E8ED2278F9D307ABD11FC5 - isa - PBXBuildFile - settings - - ATTRIBUTES - - Public - - - - 42358D3ECCE5C55DBB5C84DB7CF83577 - - fileRef - 50BF4E341DC91F918DC3DD74CA4ADC22 - isa - PBXBuildFile - settings - - ATTRIBUTES - - Public - - - - 446C79107F482F7B2D7E4061657DCA44 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintLayoutGuideDSL.swift - path - Source/ConstraintLayoutGuideDSL.swift - sourceTree - <group> - - 455D1C85888DD5A8DEB3D728C891AB98 - - fileRef - 8705AFD8FF18225FA8BB0228A69E72AA - isa - PBXBuildFile - - 458932A7F6390E9028454F0A27A50A13 - - children - - CA274E8C59BA433F4975D535FA594EFA - B7D4645BD3C0100FB7E1B4A6FDC96E0B - E885DC7A2C93B352F3CCBAF6C4F30F7F - 9F675DF8551ECAD72F0C6D96084C6DD4 - 14426FA5248A96FBC6A531879E24CFA5 - 50BF4E341DC91F918DC3DD74CA4ADC22 - - isa - PBXGroup - name - Support Files - path - ../Target Support Files/SnapKit - sourceTree - <group> - - 472AE9D6E5530C4A22E40EAE13A2B2A0 - - fileRef - AF1BDEFD46348EE8C41DE053AEDBFD1B - isa - PBXBuildFile - - 47881458D9A4FBFCF836AE674D3268E5 - - buildConfigurations - - 1597EB20B7AC6F8393337982BF89FADB - F2B91DB995726D485A3A0C653AB36068 - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - 4891FC70C29A87882CF967258A163202 - - fileRef - 7B4759EEB4180EAF3DA189AAE28199AC - isa - PBXBuildFile - - 4944CA8FF8D31ABF8BFFEC2E46AE608D - - fileRef - 97F0138AE8EA08984375344610BE7E1E - isa - PBXBuildFile - - 4BBD76F68E67BC09C08CB14FFF4EA906 - - buildConfigurations - - 001FD24C7FFEED6B7B9F95D34A0828DF - 7A6E9C535D324A4F0E8ED7997F1DB5BB - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - 4BCE15B65BE1423E31A139A48360119E - - buildConfigurationList - 1EC12321BB0A0C22B6A6BE639A9983F3 - buildPhases - - 8749C03AAA14097B43EAADA1E8600D74 - 68F6EC99D6740686C4802F2C69A003BA - 260679D455A5673E37DC64A285D035D0 - - buildRules - - dependencies - - isa - PBXNativeTarget - name - LiquidFloatingActionButton - productName - LiquidFloatingActionButton - productReference - 9231BEA6AC185B3FCBFD27ACB63CD892 - productType - com.apple.product-type.framework - - 4C19ED4C22D6B9808195702DB3990008 - - fileRef - 97232F629F7FC2174E1BE76D76737706 - isa - PBXBuildFile - - 4CA7418B0FCBC3D61E2A0393244E1BF1 - - fileRef - F9319AF949935BC0602093E0830E8B10 - isa - PBXBuildFile - - 4EB840C0FCFA128ECC2A9B932415D6A8 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - path - Pods-LiquidFloatingActionButton_Example.release.xcconfig - sourceTree - <group> - - 50BF4E341DC91F918DC3DD74CA4ADC22 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - SnapKit-umbrella.h - sourceTree - <group> - - 558D7CB2FB7F2C0FB7BFA2BCF7217EAA - - fileRef - 3B90EF7CA55AE01CE50EAF5C3C574CDD - isa - PBXBuildFile - - 56703A4074D4D2B486FDD90CE6BA23D8 - - fileRef - 9F675DF8551ECAD72F0C6D96084C6DD4 - isa - PBXBuildFile - - 58C7159C06470D006C424DDC8A1A60EB - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - LiquidFloatingActionButton-dummy.m - sourceTree - <group> - - 5925C73B578B569902B6E043D675652A - - containerPortal - D41D8CD98F00B204E9800998ECF8427E - isa - PBXContainerItemProxy - proxyType - 1 - remoteGlobalIDString - 4BCE15B65BE1423E31A139A48360119E - remoteInfo - LiquidFloatingActionButton - - 597734A7EDE6E13F6D1939A7C7373CD1 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintConfig.swift - path - Source/ConstraintConfig.swift - sourceTree - <group> - - 5A82C9E223C33B72D27F16541E58440A - - fileRef - E11295210FBB75091BE22529081A2720 - isa - PBXBuildFile - - 5B850A0AE5BE721D248F258FB455C96E - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - LiquidFloatingActionButton-prefix.pch - sourceTree - <group> - - 5D0D78B2AEA5286AA98D3198C9653619 - - children - - 9231BEA6AC185B3FCBFD27ACB63CD892 - 1C56ABE3696B5A7C30A744B23F17B774 - 70791619EB473F8BD49DC7B26F2768A0 - C113B9855019081B47BCB0011553CB7B - - isa - PBXGroup - name - Products - sourceTree - <group> - - 5D47B5F7F9B93DB896CFAEDA03CCB522 - - fileRef - 58C7159C06470D006C424DDC8A1A60EB - isa - PBXBuildFile - - 614F0F65B18E3F7F4566838C2466DDF4 - - buildActionMask - 2147483647 - files - - B4BFAED2D1CBD8A95C1B7F00F33D94AA - - isa - PBXFrameworksBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 618F63A95B22676C4FA61F86A5AB3136 - - buildActionMask - 2147483647 - files - - 9839FC7BD136D98C4786DB72E56B3E5F - - isa - PBXFrameworksBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 63AA079CA68C8594DE2EFCEECD70391B - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.plist.xml - path - Pods-LiquidFloatingActionButton_Tests-acknowledgements.plist - sourceTree - <group> - - 66EC92D768733C8D9DBB4FD857FA4B06 - - buildActionMask - 2147483647 - files - - 4C19ED4C22D6B9808195702DB3990008 - - isa - PBXSourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 6862F5F9E2EA9D362151AC37E55E276D - - fileRef - 7BEA23F4393572EE30AED50A651CD185 - isa - PBXBuildFile - - 68B1870B4B682D119A8F8E735AEB1AA7 - - isa - PBXTargetDependency - name - SnapKit - target - 387CBFD0CECEC9E8DA816C353D8AA44B - targetProxy - F37E0413588FEF57B185C90A28936627 - - 68F6EC99D6740686C4802F2C69A003BA - - buildActionMask - 2147483647 - files - - EAC4522ECD9EDE06632C34321215099E - - isa - PBXFrameworksBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 6BEAD485B9DC8B38EBDE94D6A091FDB6 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - path - CGRectEx.swift - sourceTree - <group> - - 6CC7FF80150FA3840AD57BCE994C9FAB - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintLayoutSupportDSL.swift - path - Source/ConstraintLayoutSupportDSL.swift - sourceTree - <group> - - 6E328286AD7C502EA27A22A48B46157C - - fileRef - CEC22C73C1608DFA5D5D78BDCB218219 - isa - PBXBuildFile - - 6EED94C3BCC5D4D74F39F92DA8C23BEE - - baseConfigurationReference - 15C6FC5FD383058121E6098617B98C67 - buildSettings - - CODE_SIGN_IDENTITY[sdk=iphoneos*] - iPhone Developer - CURRENT_PROJECT_VERSION - 1 - DEBUG_INFORMATION_FORMAT - dwarf - DEFINES_MODULE - YES - DYLIB_COMPATIBILITY_VERSION - 1 - DYLIB_CURRENT_VERSION - 1 - DYLIB_INSTALL_NAME_BASE - @rpath - ENABLE_STRICT_OBJC_MSGSEND - YES - GCC_NO_COMMON_BLOCKS - YES - INFOPLIST_FILE - Target Support Files/Pods-LiquidFloatingActionButton_Example/Info.plist - INSTALL_PATH - $(LOCAL_LIBRARY_DIR)/Frameworks - IPHONEOS_DEPLOYMENT_TARGET - 8.3 - LD_RUNPATH_SEARCH_PATHS - - $(inherited) - @executable_path/Frameworks - @loader_path/Frameworks - - MACH_O_TYPE - staticlib - MODULEMAP_FILE - Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.modulemap - MTL_ENABLE_DEBUG_INFO - YES - OTHER_LDFLAGS - - OTHER_LIBTOOLFLAGS - - PODS_ROOT - $(SRCROOT) - PRODUCT_BUNDLE_IDENTIFIER - org.cocoapods.${PRODUCT_NAME:rfc1034identifier} - PRODUCT_NAME - Pods_LiquidFloatingActionButton_Example - SDKROOT - iphoneos - SKIP_INSTALL - YES - SWIFT_OPTIMIZATION_LEVEL - -Onone - TARGETED_DEVICE_FAMILY - 1,2 - VERSIONING_SYSTEM - apple-generic - VERSION_INFO_PREFIX - - - isa - XCBuildConfiguration - name - Debug - - 70722508FEFCEA523F7B8F66D9DDF4F5 - - includeInIndex - 1 - isa - PBXFileReference - path - LiquidFloatingActionButton.modulemap - sourceTree - <group> - - 70791619EB473F8BD49DC7B26F2768A0 - - explicitFileType - wrapper.framework - includeInIndex - 0 - isa - PBXFileReference - name - Pods_LiquidFloatingActionButton_Tests.framework - path - Pods-LiquidFloatingActionButton_Tests.framework - sourceTree - BUILT_PRODUCTS_DIR - - 70A374969C87173198D8D4B6111ECB6E - - fileRef - BAF44DB2E216127955F1E0FEF8213369 - isa - PBXBuildFile - - 737B1700C2C19AD11C2872C1C46EC8D4 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - Debugging.swift - path - Source/Debugging.swift - sourceTree - <group> - - 73878F9931EAA78C3DAAF7DDA048218E - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - LayoutConstraint.swift - path - Source/LayoutConstraint.swift - sourceTree - <group> - - 7A5DCCC054F4E24631ADC1E3C3A70343 - - fileRef - 212E2771F1CD458D21A0FB3CA1C914F3 - isa - PBXBuildFile - - 7A6E9C535D324A4F0E8ED7997F1DB5BB - - baseConfigurationReference - AA63D17174A63F13D3434AAB04CB95CD - buildSettings - - CODE_SIGN_IDENTITY[sdk=iphoneos*] - iPhone Developer - CURRENT_PROJECT_VERSION - 1 - DEBUG_INFORMATION_FORMAT - dwarf-with-dsym - DEFINES_MODULE - YES - DYLIB_COMPATIBILITY_VERSION - 1 - DYLIB_CURRENT_VERSION - 1 - DYLIB_INSTALL_NAME_BASE - @rpath - ENABLE_STRICT_OBJC_MSGSEND - YES - GCC_NO_COMMON_BLOCKS - YES - INFOPLIST_FILE - Target Support Files/Pods-LiquidFloatingActionButton_Tests/Info.plist - INSTALL_PATH - $(LOCAL_LIBRARY_DIR)/Frameworks - IPHONEOS_DEPLOYMENT_TARGET - 8.3 - LD_RUNPATH_SEARCH_PATHS - - $(inherited) - @executable_path/Frameworks - @loader_path/Frameworks - - MACH_O_TYPE - staticlib - MODULEMAP_FILE - Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.modulemap - MTL_ENABLE_DEBUG_INFO - NO - OTHER_LDFLAGS - - OTHER_LIBTOOLFLAGS - - PODS_ROOT - $(SRCROOT) - PRODUCT_BUNDLE_IDENTIFIER - org.cocoapods.${PRODUCT_NAME:rfc1034identifier} - PRODUCT_NAME - Pods_LiquidFloatingActionButton_Tests - SDKROOT - iphoneos - SKIP_INSTALL - YES - TARGETED_DEVICE_FAMILY - 1,2 - VERSIONING_SYSTEM - apple-generic - VERSION_INFO_PREFIX - - - isa - XCBuildConfiguration - name - Release - - 7B4759EEB4180EAF3DA189AAE28199AC - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - UILayoutGuide+Extensions.swift - path - Source/UILayoutGuide+Extensions.swift - sourceTree - <group> - - 7BD5E598A90E9B5D7F5BE26DD5C7B6D6 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.script.sh - path - Pods-LiquidFloatingActionButton_Tests-resources.sh - sourceTree - <group> - - 7BEA23F4393572EE30AED50A651CD185 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintItem.swift - path - Source/ConstraintItem.swift - sourceTree - <group> - - 7DA469E70D4B27EE88D987E16A14CA0B - - buildActionMask - 2147483647 - files - - 6E328286AD7C502EA27A22A48B46157C - - isa - PBXFrameworksBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 7DB346D0F39D3F0E887471402A8071AB - - children - - 93A4A3777CF96A4AAC1D13BA6DCCEA73 - 2B483F03EA79C3C9DDEEF7DB0181AFC0 - BC3CA7F9E30CC8F7E2DD044DD34432FC - FCB3E800ADEFE141C46C6B85E298DF53 - 5D0D78B2AEA5286AA98D3198C9653619 - F4BDFB4BCFC42C98938E70B06FC40921 - - isa - PBXGroup - sourceTree - <group> - - 7DEFD17BAEAC401FE05557EEB7477DD1 - - buildActionMask - 2147483647 - files - - 558D7CB2FB7F2C0FB7BFA2BCF7217EAA - 382A89C8A9966985B246A0297407D219 - DA0B4783CA61D670415069AE79CA8BE1 - 4CA7418B0FCBC3D61E2A0393244E1BF1 - DFA8073CB687441FF93505CB02432936 - 8CAF98A2AD7189203548CDDA44E3B881 - 9038175ADF2AAA447C93DC65AF74C205 - A0E68453F95B1D24E992A71FFE5C9FB2 - 6862F5F9E2EA9D362151AC37E55E276D - FFFBAAED7A3ADC328B1EE0193BF98138 - 2A243039ECE25C22417777FADC30ED4B - 7A5DCCC054F4E24631ADC1E3C3A70343 - 2C83799F09E1AA0516AB5DB90625639B - 07C1582DE353E230C116FBBA55215D38 - 0C905D6D9629186A407EC43C7DEF7E66 - 455D1C85888DD5A8DEB3D728C891AB98 - 882DD384A96A03DE16B115C0AA801A8F - 36F74146B8079D5E7A7D8309B0FF7565 - F3132422696A8E14ED71162F16F900B0 - 83D17E8B5FF0BEE6E212CBBB98FCCF34 - 472AE9D6E5530C4A22E40EAE13A2B2A0 - 4944CA8FF8D31ABF8BFFEC2E46AE608D - F8B99B2534B76BA3A39D5787434BA16E - 067A34DB72BA048934A4ACB8F865D499 - 5A82C9E223C33B72D27F16541E58440A - E7D4AEB7F3C4AB23FEBA14AD82BB31E5 - 8217E7706802DF39D8369FD61A75F997 - 403679D690C81703CB583C940107CFD1 - 156D6C46DF45A7803E62D7F023CD095A - 56703A4074D4D2B486FDD90CE6BA23D8 - 4891FC70C29A87882CF967258A163202 - C74E7F220185731302C173547511274A - - isa - PBXSourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 7E538EF481F898874DF94F0F8CBC5D2C - - fileRef - 824CA79EC009B18484863834998CC017 - isa - PBXBuildFile - settings - - ATTRIBUTES - - Public - - - - 80DA2BFE26A78E748CCDAD5FE668A48C - - children - - 8CAC4A98C58F1EBAF09C8E193E73E985 - 369689EDAB3FAFC4E5BB39A93321BBFC - 6BEAD485B9DC8B38EBDE94D6A091FDB6 - 83AC495A087C2EAF9CAAC87835CAA680 - D691EE87C404B7D086624B5801982F43 - BAF44DB2E216127955F1E0FEF8213369 - E3B69218901BE4E025D721BBC5CC763A - A8D96BACF73B0930447045AF580F1F64 - - isa - PBXGroup - name - Classes - path - Classes - sourceTree - <group> - - 813C2A5263E149C889A2DF40FFDD89BA - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintRelatableTarget.swift - path - Source/ConstraintRelatableTarget.swift - sourceTree - <group> - - 8217E7706802DF39D8369FD61A75F997 - - fileRef - 8B78113584563565B18CD0248D9D0A93 - isa - PBXBuildFile - - 824CA79EC009B18484863834998CC017 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - LiquidFloatingActionButton-umbrella.h - sourceTree - <group> - - 82BC29399E8CB5DE4082F0C18B2BA3DC - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.plist.xml - path - Info.plist - sourceTree - <group> - - 83AC495A087C2EAF9CAAC87835CAA680 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - path - LiquidFloatingActionButton.swift - sourceTree - <group> - - 83D17E8B5FF0BEE6E212CBBB98FCCF34 - - fileRef - 0729DC38B02A17974FD7A7238FCB1836 - isa - PBXBuildFile - - 8705AFD8FF18225FA8BB0228A69E72AA - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintMakerExtendable.swift - path - Source/ConstraintMakerExtendable.swift - sourceTree - <group> - - 8749C03AAA14097B43EAADA1E8600D74 - - buildActionMask - 2147483647 - files - - 3D41203B7B3855EA27D3E987D3EEB224 - 903FE6138690401881CED819779A73AC - 8D10C418C90EE34F5BA2C22019612D80 - 5D47B5F7F9B93DB896CFAEDA03CCB522 - B21BD823B02D2B87FD9189869502FCD5 - FB4B87C1866264B4C63C18C6D89EC703 - 70A374969C87173198D8D4B6111ECB6E - CB9BE415254E64439620E55C08536186 - 222D303213262931EA317A1E0F6BAB38 - - isa - PBXSourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 87CCF4DB7EFBDC070B92BFC0BC0D2C8C - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintMakerRelatable.swift - path - Source/ConstraintMakerRelatable.swift - sourceTree - <group> - - 882DD384A96A03DE16B115C0AA801A8F - - fileRef - D8AA583273C076DD4A1EBAFDDA0E89A8 - isa - PBXBuildFile - - 8B78113584563565B18CD0248D9D0A93 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintViewDSL.swift - path - Source/ConstraintViewDSL.swift - sourceTree - <group> - - 8CAC4A98C58F1EBAF09C8E193E73E985 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - path - ArrayEx.swift - sourceTree - <group> - - 8CAF98A2AD7189203548CDDA44E3B881 - - fileRef - 3FE15693153A62AC79B129BA5FFB7C3D - isa - PBXBuildFile - - 8D10C418C90EE34F5BA2C22019612D80 - - fileRef - 6BEAD485B9DC8B38EBDE94D6A091FDB6 - isa - PBXBuildFile - - 8DB80E76EE113421A98CB8EE23DE90D4 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.plist.xml - path - Info.plist - sourceTree - <group> - - 8EF67744D713AB87F9A34356FCB4C593 - - includeInIndex - 1 - isa - PBXFileReference - path - Pods-LiquidFloatingActionButton_Tests.modulemap - sourceTree - <group> - - 9038175ADF2AAA447C93DC65AF74C205 - - fileRef - E855200DC6085FF07EBD87301AD370C9 - isa - PBXBuildFile - - 903FE6138690401881CED819779A73AC - - fileRef - 369689EDAB3FAFC4E5BB39A93321BBFC - isa - PBXBuildFile - - 9231BEA6AC185B3FCBFD27ACB63CD892 - - explicitFileType - wrapper.framework - includeInIndex - 0 - isa - PBXFileReference - name - LiquidFloatingActionButton.framework - path - LiquidFloatingActionButton.framework - sourceTree - BUILT_PRODUCTS_DIR - - 93A4A3777CF96A4AAC1D13BA6DCCEA73 - - explicitFileType - text.script.ruby - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text - name - Podfile - path - ../Podfile - sourceTree - SOURCE_ROOT - xcLanguageSpecificationIdentifier - xcode.lang.ruby - - 94616D549170E6823044A6E5E95F9E86 - - isa - PBXTargetDependency - name - LiquidFloatingActionButton - target - 4BCE15B65BE1423E31A139A48360119E - targetProxy - 5925C73B578B569902B6E043D675652A - - 96F405472686341EFEEAB4A3B7E44B87 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.plist.xml - path - Info.plist - sourceTree - <group> - - 97232F629F7FC2174E1BE76D76737706 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - Pods-LiquidFloatingActionButton_Tests-dummy.m - sourceTree - <group> - - 974C53BD384AA0C93E683E5246B81AF3 - - buildConfigurations - - 6EED94C3BCC5D4D74F39F92DA8C23BEE - 0BC13CD5FBD0B6B917F7955554546458 - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - 97F0138AE8EA08984375344610BE7E1E - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintPriorityTarget.swift - path - Source/ConstraintPriorityTarget.swift - sourceTree - <group> - - 9839FC7BD136D98C4786DB72E56B3E5F - - fileRef - CEC22C73C1608DFA5D5D78BDCB218219 - isa - PBXBuildFile - - 9B73872B15E9C56304335676CC951C90 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - path - Pods-LiquidFloatingActionButton_Tests.debug.xcconfig - sourceTree - <group> - - 9BA657C14DCF4133528472C8E44F67CD - - buildActionMask - 2147483647 - files - - 40E154929C97169FF28608F168BAA648 - - isa - PBXHeadersBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 9F675DF8551ECAD72F0C6D96084C6DD4 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - SnapKit-dummy.m - sourceTree - <group> - - 9F8ECEBD49CA569FC524CB77465180B6 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintMakerEditable.swift - path - Source/ConstraintMakerEditable.swift - sourceTree - <group> - - A0E68453F95B1D24E992A71FFE5C9FB2 - - fileRef - 1F2B728DCF7E9F88008827314C2AE823 - isa - PBXBuildFile - - A206D3FB01DAFF8C15F21FB01DFFCE5C - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.script.sh - path - Pods-LiquidFloatingActionButton_Example-frameworks.sh - sourceTree - <group> - - A8D96BACF73B0930447045AF580F1F64 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - path - UIColorEx.swift - sourceTree - <group> - - AA63D17174A63F13D3434AAB04CB95CD - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - path - Pods-LiquidFloatingActionButton_Tests.release.xcconfig - sourceTree - <group> - - AE2F18FBC8136A267123CC803D2C583B - - children - - F49E6C75BCE430958DB1CC52D1914458 - D401308214B3B3372E1C579337305FF5 - - isa - PBXGroup - name - LiquidFloatingActionButton - path - ../.. - sourceTree - <group> - - AF1BDEFD46348EE8C41DE053AEDBFD1B - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintOffsetTarget.swift - path - Source/ConstraintOffsetTarget.swift - sourceTree - <group> - - B21BD823B02D2B87FD9189869502FCD5 - - fileRef - 83AC495A087C2EAF9CAAC87835CAA680 - isa - PBXBuildFile - - B4BFAED2D1CBD8A95C1B7F00F33D94AA - - fileRef - CEC22C73C1608DFA5D5D78BDCB218219 - isa - PBXBuildFile - - B525F7008B3760076D71FE29C0859BDC - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintLayoutGuide.swift - path - Source/ConstraintLayoutGuide.swift - sourceTree - <group> - - B7D4645BD3C0100FB7E1B4A6FDC96E0B - - includeInIndex - 1 - isa - PBXFileReference - path - SnapKit.modulemap - sourceTree - <group> - - B80DBE465AE8ED339A23BA7027E83E9C - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.plist.xml - path - Pods-LiquidFloatingActionButton_Example-acknowledgements.plist - sourceTree - <group> - - BAF44DB2E216127955F1E0FEF8213369 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - path - LiquittableCircle.swift - sourceTree - <group> - - BC3CA7F9E30CC8F7E2DD044DD34432FC - - children - - 3DCAB2B7CDE207B3958B6CB957FCC758 - - isa - PBXGroup - name - Frameworks - sourceTree - <group> - - C113B9855019081B47BCB0011553CB7B - - explicitFileType - wrapper.framework - includeInIndex - 0 - isa - PBXFileReference - name - SnapKit.framework - path - SnapKit.framework - sourceTree - BUILT_PRODUCTS_DIR - - C4C807430C3A7B9A82E2DDD844C58759 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintRelation.swift - path - Source/ConstraintRelation.swift - sourceTree - <group> - - C5453DEA4A21F19419F29DFDB5DFC00E - - buildActionMask - 2147483647 - files - - 42358D3ECCE5C55DBB5C84DB7CF83577 - - isa - PBXHeadersBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - C74E7F220185731302C173547511274A - - fileRef - 0AB21FA0A2E5B45AB133215CC241236D - isa - PBXBuildFile - - CA274E8C59BA433F4975D535FA594EFA - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.plist.xml - path - Info.plist - sourceTree - <group> - - CB70FEBA9EF66CAAA461E6F3F819716B - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintDescription.swift - path - Source/ConstraintDescription.swift - sourceTree - <group> - - CB9BE415254E64439620E55C08536186 - - fileRef - E3B69218901BE4E025D721BBC5CC763A - isa - PBXBuildFile - - CEC22C73C1608DFA5D5D78BDCB218219 - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - Foundation.framework - path - Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/Foundation.framework - sourceTree - DEVELOPER_DIR - - D2E296184E24EBA83C604214BE7B30AF - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text - path - Pods-LiquidFloatingActionButton_Tests-acknowledgements.markdown - sourceTree - <group> - - D3E3D092A3FF7311A98E44BBA36FFD12 - - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - CLANG_ANALYZER_NONNULL - YES - CLANG_CXX_LANGUAGE_STANDARD - gnu++0x - CLANG_CXX_LIBRARY - libc++ - CLANG_ENABLE_MODULES - YES - CLANG_ENABLE_OBJC_ARC - YES - CLANG_WARN_BOOL_CONVERSION - YES - CLANG_WARN_CONSTANT_CONVERSION - YES - CLANG_WARN_DIRECT_OBJC_ISA_USAGE - YES - CLANG_WARN_EMPTY_BODY - YES - CLANG_WARN_ENUM_CONVERSION - YES - CLANG_WARN_INT_CONVERSION - YES - CLANG_WARN_OBJC_ROOT_CLASS - YES - CLANG_WARN_UNREACHABLE_CODE - YES - CLANG_WARN__DUPLICATE_METHOD_MATCH - YES - COPY_PHASE_STRIP - NO - ENABLE_TESTABILITY - YES - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_DYNAMIC_NO_PIC - NO - GCC_OPTIMIZATION_LEVEL - 0 - GCC_PREPROCESSOR_DEFINITIONS - - POD_CONFIGURATION_DEBUG=1 - DEBUG=1 - $(inherited) - - GCC_SYMBOLS_PRIVATE_EXTERN - NO - GCC_WARN_64_TO_32_BIT_CONVERSION - YES - GCC_WARN_ABOUT_RETURN_TYPE - YES - GCC_WARN_UNDECLARED_SELECTOR - YES - GCC_WARN_UNINITIALIZED_AUTOS - YES - GCC_WARN_UNUSED_FUNCTION - YES - GCC_WARN_UNUSED_VARIABLE - YES - IPHONEOS_DEPLOYMENT_TARGET - 8.3 - ONLY_ACTIVE_ARCH - YES - STRIP_INSTALLED_PRODUCT - NO - SYMROOT - ${SRCROOT}/../build - - isa - XCBuildConfiguration - name - Debug - - D401308214B3B3372E1C579337305FF5 - - children - - 82BC29399E8CB5DE4082F0C18B2BA3DC - 70722508FEFCEA523F7B8F66D9DDF4F5 - 050B0D0CB0787BEA95A638CEB77D19BC - 58C7159C06470D006C424DDC8A1A60EB - 5B850A0AE5BE721D248F258FB455C96E - 824CA79EC009B18484863834998CC017 - - isa - PBXGroup - name - Support Files - path - Example/Pods/Target Support Files/LiquidFloatingActionButton - sourceTree - <group> - - D41D8CD98F00B204E9800998ECF8427E - - attributes - - LastSwiftUpdateCheck - 0730 - LastUpgradeCheck - 0700 - - buildConfigurationList - 2D8E8EC45A3A1A1D94AE762CB5028504 - compatibilityVersion - Xcode 3.2 - developmentRegion - English - hasScannedForEncodings - 0 - isa - PBXProject - knownRegions - - en - - mainGroup - 7DB346D0F39D3F0E887471402A8071AB - productRefGroup - 5D0D78B2AEA5286AA98D3198C9653619 - projectDirPath - - projectReferences - - projectRoot - - targets - - 4BCE15B65BE1423E31A139A48360119E - F7C1C7995CD2F101DD63DDC91BAABAA9 - 0ED0A08396CBAD914DE4379BCF7E585E - 387CBFD0CECEC9E8DA816C353D8AA44B - - - D691EE87C404B7D086624B5801982F43 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - path - LiquidUtil.swift - sourceTree - <group> - - D6E0DF24DD4243EB00821C0996A56027 - - children - - 96F405472686341EFEEAB4A3B7E44B87 - 32A2AF2E2F4B1499E450931CC0CAD202 - 34A4795691704A615AA138BF95042DC5 - B80DBE465AE8ED339A23BA7027E83E9C - 15F42031AA343001A7E2C8D3D69C9DE2 - A206D3FB01DAFF8C15F21FB01DFFCE5C - 37A83F173235565EDE9A076A15250F07 - 1A4A759ED5E8ED2278F9D307ABD11FC5 - 15C6FC5FD383058121E6098617B98C67 - 4EB840C0FCFA128ECC2A9B932415D6A8 - - isa - PBXGroup - name - Pods-LiquidFloatingActionButton_Example - path - Target Support Files/Pods-LiquidFloatingActionButton_Example - sourceTree - <group> - - D8AA583273C076DD4A1EBAFDDA0E89A8 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintMakerFinalizable.swift - path - Source/ConstraintMakerFinalizable.swift - sourceTree - <group> - - DA0B4783CA61D670415069AE79CA8BE1 - - fileRef - 597734A7EDE6E13F6D1939A7C7373CD1 - isa - PBXBuildFile - - DFA8073CB687441FF93505CB02432936 - - fileRef - CB70FEBA9EF66CAAA461E6F3F819716B - isa - PBXBuildFile - - E05C697D61064335D42A08CC9BD13553 - - children - - 8DB80E76EE113421A98CB8EE23DE90D4 - 8EF67744D713AB87F9A34356FCB4C593 - D2E296184E24EBA83C604214BE7B30AF - 63AA079CA68C8594DE2EFCEECD70391B - 97232F629F7FC2174E1BE76D76737706 - E365F5D85C8B589E45B7CA5165A49929 - 7BD5E598A90E9B5D7F5BE26DD5C7B6D6 - FD568EC2ADE52671E9F40F5B7FE5D901 - 9B73872B15E9C56304335676CC951C90 - AA63D17174A63F13D3434AAB04CB95CD - - isa - PBXGroup - name - Pods-LiquidFloatingActionButton_Tests - path - Target Support Files/Pods-LiquidFloatingActionButton_Tests - sourceTree - <group> - - E11295210FBB75091BE22529081A2720 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintView+Extensions.swift - path - Source/ConstraintView+Extensions.swift - sourceTree - <group> - - E31108E78351255ACC4E34E6DD52DC86 - - baseConfigurationReference - 050B0D0CB0787BEA95A638CEB77D19BC - buildSettings - - CODE_SIGN_IDENTITY[sdk=iphoneos*] - iPhone Developer - CURRENT_PROJECT_VERSION - 1 - DEBUG_INFORMATION_FORMAT - dwarf - DEFINES_MODULE - YES - DYLIB_COMPATIBILITY_VERSION - 1 - DYLIB_CURRENT_VERSION - 1 - DYLIB_INSTALL_NAME_BASE - @rpath - ENABLE_STRICT_OBJC_MSGSEND - YES - GCC_NO_COMMON_BLOCKS - YES - GCC_PREFIX_HEADER - Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton-prefix.pch - INFOPLIST_FILE - Target Support Files/LiquidFloatingActionButton/Info.plist - INSTALL_PATH - $(LOCAL_LIBRARY_DIR)/Frameworks - IPHONEOS_DEPLOYMENT_TARGET - 8.0 - LD_RUNPATH_SEARCH_PATHS - - $(inherited) - @executable_path/Frameworks - @loader_path/Frameworks - - MODULEMAP_FILE - Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.modulemap - MTL_ENABLE_DEBUG_INFO - YES - PRODUCT_NAME - LiquidFloatingActionButton - SDKROOT - iphoneos - SKIP_INSTALL - YES - SWIFT_OPTIMIZATION_LEVEL - -Onone - TARGETED_DEVICE_FAMILY - 1,2 - VERSIONING_SYSTEM - apple-generic - VERSION_INFO_PREFIX - - - isa - XCBuildConfiguration - name - Debug - - E365F5D85C8B589E45B7CA5165A49929 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.script.sh - path - Pods-LiquidFloatingActionButton_Tests-frameworks.sh - sourceTree - <group> - - E3B69218901BE4E025D721BBC5CC763A - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - path - SimpleCircleLiquidEngine.swift - sourceTree - <group> - - E6929EACFC78DC2D512F1CACAB42D81A - - isa - PBXTargetDependency - name - LiquidFloatingActionButton - target - 4BCE15B65BE1423E31A139A48360119E - targetProxy - 10B0CFDA9E4883AADDB4595153399A95 - - E7D4AEB7F3C4AB23FEBA14AD82BB31E5 - - fileRef - EBCF77FFA89397B4F19B5CD8A7BDB0A3 - isa - PBXBuildFile - - E855200DC6085FF07EBD87301AD370C9 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintInsets.swift - path - Source/ConstraintInsets.swift - sourceTree - <group> - - E885DC7A2C93B352F3CCBAF6C4F30F7F - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - path - SnapKit.xcconfig - sourceTree - <group> - - EAC4522ECD9EDE06632C34321215099E - - fileRef - CEC22C73C1608DFA5D5D78BDCB218219 - isa - PBXBuildFile - - EAEFA188CC103359C4AE68AC11F8A844 - - fileRef - FD568EC2ADE52671E9F40F5B7FE5D901 - isa - PBXBuildFile - settings - - ATTRIBUTES - - Public - - - - EBCF77FFA89397B4F19B5CD8A7BDB0A3 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintView.swift - path - Source/ConstraintView.swift - sourceTree - <group> - - F2B91DB995726D485A3A0C653AB36068 - - baseConfigurationReference - E885DC7A2C93B352F3CCBAF6C4F30F7F - buildSettings - - CODE_SIGN_IDENTITY[sdk=iphoneos*] - iPhone Developer - CURRENT_PROJECT_VERSION - 1 - DEBUG_INFORMATION_FORMAT - dwarf-with-dsym - DEFINES_MODULE - YES - DYLIB_COMPATIBILITY_VERSION - 1 - DYLIB_CURRENT_VERSION - 1 - DYLIB_INSTALL_NAME_BASE - @rpath - ENABLE_STRICT_OBJC_MSGSEND - YES - GCC_NO_COMMON_BLOCKS - YES - GCC_PREFIX_HEADER - Target Support Files/SnapKit/SnapKit-prefix.pch - INFOPLIST_FILE - Target Support Files/SnapKit/Info.plist - INSTALL_PATH - $(LOCAL_LIBRARY_DIR)/Frameworks - IPHONEOS_DEPLOYMENT_TARGET - 8.0 - LD_RUNPATH_SEARCH_PATHS - - $(inherited) - @executable_path/Frameworks - @loader_path/Frameworks - - MODULEMAP_FILE - Target Support Files/SnapKit/SnapKit.modulemap - MTL_ENABLE_DEBUG_INFO - NO - PRODUCT_NAME - SnapKit - SDKROOT - iphoneos - SKIP_INSTALL - YES - TARGETED_DEVICE_FAMILY - 1,2 - VERSIONING_SYSTEM - apple-generic - VERSION_INFO_PREFIX - - - isa - XCBuildConfiguration - name - Release - - F3132422696A8E14ED71162F16F900B0 - - fileRef - 87CCF4DB7EFBDC070B92BFC0BC0D2C8C - isa - PBXBuildFile - - F37E0413588FEF57B185C90A28936627 - - containerPortal - D41D8CD98F00B204E9800998ECF8427E - isa - PBXContainerItemProxy - proxyType - 1 - remoteGlobalIDString - 387CBFD0CECEC9E8DA816C353D8AA44B - remoteInfo - SnapKit - - F49E6C75BCE430958DB1CC52D1914458 - - children - - 80DA2BFE26A78E748CCDAD5FE668A48C - - isa - PBXGroup - name - Pod - path - Pod - sourceTree - <group> - - F4BDFB4BCFC42C98938E70B06FC40921 - - children - - D6E0DF24DD4243EB00821C0996A56027 - E05C697D61064335D42A08CC9BD13553 - - isa - PBXGroup - name - Targets Support Files - sourceTree - <group> - - F7C1C7995CD2F101DD63DDC91BAABAA9 - - buildConfigurationList - 974C53BD384AA0C93E683E5246B81AF3 - buildPhases - - 07AC5B339761C60E4C8735BC1C4F5E84 - 618F63A95B22676C4FA61F86A5AB3136 - 9BA657C14DCF4133528472C8E44F67CD - - buildRules - - dependencies - - 94616D549170E6823044A6E5E95F9E86 - 68B1870B4B682D119A8F8E735AEB1AA7 - - isa - PBXNativeTarget - name - Pods-LiquidFloatingActionButton_Example - productName - Pods-LiquidFloatingActionButton_Example - productReference - 1C56ABE3696B5A7C30A744B23F17B774 - productType - com.apple.product-type.framework - - F8B99B2534B76BA3A39D5787434BA16E - - fileRef - 813C2A5263E149C889A2DF40FFDD89BA - isa - PBXBuildFile - - F9319AF949935BC0602093E0830E8B10 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - name - ConstraintConstantTarget.swift - path - Source/ConstraintConstantTarget.swift - sourceTree - <group> - - F9CE954751AE262BA38DCEAFEE1B5D33 - - baseConfigurationReference - 050B0D0CB0787BEA95A638CEB77D19BC - buildSettings - - CODE_SIGN_IDENTITY[sdk=iphoneos*] - iPhone Developer - CURRENT_PROJECT_VERSION - 1 - DEBUG_INFORMATION_FORMAT - dwarf-with-dsym - DEFINES_MODULE - YES - DYLIB_COMPATIBILITY_VERSION - 1 - DYLIB_CURRENT_VERSION - 1 - DYLIB_INSTALL_NAME_BASE - @rpath - ENABLE_STRICT_OBJC_MSGSEND - YES - GCC_NO_COMMON_BLOCKS - YES - GCC_PREFIX_HEADER - Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton-prefix.pch - INFOPLIST_FILE - Target Support Files/LiquidFloatingActionButton/Info.plist - INSTALL_PATH - $(LOCAL_LIBRARY_DIR)/Frameworks - IPHONEOS_DEPLOYMENT_TARGET - 8.0 - LD_RUNPATH_SEARCH_PATHS - - $(inherited) - @executable_path/Frameworks - @loader_path/Frameworks - - MODULEMAP_FILE - Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.modulemap - MTL_ENABLE_DEBUG_INFO - NO - PRODUCT_NAME - LiquidFloatingActionButton - SDKROOT - iphoneos - SKIP_INSTALL - YES - TARGETED_DEVICE_FAMILY - 1,2 - VERSIONING_SYSTEM - apple-generic - VERSION_INFO_PREFIX - - - isa - XCBuildConfiguration - name - Release - - FB4B87C1866264B4C63C18C6D89EC703 - - fileRef - D691EE87C404B7D086624B5801982F43 - isa - PBXBuildFile - - FCB3E800ADEFE141C46C6B85E298DF53 - - children - - 05703C849B29D1EF8195C8FE0EC6AF9E - - isa - PBXGroup - name - Pods - sourceTree - <group> - - FD568EC2ADE52671E9F40F5B7FE5D901 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - Pods-LiquidFloatingActionButton_Tests-umbrella.h - sourceTree - <group> - - FFFBAAED7A3ADC328B1EE0193BF98138 - - fileRef - B525F7008B3760076D71FE29C0859BDC - isa - PBXBuildFile - - - rootObject - D41D8CD98F00B204E9800998ECF8427E - - +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 03D37CD9914A34403CA5E7773D42702F /* Pods-LiquidFloatingActionButton_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 15F42031AA343001A7E2C8D3D69C9DE2 /* Pods-LiquidFloatingActionButton_Example-dummy.m */; }; + 067A34DB72BA048934A4ACB8F865D499 /* ConstraintRelation.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C807430C3A7B9A82E2DDD844C58759 /* ConstraintRelation.swift */; }; + 07C1582DE353E230C116FBBA55215D38 /* ConstraintMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A6167E299BA9862893D87DDBF170B70 /* ConstraintMaker.swift */; }; + 0C905D6D9629186A407EC43C7DEF7E66 /* ConstraintMakerEditable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F8ECEBD49CA569FC524CB77465180B6 /* ConstraintMakerEditable.swift */; }; + 156D6C46DF45A7803E62D7F023CD095A /* LayoutConstraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73878F9931EAA78C3DAAF7DDA048218E /* LayoutConstraint.swift */; }; + 222D303213262931EA317A1E0F6BAB38 /* UIColorEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8D96BACF73B0930447045AF580F1F64 /* UIColorEx.swift */; }; + 2A243039ECE25C22417777FADC30ED4B /* ConstraintLayoutGuideDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 446C79107F482F7B2D7E4061657DCA44 /* ConstraintLayoutGuideDSL.swift */; }; + 2C83799F09E1AA0516AB5DB90625639B /* ConstraintLayoutSupportDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6CC7FF80150FA3840AD57BCE994C9FAB /* ConstraintLayoutSupportDSL.swift */; }; + 36F74146B8079D5E7A7D8309B0FF7565 /* ConstraintMakerPriortizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 261BC3C65CE6EBBED920977848212F6F /* ConstraintMakerPriortizable.swift */; }; + 382A89C8A9966985B246A0297407D219 /* ConstraintAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 041C7DFD4E40027278BABCCCD69743B2 /* ConstraintAttributes.swift */; }; + 3D41203B7B3855EA27D3E987D3EEB224 /* ArrayEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8CAC4A98C58F1EBAF09C8E193E73E985 /* ArrayEx.swift */; }; + 403679D690C81703CB583C940107CFD1 /* Debugging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 737B1700C2C19AD11C2872C1C46EC8D4 /* Debugging.swift */; }; + 40E154929C97169FF28608F168BAA648 /* Pods-LiquidFloatingActionButton_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A4A759ED5E8ED2278F9D307ABD11FC5 /* Pods-LiquidFloatingActionButton_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 42358D3ECCE5C55DBB5C84DB7CF83577 /* SnapKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 50BF4E341DC91F918DC3DD74CA4ADC22 /* SnapKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 455D1C85888DD5A8DEB3D728C891AB98 /* ConstraintMakerExtendable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8705AFD8FF18225FA8BB0228A69E72AA /* ConstraintMakerExtendable.swift */; }; + 472AE9D6E5530C4A22E40EAE13A2B2A0 /* ConstraintOffsetTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF1BDEFD46348EE8C41DE053AEDBFD1B /* ConstraintOffsetTarget.swift */; }; + 4891FC70C29A87882CF967258A163202 /* UILayoutGuide+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B4759EEB4180EAF3DA189AAE28199AC /* UILayoutGuide+Extensions.swift */; }; + 4944CA8FF8D31ABF8BFFEC2E46AE608D /* ConstraintPriorityTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97F0138AE8EA08984375344610BE7E1E /* ConstraintPriorityTarget.swift */; }; + 4C19ED4C22D6B9808195702DB3990008 /* Pods-LiquidFloatingActionButton_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 97232F629F7FC2174E1BE76D76737706 /* Pods-LiquidFloatingActionButton_Tests-dummy.m */; }; + 4CA7418B0FCBC3D61E2A0393244E1BF1 /* ConstraintConstantTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9319AF949935BC0602093E0830E8B10 /* ConstraintConstantTarget.swift */; }; + 558D7CB2FB7F2C0FB7BFA2BCF7217EAA /* Constraint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B90EF7CA55AE01CE50EAF5C3C574CDD /* Constraint.swift */; }; + 56703A4074D4D2B486FDD90CE6BA23D8 /* SnapKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F675DF8551ECAD72F0C6D96084C6DD4 /* SnapKit-dummy.m */; }; + 5A82C9E223C33B72D27F16541E58440A /* ConstraintView+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E11295210FBB75091BE22529081A2720 /* ConstraintView+Extensions.swift */; }; + 5D47B5F7F9B93DB896CFAEDA03CCB522 /* LiquidFloatingActionButton-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 58C7159C06470D006C424DDC8A1A60EB /* LiquidFloatingActionButton-dummy.m */; }; + 6862F5F9E2EA9D362151AC37E55E276D /* ConstraintItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7BEA23F4393572EE30AED50A651CD185 /* ConstraintItem.swift */; }; + 6E328286AD7C502EA27A22A48B46157C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; + 70A374969C87173198D8D4B6111ECB6E /* LiquittableCircle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BAF44DB2E216127955F1E0FEF8213369 /* LiquittableCircle.swift */; }; + 7A5DCCC054F4E24631ADC1E3C3A70343 /* ConstraintLayoutSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 212E2771F1CD458D21A0FB3CA1C914F3 /* ConstraintLayoutSupport.swift */; }; + 7E538EF481F898874DF94F0F8CBC5D2C /* LiquidFloatingActionButton-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 824CA79EC009B18484863834998CC017 /* LiquidFloatingActionButton-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 8217E7706802DF39D8369FD61A75F997 /* ConstraintViewDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B78113584563565B18CD0248D9D0A93 /* ConstraintViewDSL.swift */; }; + 83D17E8B5FF0BEE6E212CBBB98FCCF34 /* ConstraintMultiplierTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0729DC38B02A17974FD7A7238FCB1836 /* ConstraintMultiplierTarget.swift */; }; + 882DD384A96A03DE16B115C0AA801A8F /* ConstraintMakerFinalizable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D8AA583273C076DD4A1EBAFDDA0E89A8 /* ConstraintMakerFinalizable.swift */; }; + 8CAF98A2AD7189203548CDDA44E3B881 /* ConstraintDSL.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FE15693153A62AC79B129BA5FFB7C3D /* ConstraintDSL.swift */; }; + 8D10C418C90EE34F5BA2C22019612D80 /* CGRectEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6BEAD485B9DC8B38EBDE94D6A091FDB6 /* CGRectEx.swift */; }; + 9038175ADF2AAA447C93DC65AF74C205 /* ConstraintInsets.swift in Sources */ = {isa = PBXBuildFile; fileRef = E855200DC6085FF07EBD87301AD370C9 /* ConstraintInsets.swift */; }; + 903FE6138690401881CED819779A73AC /* CGPointEx.swift in Sources */ = {isa = PBXBuildFile; fileRef = 369689EDAB3FAFC4E5BB39A93321BBFC /* CGPointEx.swift */; }; + 9839FC7BD136D98C4786DB72E56B3E5F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; + A0E68453F95B1D24E992A71FFE5C9FB2 /* ConstraintInsetTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F2B728DCF7E9F88008827314C2AE823 /* ConstraintInsetTarget.swift */; }; + B21BD823B02D2B87FD9189869502FCD5 /* LiquidFloatingActionButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83AC495A087C2EAF9CAAC87835CAA680 /* LiquidFloatingActionButton.swift */; }; + B4BFAED2D1CBD8A95C1B7F00F33D94AA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; + C74E7F220185731302C173547511274A /* UILayoutSupport+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AB21FA0A2E5B45AB133215CC241236D /* UILayoutSupport+Extensions.swift */; }; + CB9BE415254E64439620E55C08536186 /* SimpleCircleLiquidEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3B69218901BE4E025D721BBC5CC763A /* SimpleCircleLiquidEngine.swift */; }; + DA0B4783CA61D670415069AE79CA8BE1 /* ConstraintConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 597734A7EDE6E13F6D1939A7C7373CD1 /* ConstraintConfig.swift */; }; + DFA8073CB687441FF93505CB02432936 /* ConstraintDescription.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB70FEBA9EF66CAAA461E6F3F819716B /* ConstraintDescription.swift */; }; + E7D4AEB7F3C4AB23FEBA14AD82BB31E5 /* ConstraintView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBCF77FFA89397B4F19B5CD8A7BDB0A3 /* ConstraintView.swift */; }; + EAC4522ECD9EDE06632C34321215099E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; + EAEFA188CC103359C4AE68AC11F8A844 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FD568EC2ADE52671E9F40F5B7FE5D901 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + F3132422696A8E14ED71162F16F900B0 /* ConstraintMakerRelatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87CCF4DB7EFBDC070B92BFC0BC0D2C8C /* ConstraintMakerRelatable.swift */; }; + F8B99B2534B76BA3A39D5787434BA16E /* ConstraintRelatableTarget.swift in Sources */ = {isa = PBXBuildFile; fileRef = 813C2A5263E149C889A2DF40FFDD89BA /* ConstraintRelatableTarget.swift */; }; + FB4B87C1866264B4C63C18C6D89EC703 /* LiquidUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = D691EE87C404B7D086624B5801982F43 /* LiquidUtil.swift */; }; + FFFBAAED7A3ADC328B1EE0193BF98138 /* ConstraintLayoutGuide.swift in Sources */ = {isa = PBXBuildFile; fileRef = B525F7008B3760076D71FE29C0859BDC /* ConstraintLayoutGuide.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 10B0CFDA9E4883AADDB4595153399A95 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4BCE15B65BE1423E31A139A48360119E; + remoteInfo = LiquidFloatingActionButton; + }; + 5925C73B578B569902B6E043D675652A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4BCE15B65BE1423E31A139A48360119E; + remoteInfo = LiquidFloatingActionButton; + }; + F37E0413588FEF57B185C90A28936627 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 387CBFD0CECEC9E8DA816C353D8AA44B; + remoteInfo = SnapKit; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 041C7DFD4E40027278BABCCCD69743B2 /* ConstraintAttributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintAttributes.swift; path = Source/ConstraintAttributes.swift; sourceTree = ""; }; + 050B0D0CB0787BEA95A638CEB77D19BC /* LiquidFloatingActionButton.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = LiquidFloatingActionButton.xcconfig; sourceTree = ""; }; + 0729DC38B02A17974FD7A7238FCB1836 /* ConstraintMultiplierTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMultiplierTarget.swift; path = Source/ConstraintMultiplierTarget.swift; sourceTree = ""; }; + 0AB21FA0A2E5B45AB133215CC241236D /* UILayoutSupport+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UILayoutSupport+Extensions.swift"; path = "Source/UILayoutSupport+Extensions.swift"; sourceTree = ""; }; + 14426FA5248A96FBC6A531879E24CFA5 /* SnapKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SnapKit-prefix.pch"; sourceTree = ""; }; + 15C6FC5FD383058121E6098617B98C67 /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LiquidFloatingActionButton_Example.debug.xcconfig"; sourceTree = ""; }; + 15F42031AA343001A7E2C8D3D69C9DE2 /* Pods-LiquidFloatingActionButton_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-LiquidFloatingActionButton_Example-dummy.m"; sourceTree = ""; }; + 1A4A759ED5E8ED2278F9D307ABD11FC5 /* Pods-LiquidFloatingActionButton_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-LiquidFloatingActionButton_Example-umbrella.h"; sourceTree = ""; }; + 1C56ABE3696B5A7C30A744B23F17B774 /* Pods_LiquidFloatingActionButton_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LiquidFloatingActionButton_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 1F2B728DCF7E9F88008827314C2AE823 /* ConstraintInsetTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintInsetTarget.swift; path = Source/ConstraintInsetTarget.swift; sourceTree = ""; }; + 212E2771F1CD458D21A0FB3CA1C914F3 /* ConstraintLayoutSupport.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutSupport.swift; path = Source/ConstraintLayoutSupport.swift; sourceTree = ""; }; + 261BC3C65CE6EBBED920977848212F6F /* ConstraintMakerPriortizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerPriortizable.swift; path = Source/ConstraintMakerPriortizable.swift; sourceTree = ""; }; + 32A2AF2E2F4B1499E450931CC0CAD202 /* Pods-LiquidFloatingActionButton_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-LiquidFloatingActionButton_Example.modulemap"; sourceTree = ""; }; + 34A4795691704A615AA138BF95042DC5 /* Pods-LiquidFloatingActionButton_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-LiquidFloatingActionButton_Example-acknowledgements.markdown"; sourceTree = ""; }; + 369689EDAB3FAFC4E5BB39A93321BBFC /* CGPointEx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CGPointEx.swift; sourceTree = ""; }; + 37A83F173235565EDE9A076A15250F07 /* Pods-LiquidFloatingActionButton_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LiquidFloatingActionButton_Example-resources.sh"; sourceTree = ""; }; + 3A6167E299BA9862893D87DDBF170B70 /* ConstraintMaker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMaker.swift; path = Source/ConstraintMaker.swift; sourceTree = ""; }; + 3B90EF7CA55AE01CE50EAF5C3C574CDD /* Constraint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Constraint.swift; path = Source/Constraint.swift; sourceTree = ""; }; + 3FE15693153A62AC79B129BA5FFB7C3D /* ConstraintDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDSL.swift; path = Source/ConstraintDSL.swift; sourceTree = ""; }; + 446C79107F482F7B2D7E4061657DCA44 /* ConstraintLayoutGuideDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutGuideDSL.swift; path = Source/ConstraintLayoutGuideDSL.swift; sourceTree = ""; }; + 4EB840C0FCFA128ECC2A9B932415D6A8 /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LiquidFloatingActionButton_Example.release.xcconfig"; sourceTree = ""; }; + 50BF4E341DC91F918DC3DD74CA4ADC22 /* SnapKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SnapKit-umbrella.h"; sourceTree = ""; }; + 58C7159C06470D006C424DDC8A1A60EB /* LiquidFloatingActionButton-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "LiquidFloatingActionButton-dummy.m"; sourceTree = ""; }; + 597734A7EDE6E13F6D1939A7C7373CD1 /* ConstraintConfig.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintConfig.swift; path = Source/ConstraintConfig.swift; sourceTree = ""; }; + 5B850A0AE5BE721D248F258FB455C96E /* LiquidFloatingActionButton-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LiquidFloatingActionButton-prefix.pch"; sourceTree = ""; }; + 63AA079CA68C8594DE2EFCEECD70391B /* Pods-LiquidFloatingActionButton_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-LiquidFloatingActionButton_Tests-acknowledgements.plist"; sourceTree = ""; }; + 6BEAD485B9DC8B38EBDE94D6A091FDB6 /* CGRectEx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CGRectEx.swift; sourceTree = ""; }; + 6CC7FF80150FA3840AD57BCE994C9FAB /* ConstraintLayoutSupportDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutSupportDSL.swift; path = Source/ConstraintLayoutSupportDSL.swift; sourceTree = ""; }; + 70722508FEFCEA523F7B8F66D9DDF4F5 /* LiquidFloatingActionButton.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = LiquidFloatingActionButton.modulemap; sourceTree = ""; }; + 70791619EB473F8BD49DC7B26F2768A0 /* Pods_LiquidFloatingActionButton_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LiquidFloatingActionButton_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 737B1700C2C19AD11C2872C1C46EC8D4 /* Debugging.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Debugging.swift; path = Source/Debugging.swift; sourceTree = ""; }; + 73878F9931EAA78C3DAAF7DDA048218E /* LayoutConstraint.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = LayoutConstraint.swift; path = Source/LayoutConstraint.swift; sourceTree = ""; }; + 7B4759EEB4180EAF3DA189AAE28199AC /* UILayoutGuide+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "UILayoutGuide+Extensions.swift"; path = "Source/UILayoutGuide+Extensions.swift"; sourceTree = ""; }; + 7BD5E598A90E9B5D7F5BE26DD5C7B6D6 /* Pods-LiquidFloatingActionButton_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LiquidFloatingActionButton_Tests-resources.sh"; sourceTree = ""; }; + 7BEA23F4393572EE30AED50A651CD185 /* ConstraintItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintItem.swift; path = Source/ConstraintItem.swift; sourceTree = ""; }; + 813C2A5263E149C889A2DF40FFDD89BA /* ConstraintRelatableTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintRelatableTarget.swift; path = Source/ConstraintRelatableTarget.swift; sourceTree = ""; }; + 824CA79EC009B18484863834998CC017 /* LiquidFloatingActionButton-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "LiquidFloatingActionButton-umbrella.h"; sourceTree = ""; }; + 82BC29399E8CB5DE4082F0C18B2BA3DC /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 83AC495A087C2EAF9CAAC87835CAA680 /* LiquidFloatingActionButton.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiquidFloatingActionButton.swift; sourceTree = ""; }; + 8705AFD8FF18225FA8BB0228A69E72AA /* ConstraintMakerExtendable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerExtendable.swift; path = Source/ConstraintMakerExtendable.swift; sourceTree = ""; }; + 87CCF4DB7EFBDC070B92BFC0BC0D2C8C /* ConstraintMakerRelatable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerRelatable.swift; path = Source/ConstraintMakerRelatable.swift; sourceTree = ""; }; + 8B78113584563565B18CD0248D9D0A93 /* ConstraintViewDSL.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintViewDSL.swift; path = Source/ConstraintViewDSL.swift; sourceTree = ""; }; + 8CAC4A98C58F1EBAF09C8E193E73E985 /* ArrayEx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ArrayEx.swift; sourceTree = ""; }; + 8DB80E76EE113421A98CB8EE23DE90D4 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 8EF67744D713AB87F9A34356FCB4C593 /* Pods-LiquidFloatingActionButton_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-LiquidFloatingActionButton_Tests.modulemap"; sourceTree = ""; }; + 9231BEA6AC185B3FCBFD27ACB63CD892 /* LiquidFloatingActionButton.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LiquidFloatingActionButton.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 96F405472686341EFEEAB4A3B7E44B87 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 97232F629F7FC2174E1BE76D76737706 /* Pods-LiquidFloatingActionButton_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-LiquidFloatingActionButton_Tests-dummy.m"; sourceTree = ""; }; + 97F0138AE8EA08984375344610BE7E1E /* ConstraintPriorityTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintPriorityTarget.swift; path = Source/ConstraintPriorityTarget.swift; sourceTree = ""; }; + 9B73872B15E9C56304335676CC951C90 /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LiquidFloatingActionButton_Tests.debug.xcconfig"; sourceTree = ""; }; + 9F675DF8551ECAD72F0C6D96084C6DD4 /* SnapKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SnapKit-dummy.m"; sourceTree = ""; }; + 9F8ECEBD49CA569FC524CB77465180B6 /* ConstraintMakerEditable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerEditable.swift; path = Source/ConstraintMakerEditable.swift; sourceTree = ""; }; + A206D3FB01DAFF8C15F21FB01DFFCE5C /* Pods-LiquidFloatingActionButton_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LiquidFloatingActionButton_Example-frameworks.sh"; sourceTree = ""; }; + A8D96BACF73B0930447045AF580F1F64 /* UIColorEx.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = UIColorEx.swift; sourceTree = ""; }; + AA63D17174A63F13D3434AAB04CB95CD /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-LiquidFloatingActionButton_Tests.release.xcconfig"; sourceTree = ""; }; + AF1BDEFD46348EE8C41DE053AEDBFD1B /* ConstraintOffsetTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintOffsetTarget.swift; path = Source/ConstraintOffsetTarget.swift; sourceTree = ""; }; + B525F7008B3760076D71FE29C0859BDC /* ConstraintLayoutGuide.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintLayoutGuide.swift; path = Source/ConstraintLayoutGuide.swift; sourceTree = ""; }; + B7D4645BD3C0100FB7E1B4A6FDC96E0B /* SnapKit.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = SnapKit.modulemap; sourceTree = ""; }; + B80DBE465AE8ED339A23BA7027E83E9C /* Pods-LiquidFloatingActionButton_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-LiquidFloatingActionButton_Example-acknowledgements.plist"; sourceTree = ""; }; + BAF44DB2E216127955F1E0FEF8213369 /* LiquittableCircle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiquittableCircle.swift; sourceTree = ""; }; + C113B9855019081B47BCB0011553CB7B /* SnapKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SnapKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C4C807430C3A7B9A82E2DDD844C58759 /* ConstraintRelation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintRelation.swift; path = Source/ConstraintRelation.swift; sourceTree = ""; }; + CA274E8C59BA433F4975D535FA594EFA /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + CB70FEBA9EF66CAAA461E6F3F819716B /* ConstraintDescription.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintDescription.swift; path = Source/ConstraintDescription.swift; sourceTree = ""; }; + CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + D2E296184E24EBA83C604214BE7B30AF /* Pods-LiquidFloatingActionButton_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-LiquidFloatingActionButton_Tests-acknowledgements.markdown"; sourceTree = ""; }; + D691EE87C404B7D086624B5801982F43 /* LiquidUtil.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiquidUtil.swift; sourceTree = ""; }; + D8AA583273C076DD4A1EBAFDDA0E89A8 /* ConstraintMakerFinalizable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintMakerFinalizable.swift; path = Source/ConstraintMakerFinalizable.swift; sourceTree = ""; }; + E11295210FBB75091BE22529081A2720 /* ConstraintView+Extensions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = "ConstraintView+Extensions.swift"; path = "Source/ConstraintView+Extensions.swift"; sourceTree = ""; }; + E365F5D85C8B589E45B7CA5165A49929 /* Pods-LiquidFloatingActionButton_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-LiquidFloatingActionButton_Tests-frameworks.sh"; sourceTree = ""; }; + E3B69218901BE4E025D721BBC5CC763A /* SimpleCircleLiquidEngine.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SimpleCircleLiquidEngine.swift; sourceTree = ""; }; + E855200DC6085FF07EBD87301AD370C9 /* ConstraintInsets.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintInsets.swift; path = Source/ConstraintInsets.swift; sourceTree = ""; }; + E885DC7A2C93B352F3CCBAF6C4F30F7F /* SnapKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SnapKit.xcconfig; sourceTree = ""; }; + EBCF77FFA89397B4F19B5CD8A7BDB0A3 /* ConstraintView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintView.swift; path = Source/ConstraintView.swift; sourceTree = ""; }; + F9319AF949935BC0602093E0830E8B10 /* ConstraintConstantTarget.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ConstraintConstantTarget.swift; path = Source/ConstraintConstantTarget.swift; sourceTree = ""; }; + FD568EC2ADE52671E9F40F5B7FE5D901 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-LiquidFloatingActionButton_Tests-umbrella.h"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 614F0F65B18E3F7F4566838C2466DDF4 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + B4BFAED2D1CBD8A95C1B7F00F33D94AA /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 618F63A95B22676C4FA61F86A5AB3136 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9839FC7BD136D98C4786DB72E56B3E5F /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 68F6EC99D6740686C4802F2C69A003BA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + EAC4522ECD9EDE06632C34321215099E /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7DA469E70D4B27EE88D987E16A14CA0B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 6E328286AD7C502EA27A22A48B46157C /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 05703C849B29D1EF8195C8FE0EC6AF9E /* SnapKit */ = { + isa = PBXGroup; + children = ( + 3B90EF7CA55AE01CE50EAF5C3C574CDD /* Constraint.swift */, + 041C7DFD4E40027278BABCCCD69743B2 /* ConstraintAttributes.swift */, + 597734A7EDE6E13F6D1939A7C7373CD1 /* ConstraintConfig.swift */, + F9319AF949935BC0602093E0830E8B10 /* ConstraintConstantTarget.swift */, + CB70FEBA9EF66CAAA461E6F3F819716B /* ConstraintDescription.swift */, + 3FE15693153A62AC79B129BA5FFB7C3D /* ConstraintDSL.swift */, + E855200DC6085FF07EBD87301AD370C9 /* ConstraintInsets.swift */, + 1F2B728DCF7E9F88008827314C2AE823 /* ConstraintInsetTarget.swift */, + 7BEA23F4393572EE30AED50A651CD185 /* ConstraintItem.swift */, + B525F7008B3760076D71FE29C0859BDC /* ConstraintLayoutGuide.swift */, + 446C79107F482F7B2D7E4061657DCA44 /* ConstraintLayoutGuideDSL.swift */, + 212E2771F1CD458D21A0FB3CA1C914F3 /* ConstraintLayoutSupport.swift */, + 6CC7FF80150FA3840AD57BCE994C9FAB /* ConstraintLayoutSupportDSL.swift */, + 3A6167E299BA9862893D87DDBF170B70 /* ConstraintMaker.swift */, + 9F8ECEBD49CA569FC524CB77465180B6 /* ConstraintMakerEditable.swift */, + 8705AFD8FF18225FA8BB0228A69E72AA /* ConstraintMakerExtendable.swift */, + D8AA583273C076DD4A1EBAFDDA0E89A8 /* ConstraintMakerFinalizable.swift */, + 261BC3C65CE6EBBED920977848212F6F /* ConstraintMakerPriortizable.swift */, + 87CCF4DB7EFBDC070B92BFC0BC0D2C8C /* ConstraintMakerRelatable.swift */, + 0729DC38B02A17974FD7A7238FCB1836 /* ConstraintMultiplierTarget.swift */, + AF1BDEFD46348EE8C41DE053AEDBFD1B /* ConstraintOffsetTarget.swift */, + 97F0138AE8EA08984375344610BE7E1E /* ConstraintPriorityTarget.swift */, + 813C2A5263E149C889A2DF40FFDD89BA /* ConstraintRelatableTarget.swift */, + C4C807430C3A7B9A82E2DDD844C58759 /* ConstraintRelation.swift */, + EBCF77FFA89397B4F19B5CD8A7BDB0A3 /* ConstraintView.swift */, + E11295210FBB75091BE22529081A2720 /* ConstraintView+Extensions.swift */, + 8B78113584563565B18CD0248D9D0A93 /* ConstraintViewDSL.swift */, + 737B1700C2C19AD11C2872C1C46EC8D4 /* Debugging.swift */, + 73878F9931EAA78C3DAAF7DDA048218E /* LayoutConstraint.swift */, + 7B4759EEB4180EAF3DA189AAE28199AC /* UILayoutGuide+Extensions.swift */, + 0AB21FA0A2E5B45AB133215CC241236D /* UILayoutSupport+Extensions.swift */, + 458932A7F6390E9028454F0A27A50A13 /* Support Files */, + ); + path = SnapKit; + sourceTree = ""; + }; + 2B483F03EA79C3C9DDEEF7DB0181AFC0 /* Development Pods */ = { + isa = PBXGroup; + children = ( + AE2F18FBC8136A267123CC803D2C583B /* LiquidFloatingActionButton */, + ); + name = "Development Pods"; + sourceTree = ""; + }; + 3DCAB2B7CDE207B3958B6CB957FCC758 /* iOS */ = { + isa = PBXGroup; + children = ( + CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */, + ); + name = iOS; + sourceTree = ""; + }; + 458932A7F6390E9028454F0A27A50A13 /* Support Files */ = { + isa = PBXGroup; + children = ( + CA274E8C59BA433F4975D535FA594EFA /* Info.plist */, + B7D4645BD3C0100FB7E1B4A6FDC96E0B /* SnapKit.modulemap */, + E885DC7A2C93B352F3CCBAF6C4F30F7F /* SnapKit.xcconfig */, + 9F675DF8551ECAD72F0C6D96084C6DD4 /* SnapKit-dummy.m */, + 14426FA5248A96FBC6A531879E24CFA5 /* SnapKit-prefix.pch */, + 50BF4E341DC91F918DC3DD74CA4ADC22 /* SnapKit-umbrella.h */, + ); + name = "Support Files"; + path = "../Target Support Files/SnapKit"; + sourceTree = ""; + }; + 5D0D78B2AEA5286AA98D3198C9653619 /* Products */ = { + isa = PBXGroup; + children = ( + 9231BEA6AC185B3FCBFD27ACB63CD892 /* LiquidFloatingActionButton.framework */, + 1C56ABE3696B5A7C30A744B23F17B774 /* Pods_LiquidFloatingActionButton_Example.framework */, + 70791619EB473F8BD49DC7B26F2768A0 /* Pods_LiquidFloatingActionButton_Tests.framework */, + C113B9855019081B47BCB0011553CB7B /* SnapKit.framework */, + ); + name = Products; + sourceTree = ""; + }; + 7DB346D0F39D3F0E887471402A8071AB = { + isa = PBXGroup; + children = ( + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, + 2B483F03EA79C3C9DDEEF7DB0181AFC0 /* Development Pods */, + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, + FCB3E800ADEFE141C46C6B85E298DF53 /* Pods */, + 5D0D78B2AEA5286AA98D3198C9653619 /* Products */, + F4BDFB4BCFC42C98938E70B06FC40921 /* Targets Support Files */, + ); + sourceTree = ""; + }; + 80DA2BFE26A78E748CCDAD5FE668A48C /* Classes */ = { + isa = PBXGroup; + children = ( + 8CAC4A98C58F1EBAF09C8E193E73E985 /* ArrayEx.swift */, + 369689EDAB3FAFC4E5BB39A93321BBFC /* CGPointEx.swift */, + 6BEAD485B9DC8B38EBDE94D6A091FDB6 /* CGRectEx.swift */, + 83AC495A087C2EAF9CAAC87835CAA680 /* LiquidFloatingActionButton.swift */, + D691EE87C404B7D086624B5801982F43 /* LiquidUtil.swift */, + BAF44DB2E216127955F1E0FEF8213369 /* LiquittableCircle.swift */, + E3B69218901BE4E025D721BBC5CC763A /* SimpleCircleLiquidEngine.swift */, + A8D96BACF73B0930447045AF580F1F64 /* UIColorEx.swift */, + ); + path = Classes; + sourceTree = ""; + }; + AE2F18FBC8136A267123CC803D2C583B /* LiquidFloatingActionButton */ = { + isa = PBXGroup; + children = ( + F49E6C75BCE430958DB1CC52D1914458 /* Pod */, + D401308214B3B3372E1C579337305FF5 /* Support Files */, + ); + name = LiquidFloatingActionButton; + path = ../..; + sourceTree = ""; + }; + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { + isa = PBXGroup; + children = ( + 3DCAB2B7CDE207B3958B6CB957FCC758 /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + D401308214B3B3372E1C579337305FF5 /* Support Files */ = { + isa = PBXGroup; + children = ( + 82BC29399E8CB5DE4082F0C18B2BA3DC /* Info.plist */, + 70722508FEFCEA523F7B8F66D9DDF4F5 /* LiquidFloatingActionButton.modulemap */, + 050B0D0CB0787BEA95A638CEB77D19BC /* LiquidFloatingActionButton.xcconfig */, + 58C7159C06470D006C424DDC8A1A60EB /* LiquidFloatingActionButton-dummy.m */, + 5B850A0AE5BE721D248F258FB455C96E /* LiquidFloatingActionButton-prefix.pch */, + 824CA79EC009B18484863834998CC017 /* LiquidFloatingActionButton-umbrella.h */, + ); + name = "Support Files"; + path = "Example/Pods/Target Support Files/LiquidFloatingActionButton"; + sourceTree = ""; + }; + D6E0DF24DD4243EB00821C0996A56027 /* Pods-LiquidFloatingActionButton_Example */ = { + isa = PBXGroup; + children = ( + 96F405472686341EFEEAB4A3B7E44B87 /* Info.plist */, + 32A2AF2E2F4B1499E450931CC0CAD202 /* Pods-LiquidFloatingActionButton_Example.modulemap */, + 34A4795691704A615AA138BF95042DC5 /* Pods-LiquidFloatingActionButton_Example-acknowledgements.markdown */, + B80DBE465AE8ED339A23BA7027E83E9C /* Pods-LiquidFloatingActionButton_Example-acknowledgements.plist */, + 15F42031AA343001A7E2C8D3D69C9DE2 /* Pods-LiquidFloatingActionButton_Example-dummy.m */, + A206D3FB01DAFF8C15F21FB01DFFCE5C /* Pods-LiquidFloatingActionButton_Example-frameworks.sh */, + 37A83F173235565EDE9A076A15250F07 /* Pods-LiquidFloatingActionButton_Example-resources.sh */, + 1A4A759ED5E8ED2278F9D307ABD11FC5 /* Pods-LiquidFloatingActionButton_Example-umbrella.h */, + 15C6FC5FD383058121E6098617B98C67 /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */, + 4EB840C0FCFA128ECC2A9B932415D6A8 /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */, + ); + name = "Pods-LiquidFloatingActionButton_Example"; + path = "Target Support Files/Pods-LiquidFloatingActionButton_Example"; + sourceTree = ""; + }; + E05C697D61064335D42A08CC9BD13553 /* Pods-LiquidFloatingActionButton_Tests */ = { + isa = PBXGroup; + children = ( + 8DB80E76EE113421A98CB8EE23DE90D4 /* Info.plist */, + 8EF67744D713AB87F9A34356FCB4C593 /* Pods-LiquidFloatingActionButton_Tests.modulemap */, + D2E296184E24EBA83C604214BE7B30AF /* Pods-LiquidFloatingActionButton_Tests-acknowledgements.markdown */, + 63AA079CA68C8594DE2EFCEECD70391B /* Pods-LiquidFloatingActionButton_Tests-acknowledgements.plist */, + 97232F629F7FC2174E1BE76D76737706 /* Pods-LiquidFloatingActionButton_Tests-dummy.m */, + E365F5D85C8B589E45B7CA5165A49929 /* Pods-LiquidFloatingActionButton_Tests-frameworks.sh */, + 7BD5E598A90E9B5D7F5BE26DD5C7B6D6 /* Pods-LiquidFloatingActionButton_Tests-resources.sh */, + FD568EC2ADE52671E9F40F5B7FE5D901 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h */, + 9B73872B15E9C56304335676CC951C90 /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */, + AA63D17174A63F13D3434AAB04CB95CD /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */, + ); + name = "Pods-LiquidFloatingActionButton_Tests"; + path = "Target Support Files/Pods-LiquidFloatingActionButton_Tests"; + sourceTree = ""; + }; + F49E6C75BCE430958DB1CC52D1914458 /* Pod */ = { + isa = PBXGroup; + children = ( + 80DA2BFE26A78E748CCDAD5FE668A48C /* Classes */, + ); + path = Pod; + sourceTree = ""; + }; + F4BDFB4BCFC42C98938E70B06FC40921 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + D6E0DF24DD4243EB00821C0996A56027 /* Pods-LiquidFloatingActionButton_Example */, + E05C697D61064335D42A08CC9BD13553 /* Pods-LiquidFloatingActionButton_Tests */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + FCB3E800ADEFE141C46C6B85E298DF53 /* Pods */ = { + isa = PBXGroup; + children = ( + 05703C849B29D1EF8195C8FE0EC6AF9E /* SnapKit */, + ); + name = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 0B5E5C8758ACA9EBFD5F7E2AA6E8479A /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + EAEFA188CC103359C4AE68AC11F8A844 /* Pods-LiquidFloatingActionButton_Tests-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 260679D455A5673E37DC64A285D035D0 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 7E538EF481F898874DF94F0F8CBC5D2C /* LiquidFloatingActionButton-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9BA657C14DCF4133528472C8E44F67CD /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 40E154929C97169FF28608F168BAA648 /* Pods-LiquidFloatingActionButton_Example-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C5453DEA4A21F19419F29DFDB5DFC00E /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 42358D3ECCE5C55DBB5C84DB7CF83577 /* SnapKit-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 0ED0A08396CBAD914DE4379BCF7E585E /* Pods-LiquidFloatingActionButton_Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4BBD76F68E67BC09C08CB14FFF4EA906 /* Build configuration list for PBXNativeTarget "Pods-LiquidFloatingActionButton_Tests" */; + buildPhases = ( + 66EC92D768733C8D9DBB4FD857FA4B06 /* Sources */, + 7DA469E70D4B27EE88D987E16A14CA0B /* Frameworks */, + 0B5E5C8758ACA9EBFD5F7E2AA6E8479A /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + E6929EACFC78DC2D512F1CACAB42D81A /* PBXTargetDependency */, + ); + name = "Pods-LiquidFloatingActionButton_Tests"; + productName = "Pods-LiquidFloatingActionButton_Tests"; + productReference = 70791619EB473F8BD49DC7B26F2768A0 /* Pods_LiquidFloatingActionButton_Tests.framework */; + productType = "com.apple.product-type.framework"; + }; + 387CBFD0CECEC9E8DA816C353D8AA44B /* SnapKit */ = { + isa = PBXNativeTarget; + buildConfigurationList = 47881458D9A4FBFCF836AE674D3268E5 /* Build configuration list for PBXNativeTarget "SnapKit" */; + buildPhases = ( + 7DEFD17BAEAC401FE05557EEB7477DD1 /* Sources */, + 614F0F65B18E3F7F4566838C2466DDF4 /* Frameworks */, + C5453DEA4A21F19419F29DFDB5DFC00E /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SnapKit; + productName = SnapKit; + productReference = C113B9855019081B47BCB0011553CB7B /* SnapKit.framework */; + productType = "com.apple.product-type.framework"; + }; + 4BCE15B65BE1423E31A139A48360119E /* LiquidFloatingActionButton */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1EC12321BB0A0C22B6A6BE639A9983F3 /* Build configuration list for PBXNativeTarget "LiquidFloatingActionButton" */; + buildPhases = ( + 8749C03AAA14097B43EAADA1E8600D74 /* Sources */, + 68F6EC99D6740686C4802F2C69A003BA /* Frameworks */, + 260679D455A5673E37DC64A285D035D0 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = LiquidFloatingActionButton; + productName = LiquidFloatingActionButton; + productReference = 9231BEA6AC185B3FCBFD27ACB63CD892 /* LiquidFloatingActionButton.framework */; + productType = "com.apple.product-type.framework"; + }; + F7C1C7995CD2F101DD63DDC91BAABAA9 /* Pods-LiquidFloatingActionButton_Example */ = { + isa = PBXNativeTarget; + buildConfigurationList = 974C53BD384AA0C93E683E5246B81AF3 /* Build configuration list for PBXNativeTarget "Pods-LiquidFloatingActionButton_Example" */; + buildPhases = ( + 07AC5B339761C60E4C8735BC1C4F5E84 /* Sources */, + 618F63A95B22676C4FA61F86A5AB3136 /* Frameworks */, + 9BA657C14DCF4133528472C8E44F67CD /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + 94616D549170E6823044A6E5E95F9E86 /* PBXTargetDependency */, + 68B1870B4B682D119A8F8E735AEB1AA7 /* PBXTargetDependency */, + ); + name = "Pods-LiquidFloatingActionButton_Example"; + productName = "Pods-LiquidFloatingActionButton_Example"; + productReference = 1C56ABE3696B5A7C30A744B23F17B774 /* Pods_LiquidFloatingActionButton_Example.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0730; + LastUpgradeCheck = 0700; + }; + buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 7DB346D0F39D3F0E887471402A8071AB; + productRefGroup = 5D0D78B2AEA5286AA98D3198C9653619 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 4BCE15B65BE1423E31A139A48360119E /* LiquidFloatingActionButton */, + F7C1C7995CD2F101DD63DDC91BAABAA9 /* Pods-LiquidFloatingActionButton_Example */, + 0ED0A08396CBAD914DE4379BCF7E585E /* Pods-LiquidFloatingActionButton_Tests */, + 387CBFD0CECEC9E8DA816C353D8AA44B /* SnapKit */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 07AC5B339761C60E4C8735BC1C4F5E84 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 03D37CD9914A34403CA5E7773D42702F /* Pods-LiquidFloatingActionButton_Example-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 66EC92D768733C8D9DBB4FD857FA4B06 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4C19ED4C22D6B9808195702DB3990008 /* Pods-LiquidFloatingActionButton_Tests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7DEFD17BAEAC401FE05557EEB7477DD1 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 558D7CB2FB7F2C0FB7BFA2BCF7217EAA /* Constraint.swift in Sources */, + 382A89C8A9966985B246A0297407D219 /* ConstraintAttributes.swift in Sources */, + DA0B4783CA61D670415069AE79CA8BE1 /* ConstraintConfig.swift in Sources */, + 4CA7418B0FCBC3D61E2A0393244E1BF1 /* ConstraintConstantTarget.swift in Sources */, + DFA8073CB687441FF93505CB02432936 /* ConstraintDescription.swift in Sources */, + 8CAF98A2AD7189203548CDDA44E3B881 /* ConstraintDSL.swift in Sources */, + 9038175ADF2AAA447C93DC65AF74C205 /* ConstraintInsets.swift in Sources */, + A0E68453F95B1D24E992A71FFE5C9FB2 /* ConstraintInsetTarget.swift in Sources */, + 6862F5F9E2EA9D362151AC37E55E276D /* ConstraintItem.swift in Sources */, + FFFBAAED7A3ADC328B1EE0193BF98138 /* ConstraintLayoutGuide.swift in Sources */, + 2A243039ECE25C22417777FADC30ED4B /* ConstraintLayoutGuideDSL.swift in Sources */, + 7A5DCCC054F4E24631ADC1E3C3A70343 /* ConstraintLayoutSupport.swift in Sources */, + 2C83799F09E1AA0516AB5DB90625639B /* ConstraintLayoutSupportDSL.swift in Sources */, + 07C1582DE353E230C116FBBA55215D38 /* ConstraintMaker.swift in Sources */, + 0C905D6D9629186A407EC43C7DEF7E66 /* ConstraintMakerEditable.swift in Sources */, + 455D1C85888DD5A8DEB3D728C891AB98 /* ConstraintMakerExtendable.swift in Sources */, + 882DD384A96A03DE16B115C0AA801A8F /* ConstraintMakerFinalizable.swift in Sources */, + 36F74146B8079D5E7A7D8309B0FF7565 /* ConstraintMakerPriortizable.swift in Sources */, + F3132422696A8E14ED71162F16F900B0 /* ConstraintMakerRelatable.swift in Sources */, + 83D17E8B5FF0BEE6E212CBBB98FCCF34 /* ConstraintMultiplierTarget.swift in Sources */, + 472AE9D6E5530C4A22E40EAE13A2B2A0 /* ConstraintOffsetTarget.swift in Sources */, + 4944CA8FF8D31ABF8BFFEC2E46AE608D /* ConstraintPriorityTarget.swift in Sources */, + F8B99B2534B76BA3A39D5787434BA16E /* ConstraintRelatableTarget.swift in Sources */, + 067A34DB72BA048934A4ACB8F865D499 /* ConstraintRelation.swift in Sources */, + 5A82C9E223C33B72D27F16541E58440A /* ConstraintView+Extensions.swift in Sources */, + E7D4AEB7F3C4AB23FEBA14AD82BB31E5 /* ConstraintView.swift in Sources */, + 8217E7706802DF39D8369FD61A75F997 /* ConstraintViewDSL.swift in Sources */, + 403679D690C81703CB583C940107CFD1 /* Debugging.swift in Sources */, + 156D6C46DF45A7803E62D7F023CD095A /* LayoutConstraint.swift in Sources */, + 56703A4074D4D2B486FDD90CE6BA23D8 /* SnapKit-dummy.m in Sources */, + 4891FC70C29A87882CF967258A163202 /* UILayoutGuide+Extensions.swift in Sources */, + C74E7F220185731302C173547511274A /* UILayoutSupport+Extensions.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 8749C03AAA14097B43EAADA1E8600D74 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3D41203B7B3855EA27D3E987D3EEB224 /* ArrayEx.swift in Sources */, + 903FE6138690401881CED819779A73AC /* CGPointEx.swift in Sources */, + 8D10C418C90EE34F5BA2C22019612D80 /* CGRectEx.swift in Sources */, + 5D47B5F7F9B93DB896CFAEDA03CCB522 /* LiquidFloatingActionButton-dummy.m in Sources */, + B21BD823B02D2B87FD9189869502FCD5 /* LiquidFloatingActionButton.swift in Sources */, + FB4B87C1866264B4C63C18C6D89EC703 /* LiquidUtil.swift in Sources */, + 70A374969C87173198D8D4B6111ECB6E /* LiquittableCircle.swift in Sources */, + CB9BE415254E64439620E55C08536186 /* SimpleCircleLiquidEngine.swift in Sources */, + 222D303213262931EA317A1E0F6BAB38 /* UIColorEx.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 68B1870B4B682D119A8F8E735AEB1AA7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = SnapKit; + target = 387CBFD0CECEC9E8DA816C353D8AA44B /* SnapKit */; + targetProxy = F37E0413588FEF57B185C90A28936627 /* PBXContainerItemProxy */; + }; + 94616D549170E6823044A6E5E95F9E86 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = LiquidFloatingActionButton; + target = 4BCE15B65BE1423E31A139A48360119E /* LiquidFloatingActionButton */; + targetProxy = 5925C73B578B569902B6E043D675652A /* PBXContainerItemProxy */; + }; + E6929EACFC78DC2D512F1CACAB42D81A /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = LiquidFloatingActionButton; + target = 4BCE15B65BE1423E31A139A48360119E /* LiquidFloatingActionButton */; + targetProxy = 10B0CFDA9E4883AADDB4595153399A95 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 025483E7F53CA36007FA46481313F523 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 050B0D0CB0787BEA95A638CEB77D19BC /* LiquidFloatingActionButton.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/LiquidFloatingActionButton/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = LiquidFloatingActionButton; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 0FA9DE0CD0982310817ECEBA011422B8 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9B73872B15E9C56304335676CC951C90 /* Pods-LiquidFloatingActionButton_Tests.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_LiquidFloatingActionButton_Tests; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 667A1433D65D33A53F678A8119C10712 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E885DC7A2C93B352F3CCBAF6C4F30F7F /* SnapKit.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/SnapKit/SnapKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/SnapKit/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/SnapKit/SnapKit.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = SnapKit; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 7E138F85058735C638C74AC05AAA0D4C /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 050B0D0CB0787BEA95A638CEB77D19BC /* LiquidFloatingActionButton.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/LiquidFloatingActionButton/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/LiquidFloatingActionButton/LiquidFloatingActionButton.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = LiquidFloatingActionButton; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 8DED8AD26D381A6ACFF202E5217EC498 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 93F6473DD94BB1230AC8DFC2E327D5EF /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AA63D17174A63F13D3434AAB04CB95CD /* Pods-LiquidFloatingActionButton_Tests.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_LiquidFloatingActionButton_Tests; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 9E1E4E48AF2EAB23169E611BF694090A /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = NO; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + ONLY_ACTIVE_ARCH = YES; + PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + BBFF7F1F84FEEE8AA592D4E5309DCA45 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 15C6FC5FD383058121E6098617B98C67 /* Pods-LiquidFloatingActionButton_Example.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Example/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_LiquidFloatingActionButton_Example; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + CBCB381EEAD92E98E2357B2B04CB2775 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4EB840C0FCFA128ECC2A9B932415D6A8 /* Pods-LiquidFloatingActionButton_Example.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Example/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_LiquidFloatingActionButton_Example; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + F2314F1B6F5DA825DAC338B7F05A9356 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E885DC7A2C93B352F3CCBAF6C4F30F7F /* SnapKit.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/SnapKit/SnapKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/SnapKit/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/SnapKit/SnapKit.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = SnapKit; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1EC12321BB0A0C22B6A6BE639A9983F3 /* Build configuration list for PBXNativeTarget "LiquidFloatingActionButton" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7E138F85058735C638C74AC05AAA0D4C /* Debug */, + 025483E7F53CA36007FA46481313F523 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9E1E4E48AF2EAB23169E611BF694090A /* Debug */, + 8DED8AD26D381A6ACFF202E5217EC498 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 47881458D9A4FBFCF836AE674D3268E5 /* Build configuration list for PBXNativeTarget "SnapKit" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 667A1433D65D33A53F678A8119C10712 /* Debug */, + F2314F1B6F5DA825DAC338B7F05A9356 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4BBD76F68E67BC09C08CB14FFF4EA906 /* Build configuration list for PBXNativeTarget "Pods-LiquidFloatingActionButton_Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 0FA9DE0CD0982310817ECEBA011422B8 /* Debug */, + 93F6473DD94BB1230AC8DFC2E327D5EF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 974C53BD384AA0C93E683E5246B81AF3 /* Build configuration list for PBXNativeTarget "Pods-LiquidFloatingActionButton_Example" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BBFF7F1F84FEEE8AA592D4E5309DCA45 /* Debug */, + CBCB381EEAD92E98E2357B2B04CB2775 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; +} diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-acknowledgements.plist index 5b122f4..46a4029 100644 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-acknowledgements.plist +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example-acknowledgements.plist @@ -34,6 +34,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + License + MIT Title LiquidFloatingActionButton Type @@ -61,6 +63,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + License + MIT Title SnapKit Type diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.debug.xcconfig b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.debug.xcconfig index 1e2713c..2495afb 100644 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.debug.xcconfig @@ -1,3 +1,4 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES EMBEDDED_CONTENT_CONTAINS_SWIFT = YES FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/LiquidFloatingActionButton" "$PODS_CONFIGURATION_BUILD_DIR/SnapKit" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.release.xcconfig b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.release.xcconfig index 1e2713c..2495afb 100644 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Example/Pods-LiquidFloatingActionButton_Example.release.xcconfig @@ -1,3 +1,4 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES EMBEDDED_CONTENT_CONTAINS_SWIFT = YES FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/LiquidFloatingActionButton" "$PODS_CONFIGURATION_BUILD_DIR/SnapKit" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-acknowledgements.plist index 72cd0e4..3725f64 100644 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-acknowledgements.plist +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests-acknowledgements.plist @@ -34,6 +34,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + License + MIT Title LiquidFloatingActionButton Type diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.debug.xcconfig b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.debug.xcconfig index b7ae685..ba35e4e 100644 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.debug.xcconfig +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.debug.xcconfig @@ -1,3 +1,4 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES EMBEDDED_CONTENT_CONTAINS_SWIFT = YES FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/LiquidFloatingActionButton" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 diff --git a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.release.xcconfig b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.release.xcconfig index b7ae685..ba35e4e 100644 --- a/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.release.xcconfig +++ b/Example/Pods/Target Support Files/Pods-LiquidFloatingActionButton_Tests/Pods-LiquidFloatingActionButton_Tests.release.xcconfig @@ -1,3 +1,4 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES EMBEDDED_CONTENT_CONTAINS_SWIFT = YES FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/LiquidFloatingActionButton" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1