jumppage功能
This commit is contained in:
@@ -51,6 +51,7 @@
|
|||||||
794FBB212A934E0A00D57BB8 /* AppUpdateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794FBB202A934E0A00D57BB8 /* AppUpdateView.swift */; };
|
794FBB212A934E0A00D57BB8 /* AppUpdateView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794FBB202A934E0A00D57BB8 /* AppUpdateView.swift */; };
|
||||||
794FBB232A93519800D57BB8 /* AppUpdateTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794FBB222A93519800D57BB8 /* AppUpdateTool.swift */; };
|
794FBB232A93519800D57BB8 /* AppUpdateTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 794FBB222A93519800D57BB8 /* AppUpdateTool.swift */; };
|
||||||
795B949B2BECDB56008F3205 /* NewTraining.swift in Sources */ = {isa = PBXBuildFile; fileRef = 795B949A2BECDB56008F3205 /* NewTraining.swift */; };
|
795B949B2BECDB56008F3205 /* NewTraining.swift in Sources */ = {isa = PBXBuildFile; fileRef = 795B949A2BECDB56008F3205 /* NewTraining.swift */; };
|
||||||
|
797484782DA67515003EEB47 /* NewTraningViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 797484772DA67515003EEB47 /* NewTraningViewModel.swift */; };
|
||||||
79B966382AB0651C00308A8D /* VehicleLogoutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79B966372AB0651C00308A8D /* VehicleLogoutView.swift */; };
|
79B966382AB0651C00308A8D /* VehicleLogoutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79B966372AB0651C00308A8D /* VehicleLogoutView.swift */; };
|
||||||
79CB07CC2AA8465A00154B61 /* UserPermission.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79CB07CB2AA8465A00154B61 /* UserPermission.swift */; };
|
79CB07CC2AA8465A00154B61 /* UserPermission.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79CB07CB2AA8465A00154B61 /* UserPermission.swift */; };
|
||||||
79CECC122A89BD1A00B95D8B /* MessageCenterController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79CECC112A89BD1A00B95D8B /* MessageCenterController.swift */; };
|
79CECC122A89BD1A00B95D8B /* MessageCenterController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79CECC112A89BD1A00B95D8B /* MessageCenterController.swift */; };
|
||||||
@@ -160,6 +161,7 @@
|
|||||||
794FBB202A934E0A00D57BB8 /* AppUpdateView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppUpdateView.swift; sourceTree = "<group>"; };
|
794FBB202A934E0A00D57BB8 /* AppUpdateView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppUpdateView.swift; sourceTree = "<group>"; };
|
||||||
794FBB222A93519800D57BB8 /* AppUpdateTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppUpdateTool.swift; sourceTree = "<group>"; };
|
794FBB222A93519800D57BB8 /* AppUpdateTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppUpdateTool.swift; sourceTree = "<group>"; };
|
||||||
795B949A2BECDB56008F3205 /* NewTraining.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewTraining.swift; sourceTree = "<group>"; };
|
795B949A2BECDB56008F3205 /* NewTraining.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewTraining.swift; sourceTree = "<group>"; };
|
||||||
|
797484772DA67515003EEB47 /* NewTraningViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewTraningViewModel.swift; sourceTree = "<group>"; };
|
||||||
79B966372AB0651C00308A8D /* VehicleLogoutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VehicleLogoutView.swift; sourceTree = "<group>"; };
|
79B966372AB0651C00308A8D /* VehicleLogoutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VehicleLogoutView.swift; sourceTree = "<group>"; };
|
||||||
79CB07CB2AA8465A00154B61 /* UserPermission.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserPermission.swift; sourceTree = "<group>"; };
|
79CB07CB2AA8465A00154B61 /* UserPermission.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserPermission.swift; sourceTree = "<group>"; };
|
||||||
79CECC112A89BD1A00B95D8B /* MessageCenterController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageCenterController.swift; sourceTree = "<group>"; };
|
79CECC112A89BD1A00B95D8B /* MessageCenterController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageCenterController.swift; sourceTree = "<group>"; };
|
||||||
@@ -546,6 +548,7 @@
|
|||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
795B949A2BECDB56008F3205 /* NewTraining.swift */,
|
795B949A2BECDB56008F3205 /* NewTraining.swift */,
|
||||||
|
797484772DA67515003EEB47 /* NewTraningViewModel.swift */,
|
||||||
);
|
);
|
||||||
path = NewTraining;
|
path = NewTraining;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -996,6 +999,7 @@
|
|||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
794FBB232A93519800D57BB8 /* AppUpdateTool.swift in Sources */,
|
794FBB232A93519800D57BB8 /* AppUpdateTool.swift in Sources */,
|
||||||
|
797484782DA67515003EEB47 /* NewTraningViewModel.swift in Sources */,
|
||||||
79CECC242A8B16D400B95D8B /* VehicleMonitoringListController.swift in Sources */,
|
79CECC242A8B16D400B95D8B /* VehicleMonitoringListController.swift in Sources */,
|
||||||
794027842B4E330900EC52D4 /* MapPointAnnotationExtension.swift in Sources */,
|
794027842B4E330900EC52D4 /* MapPointAnnotationExtension.swift in Sources */,
|
||||||
79E434282AA1EFA500AEB16C /* SystemCall.swift in Sources */,
|
79E434282AA1EFA500AEB16C /* SystemCall.swift in Sources */,
|
||||||
|
|||||||
Binary file not shown.
@@ -558,8 +558,8 @@
|
|||||||
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "121"
|
startingLineNumber = "122"
|
||||||
endingLineNumber = "121"
|
endingLineNumber = "122"
|
||||||
landmarkName = "userContentController(_:didReceive:)"
|
landmarkName = "userContentController(_:didReceive:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -574,8 +574,8 @@
|
|||||||
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "144"
|
startingLineNumber = "145"
|
||||||
endingLineNumber = "144"
|
endingLineNumber = "145"
|
||||||
landmarkName = "userContentController(_:didReceive:)"
|
landmarkName = "userContentController(_:didReceive:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -862,8 +862,8 @@
|
|||||||
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "149"
|
startingLineNumber = "150"
|
||||||
endingLineNumber = "149"
|
endingLineNumber = "150"
|
||||||
landmarkName = "webView(_:didFinish:)"
|
landmarkName = "webView(_:didFinish:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -878,8 +878,8 @@
|
|||||||
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "156"
|
startingLineNumber = "157"
|
||||||
endingLineNumber = "156"
|
endingLineNumber = "157"
|
||||||
landmarkName = "webView(_:didFail:withError:)"
|
landmarkName = "webView(_:didFail:withError:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -894,8 +894,8 @@
|
|||||||
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "164"
|
startingLineNumber = "165"
|
||||||
endingLineNumber = "164"
|
endingLineNumber = "165"
|
||||||
landmarkName = "webView(_:didFailProvisionalNavigation:withError:)"
|
landmarkName = "webView(_:didFailProvisionalNavigation:withError:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -910,8 +910,8 @@
|
|||||||
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "163"
|
startingLineNumber = "164"
|
||||||
endingLineNumber = "163"
|
endingLineNumber = "164"
|
||||||
landmarkName = "webView(_:didFailProvisionalNavigation:withError:)"
|
landmarkName = "webView(_:didFailProvisionalNavigation:withError:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -1342,8 +1342,8 @@
|
|||||||
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "123"
|
startingLineNumber = "124"
|
||||||
endingLineNumber = "123"
|
endingLineNumber = "124"
|
||||||
landmarkName = "userContentController(_:didReceive:)"
|
landmarkName = "userContentController(_:didReceive:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -2430,8 +2430,8 @@
|
|||||||
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "150"
|
startingLineNumber = "151"
|
||||||
endingLineNumber = "150"
|
endingLineNumber = "151"
|
||||||
landmarkName = "webView(_:didFinish:)"
|
landmarkName = "webView(_:didFinish:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -2446,8 +2446,8 @@
|
|||||||
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "129"
|
startingLineNumber = "130"
|
||||||
endingLineNumber = "129"
|
endingLineNumber = "130"
|
||||||
landmarkName = "userContentController(_:didReceive:)"
|
landmarkName = "userContentController(_:didReceive:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -2654,8 +2654,8 @@
|
|||||||
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "133"
|
startingLineNumber = "134"
|
||||||
endingLineNumber = "133"
|
endingLineNumber = "134"
|
||||||
landmarkName = "userContentController(_:didReceive:)"
|
landmarkName = "userContentController(_:didReceive:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -2670,8 +2670,8 @@
|
|||||||
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "140"
|
startingLineNumber = "141"
|
||||||
endingLineNumber = "140"
|
endingLineNumber = "141"
|
||||||
landmarkName = "userContentController(_:didReceive:)"
|
landmarkName = "userContentController(_:didReceive:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -2686,38 +2686,6 @@
|
|||||||
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "134"
|
|
||||||
endingLineNumber = "134"
|
|
||||||
landmarkName = "userContentController(_:didReceive:)"
|
|
||||||
landmarkType = "7">
|
|
||||||
</BreakpointContent>
|
|
||||||
</BreakpointProxy>
|
|
||||||
<BreakpointProxy
|
|
||||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
|
||||||
<BreakpointContent
|
|
||||||
uuid = "580DEA31-066C-450E-BFD4-3D15F64D3BE4"
|
|
||||||
shouldBeEnabled = "No"
|
|
||||||
ignoreCount = "0"
|
|
||||||
continueAfterRunningActions = "No"
|
|
||||||
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
|
||||||
startingColumnNumber = "9223372036854775807"
|
|
||||||
endingColumnNumber = "9223372036854775807"
|
|
||||||
startingLineNumber = "137"
|
|
||||||
endingLineNumber = "137"
|
|
||||||
landmarkName = "userContentController(_:didReceive:)"
|
|
||||||
landmarkType = "7">
|
|
||||||
</BreakpointContent>
|
|
||||||
</BreakpointProxy>
|
|
||||||
<BreakpointProxy
|
|
||||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
|
||||||
<BreakpointContent
|
|
||||||
uuid = "076438F3-E0AD-4121-A42E-60D935462CF3"
|
|
||||||
shouldBeEnabled = "No"
|
|
||||||
ignoreCount = "0"
|
|
||||||
continueAfterRunningActions = "No"
|
|
||||||
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
|
||||||
startingColumnNumber = "9223372036854775807"
|
|
||||||
endingColumnNumber = "9223372036854775807"
|
|
||||||
startingLineNumber = "135"
|
startingLineNumber = "135"
|
||||||
endingLineNumber = "135"
|
endingLineNumber = "135"
|
||||||
landmarkName = "userContentController(_:didReceive:)"
|
landmarkName = "userContentController(_:didReceive:)"
|
||||||
@@ -2727,7 +2695,7 @@
|
|||||||
<BreakpointProxy
|
<BreakpointProxy
|
||||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
<BreakpointContent
|
<BreakpointContent
|
||||||
uuid = "BEF0B7DC-72C1-412C-BC57-02CD9FDA1ECB"
|
uuid = "580DEA31-066C-450E-BFD4-3D15F64D3BE4"
|
||||||
shouldBeEnabled = "No"
|
shouldBeEnabled = "No"
|
||||||
ignoreCount = "0"
|
ignoreCount = "0"
|
||||||
continueAfterRunningActions = "No"
|
continueAfterRunningActions = "No"
|
||||||
@@ -2740,6 +2708,38 @@
|
|||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
</BreakpointProxy>
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "076438F3-E0AD-4121-A42E-60D935462CF3"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "136"
|
||||||
|
endingLineNumber = "136"
|
||||||
|
landmarkName = "userContentController(_:didReceive:)"
|
||||||
|
landmarkType = "7">
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "BEF0B7DC-72C1-412C-BC57-02CD9FDA1ECB"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "139"
|
||||||
|
endingLineNumber = "139"
|
||||||
|
landmarkName = "userContentController(_:didReceive:)"
|
||||||
|
landmarkType = "7">
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
<BreakpointProxy
|
<BreakpointProxy
|
||||||
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
<BreakpointContent
|
<BreakpointContent
|
||||||
@@ -4542,8 +4542,8 @@
|
|||||||
filePath = "OrderScheduling/NewTraining/NewTraining.swift"
|
filePath = "OrderScheduling/NewTraining/NewTraining.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "42"
|
startingLineNumber = "77"
|
||||||
endingLineNumber = "42"
|
endingLineNumber = "77"
|
||||||
landmarkName = "init()"
|
landmarkName = "init()"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -4590,8 +4590,8 @@
|
|||||||
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "101"
|
startingLineNumber = "102"
|
||||||
endingLineNumber = "101"
|
endingLineNumber = "102"
|
||||||
landmarkName = "viewWillAppear(_:)"
|
landmarkName = "viewWillAppear(_:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -4686,8 +4686,8 @@
|
|||||||
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "127"
|
startingLineNumber = "128"
|
||||||
endingLineNumber = "127"
|
endingLineNumber = "128"
|
||||||
landmarkName = "userContentController(_:didReceive:)"
|
landmarkName = "userContentController(_:didReceive:)"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
@@ -4980,5 +4980,101 @@
|
|||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
</BreakpointContent>
|
</BreakpointContent>
|
||||||
</BreakpointProxy>
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "27854817-BF0E-4BA3-8C47-8E027F1D5E7B"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderScheduling/NewTraining/NewTraining.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "30"
|
||||||
|
endingLineNumber = "30"
|
||||||
|
landmarkName = "init()"
|
||||||
|
landmarkType = "7">
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "A26D4136-3852-4190-B78C-4BB6CCF89F63"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderScheduling/NewTraining/NewTraining.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "28"
|
||||||
|
endingLineNumber = "28"
|
||||||
|
landmarkName = "init()"
|
||||||
|
landmarkType = "7">
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "28CCC128-744C-491C-A80D-30D801FE8FFC"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderScheduling/NewTraining/NewTraining.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "57"
|
||||||
|
endingLineNumber = "57"
|
||||||
|
landmarkName = "init()"
|
||||||
|
landmarkType = "7">
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "8B831034-B076-4886-AD9A-7F68201B5C8A"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderScheduling/NewTraining/NewTraining.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "55"
|
||||||
|
endingLineNumber = "55"
|
||||||
|
landmarkName = "init()"
|
||||||
|
landmarkType = "7">
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "24D7AAF2-E91A-42B1-A785-8E917CF9E1D7"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "50"
|
||||||
|
endingLineNumber = "50"
|
||||||
|
landmarkName = "viewDidLoad()"
|
||||||
|
landmarkType = "7">
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
|
<BreakpointProxy
|
||||||
|
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
|
||||||
|
<BreakpointContent
|
||||||
|
uuid = "8CABE1DC-BF83-43EA-B057-DAA1B2E179A8"
|
||||||
|
shouldBeEnabled = "No"
|
||||||
|
ignoreCount = "0"
|
||||||
|
continueAfterRunningActions = "No"
|
||||||
|
filePath = "OrderScheduling/Common/WebView/WebViewController.swift"
|
||||||
|
startingColumnNumber = "9223372036854775807"
|
||||||
|
endingColumnNumber = "9223372036854775807"
|
||||||
|
startingLineNumber = "30"
|
||||||
|
endingLineNumber = "30"
|
||||||
|
landmarkName = "init(showNavBar:title:url:screenEdgePanGestureRecognizerEnable:)"
|
||||||
|
landmarkType = "7">
|
||||||
|
</BreakpointContent>
|
||||||
|
</BreakpointProxy>
|
||||||
</Breakpoints>
|
</Breakpoints>
|
||||||
</Bucket>
|
</Bucket>
|
||||||
|
|||||||
@@ -9,6 +9,15 @@ import Foundation
|
|||||||
import DDControlsKit_Private
|
import DDControlsKit_Private
|
||||||
|
|
||||||
open class ZDViewController : DDViewController {
|
open class ZDViewController : DDViewController {
|
||||||
|
public override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
|
||||||
|
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
|
||||||
|
dd_navigationBarBarButtonItemAttributes = [.foregroundColor : UIColor.white]
|
||||||
|
}
|
||||||
|
|
||||||
|
@MainActor required public init?(coder: NSCoder) {
|
||||||
|
fatalError("init(coder:) has not been implemented")
|
||||||
|
}
|
||||||
|
|
||||||
open override func viewDidLoad() {
|
open override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,7 +61,6 @@ class WebViewController : ZDViewController {
|
|||||||
view.addSubview(statusBarBackgroundView)
|
view.addSubview(statusBarBackgroundView)
|
||||||
}else{
|
}else{
|
||||||
title = vcTitle
|
title = vcTitle
|
||||||
dd_navigationBarBackgroundColor = .hex("2C395F")
|
|
||||||
dd_navigationBarTitleTextAttributes = [.foregroundColor : UIColor.white(alpha: 0.7),.font:UIFont.mediumFont(17)]
|
dd_navigationBarTitleTextAttributes = [.foregroundColor : UIColor.white(alpha: 0.7),.font:UIFont.mediumFont(17)]
|
||||||
dd_navigationBarBarButtonItemAttributes = [.foregroundColor : UIColor.white]
|
dd_navigationBarBarButtonItemAttributes = [.foregroundColor : UIColor.white]
|
||||||
}
|
}
|
||||||
@@ -95,6 +94,8 @@ class WebViewController : ZDViewController {
|
|||||||
super.viewWillAppear(animated)
|
super.viewWillAppear(animated)
|
||||||
if showNavBar == false {
|
if showNavBar == false {
|
||||||
navigationController?.navigationBar.isHidden = true
|
navigationController?.navigationBar.isHidden = true
|
||||||
|
}else{
|
||||||
|
dd_navigationBarBackgroundColor = .hex("2C395F")
|
||||||
}
|
}
|
||||||
if screenEdgePanGestureRecognizerEnable == false {
|
if screenEdgePanGestureRecognizerEnable == false {
|
||||||
let nav = navigationController as? DDNavigationController
|
let nav = navigationController as? DDNavigationController
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ open class ApiList {
|
|||||||
|
|
||||||
public let vehicleLogout = "/supplierAppV2/dispatchApp/order/vehicleLogout"
|
public let vehicleLogout = "/supplierAppV2/dispatchApp/order/vehicleLogout"
|
||||||
|
|
||||||
public let jumpNewTrain = "/supplierAppV2/dispatchApp/user/jumpNewTrain"
|
public let jumpNewTrain = "/supplierAppV2/dispatchApp/user/jumpPage"
|
||||||
|
|
||||||
public let giveUpUserOrder = "/supplierAppV2/dispatchApp/order/giveUpUserOrder"
|
public let giveUpUserOrder = "/supplierAppV2/dispatchApp/order/giveUpUserOrder"
|
||||||
|
|
||||||
|
|||||||
@@ -125,8 +125,8 @@ open class RequestList {
|
|||||||
return DDAF.post(urlString: HOST+API.vehicleLogout,parameters: parameters,encoding: JSONParameterEncoder.default,headers: [tokenHeader()],responseType: ResponseModel<String>.self)
|
return DDAF.post(urlString: HOST+API.vehicleLogout,parameters: parameters,encoding: JSONParameterEncoder.default,headers: [tokenHeader()],responseType: ResponseModel<String>.self)
|
||||||
}
|
}
|
||||||
|
|
||||||
func jumpNewTrain() -> Single<ResponseModel<Bool>?> {
|
func jumpNewTrain() -> Single<ResponseModel<JumpPageDataModel>?> {
|
||||||
return DDAF.post(urlString: HOST+API.jumpNewTrain,encoding: JSONParameterEncoder.default,headers: [tokenHeader()],responseType: ResponseModel<Bool>.self)
|
return DDAF.post(urlString: HOST+API.jumpNewTrain,encoding: JSONParameterEncoder.default,headers: [tokenHeader()],responseType: ResponseModel<JumpPageDataModel>.self)
|
||||||
}
|
}
|
||||||
|
|
||||||
func giveUpUserOrder<P:Encodable>(parameters:P) -> Single<ResponseModel<String>?> {
|
func giveUpUserOrder<P:Encodable>(parameters:P) -> Single<ResponseModel<String>?> {
|
||||||
|
|||||||
@@ -361,3 +361,10 @@ public class ConfigByCodeDataModel : Decodable {
|
|||||||
var openType : Int?
|
var openType : Int?
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class JumpPageDataModel : Decodable {
|
||||||
|
var jump : Bool?
|
||||||
|
var title : String?
|
||||||
|
var url : String?
|
||||||
|
var content : String?
|
||||||
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
import RxSwift
|
import RxSwift
|
||||||
import RxRelay
|
import RxRelay
|
||||||
|
import PopupDialog
|
||||||
|
|
||||||
class NewTraining : NSObject {
|
class NewTraining : NSObject {
|
||||||
static let `default` = NewTraining()
|
static let `default` = NewTraining()
|
||||||
@@ -20,20 +21,54 @@ class NewTraining : NSObject {
|
|||||||
super.init()
|
super.init()
|
||||||
|
|
||||||
newTrainingRelay
|
newTrainingRelay
|
||||||
.throttle(RxTimeInterval.seconds(5), latest: false, scheduler: MainScheduler.instance)
|
|
||||||
.flatMapLatest({ _ in
|
.flatMapLatest({ _ in
|
||||||
return RQ.jumpNewTrain()
|
return RQ.jumpNewTrain()
|
||||||
})
|
})
|
||||||
.observe(on: MainScheduler.instance)
|
.observe(on: MainScheduler.instance)
|
||||||
.subscribe(onNext: { response in
|
.subscribe(onNext: {[weak self] response in
|
||||||
if response?.success == true {
|
if response?.success == true {
|
||||||
if response?.data == true {
|
if response?.data?.jump == true {
|
||||||
let tabBarController = UIApplication.shared.dd_keyWindow.rootViewController as? UITabBarController
|
let tabBarController = UIApplication.shared.dd_keyWindow.rootViewController as? UITabBarController
|
||||||
let navController = tabBarController?.selectedViewController as? UINavigationController
|
let navController = tabBarController?.selectedViewController as? UINavigationController
|
||||||
let vc = navController?.topViewController
|
let vc = navController?.topViewController
|
||||||
if vc?.isKind(of: WebViewController.self) == true, (vc as? WebViewController)?.vcTitle == WebViewTool.WebViewNameEnum.newTrainingList.rawValue {
|
if vc?.isKind(of: WebViewController.self) == true, (vc as? WebViewController)?.vcTitle == WebViewTool.WebViewNameEnum.newTrainingList.rawValue {
|
||||||
}else{
|
}else{
|
||||||
WEBTOOL.open(name: .newTrainingList, appending: nil)
|
let popup = PopupDialog(title: nil, message: response?.data?.content,buttonAlignment: .horizontal,transitionStyle: .zoomIn,tapGestureDismissal: false,
|
||||||
|
panGestureDismissal: false,
|
||||||
|
hideStatusBar: false){
|
||||||
|
|
||||||
|
}
|
||||||
|
let vc = popup.viewController as! PopupDialogDefaultViewController
|
||||||
|
vc.titleColor = UIColor(red: 0/255.0, green: 0/255.0, blue: 0/255.0, alpha: 1.0)
|
||||||
|
vc.messageColor = UIColor(red: 0.13, green: 0.19, blue: 0.33, alpha: 1)
|
||||||
|
vc.titleFont = UIFont.boldSystemFont(ofSize: 16)
|
||||||
|
vc.messageFont = UIFont.systemFont(ofSize: 16)
|
||||||
|
|
||||||
|
let buttonOne = CancelButton(title: "取消") {
|
||||||
|
}
|
||||||
|
buttonOne.titleFont = UIFont.boldSystemFont(ofSize: 16)
|
||||||
|
buttonOne.titleColor = UIColor(red: 0/255.0, green: 0/255.0, blue: 0/255.0, alpha: 0.7)
|
||||||
|
|
||||||
|
let buttonTwo = DefaultButton(title: "去查看", dismissOnTap: true) {[weak self] in
|
||||||
|
DispatchQueue.main.async {[weak self] in
|
||||||
|
if let linkUrl = response?.data?.url {
|
||||||
|
let vc = WebViewController.init(showNavBar: true,title: response?.data?.title,url: linkUrl+"?token=\((USER.token)!)")
|
||||||
|
vc.disappearHandler = {[weak self] in
|
||||||
|
self?.newTrainingRelay.accept(nil)
|
||||||
|
}
|
||||||
|
let tabVc2 = UIApplication.shared.dd_keyWindow.rootViewController as? MainTabBarController
|
||||||
|
let nav2 = tabVc2?.selectedViewController as? UINavigationController
|
||||||
|
nav2?.pushViewController(vc, animated: true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
buttonTwo.titleFont = UIFont.boldSystemFont(ofSize: 16)
|
||||||
|
buttonTwo.titleColor = UIColor(red: 29/255.0, green: 100/255.0, blue: 210/255.0, alpha: 0.7)
|
||||||
|
|
||||||
|
popup.addButtons([buttonOne, buttonTwo])
|
||||||
|
let tabVc1 = UIApplication.shared.dd_keyWindow.rootViewController as? MainTabBarController
|
||||||
|
let nav1 = tabVc1?.selectedViewController as? UINavigationController
|
||||||
|
nav1?.present(popup, animated: true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
|
|||||||
17
OrderScheduling/NewTraining/NewTraningViewModel.swift
Normal file
17
OrderScheduling/NewTraining/NewTraningViewModel.swift
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
//
|
||||||
|
// NewTraningViewModel.swift
|
||||||
|
// OrderScheduling
|
||||||
|
//
|
||||||
|
// Created by 中道 on 2025/4/9.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import RxSwift
|
||||||
|
|
||||||
|
class NewTraningViewModel : NSObject {
|
||||||
|
static let `default` = NewTraningViewModel()
|
||||||
|
|
||||||
|
func jumpNewTrain() -> Single<ResponseModel<JumpPageDataModel>?> {
|
||||||
|
return RQ.jumpNewTrain()
|
||||||
|
}
|
||||||
|
}
|
||||||
1
Podfile
1
Podfile
@@ -41,6 +41,7 @@ target 'OrderScheduling' do
|
|||||||
pod 'DDUIGestureRecognizer', '0.1.6'
|
pod 'DDUIGestureRecognizer', '0.1.6'
|
||||||
pod 'TYCyclePagerView'
|
pod 'TYCyclePagerView'
|
||||||
pod 'DDUIKit', :source => 'git@github.com:DDIsFriend/DDSpecs.git'
|
pod 'DDUIKit', :source => 'git@github.com:DDIsFriend/DDSpecs.git'
|
||||||
|
pod 'PopupDialog', '1.1.1'
|
||||||
|
|
||||||
post_install do |installer|
|
post_install do |installer|
|
||||||
installer.pods_project.targets.each do |target|
|
installer.pods_project.targets.each do |target|
|
||||||
|
|||||||
10
Podfile.lock
10
Podfile.lock
@@ -344,6 +344,7 @@ PODS:
|
|||||||
- DDZFPlayerKit_Private/Core (0.1.1)
|
- DDZFPlayerKit_Private/Core (0.1.1)
|
||||||
- DDZFPlayerKit_Private/ijkplayer (0.1.1):
|
- DDZFPlayerKit_Private/ijkplayer (0.1.1):
|
||||||
- DDZFPlayerKit_Private/Core
|
- DDZFPlayerKit_Private/Core
|
||||||
|
- DynamicBlurView (4.1.0)
|
||||||
- ESTabBarController-swift (2.8.0)
|
- ESTabBarController-swift (2.8.0)
|
||||||
- IQKeyboardManagerSwift (6.5.12)
|
- IQKeyboardManagerSwift (6.5.12)
|
||||||
- JCore (4.2.1)
|
- JCore (4.2.1)
|
||||||
@@ -353,6 +354,8 @@ PODS:
|
|||||||
- JXCategoryView (1.6.1)
|
- JXCategoryView (1.6.1)
|
||||||
- Kingfisher (7.9.0)
|
- Kingfisher (7.9.0)
|
||||||
- MJRefresh (3.7.5)
|
- MJRefresh (3.7.5)
|
||||||
|
- PopupDialog (1.1.1):
|
||||||
|
- DynamicBlurView (~> 4.0)
|
||||||
- RxCocoa (6.5.0):
|
- RxCocoa (6.5.0):
|
||||||
- RxRelay (= 6.5.0)
|
- RxRelay (= 6.5.0)
|
||||||
- RxSwift (= 6.5.0)
|
- RxSwift (= 6.5.0)
|
||||||
@@ -397,6 +400,7 @@ DEPENDENCIES:
|
|||||||
- JPushExtension
|
- JPushExtension
|
||||||
- JXCategoryView
|
- JXCategoryView
|
||||||
- MJRefresh
|
- MJRefresh
|
||||||
|
- PopupDialog (= 1.1.1)
|
||||||
- RxCocoa
|
- RxCocoa
|
||||||
- RxRelay
|
- RxRelay
|
||||||
- RxSwift
|
- RxSwift
|
||||||
@@ -436,6 +440,7 @@ SPEC REPOS:
|
|||||||
- AMapTrack-NO-IDFA
|
- AMapTrack-NO-IDFA
|
||||||
- BRPickerView
|
- BRPickerView
|
||||||
- Bugly
|
- Bugly
|
||||||
|
- DynamicBlurView
|
||||||
- ESTabBarController-swift
|
- ESTabBarController-swift
|
||||||
- IQKeyboardManagerSwift
|
- IQKeyboardManagerSwift
|
||||||
- JCore
|
- JCore
|
||||||
@@ -444,6 +449,7 @@ SPEC REPOS:
|
|||||||
- JXCategoryView
|
- JXCategoryView
|
||||||
- Kingfisher
|
- Kingfisher
|
||||||
- MJRefresh
|
- MJRefresh
|
||||||
|
- PopupDialog
|
||||||
- RxCocoa
|
- RxCocoa
|
||||||
- RxRelay
|
- RxRelay
|
||||||
- RxSwift
|
- RxSwift
|
||||||
@@ -481,6 +487,7 @@ SPEC CHECKSUMS:
|
|||||||
DDUtilsSwiftKit_Private: 03575cb3204cd43f3521049263f4b6cae3e64700
|
DDUtilsSwiftKit_Private: 03575cb3204cd43f3521049263f4b6cae3e64700
|
||||||
DDWebImageKit_Private: b905111547e44626773b729bae9030403a9a0c76
|
DDWebImageKit_Private: b905111547e44626773b729bae9030403a9a0c76
|
||||||
DDZFPlayerKit_Private: 5f63a8101e35ffd7b2568f551cbf33b8bedc48ba
|
DDZFPlayerKit_Private: 5f63a8101e35ffd7b2568f551cbf33b8bedc48ba
|
||||||
|
DynamicBlurView: 58e18fae80bb614e34681a4486870e7d257b62e8
|
||||||
ESTabBarController-swift: 05593a6ad64700b03c0eb60ff625916370aa4136
|
ESTabBarController-swift: 05593a6ad64700b03c0eb60ff625916370aa4136
|
||||||
IQKeyboardManagerSwift: 371b08cb39664fb56030f5345c815a4ffc74bbc0
|
IQKeyboardManagerSwift: 371b08cb39664fb56030f5345c815a4ffc74bbc0
|
||||||
JCore: d994e32edb50add8a33135473acca799d882c5fa
|
JCore: d994e32edb50add8a33135473acca799d882c5fa
|
||||||
@@ -489,6 +496,7 @@ SPEC CHECKSUMS:
|
|||||||
JXCategoryView: 7b1ee69ede4843c581688afe84d0f047723262f2
|
JXCategoryView: 7b1ee69ede4843c581688afe84d0f047723262f2
|
||||||
Kingfisher: 59f908b6d2f403b0a3e539debb0eec05cb27002c
|
Kingfisher: 59f908b6d2f403b0a3e539debb0eec05cb27002c
|
||||||
MJRefresh: fdf5e979eb406a0341468932d1dfc8b7f9fce961
|
MJRefresh: fdf5e979eb406a0341468932d1dfc8b7f9fce961
|
||||||
|
PopupDialog: 720c92befd8bc23c13442254945213db5612f149
|
||||||
RxCocoa: 94f817b71c07517321eb4f9ad299112ca8af743b
|
RxCocoa: 94f817b71c07517321eb4f9ad299112ca8af743b
|
||||||
RxRelay: 1de1523e604c72b6c68feadedd1af3b1b4d0ecbd
|
RxRelay: 1de1523e604c72b6c68feadedd1af3b1b4d0ecbd
|
||||||
RxSwift: 5710a9e6b17f3c3d6e40d6e559b9fa1e813b2ef8
|
RxSwift: 5710a9e6b17f3c3d6e40d6e559b9fa1e813b2ef8
|
||||||
@@ -498,6 +506,6 @@ SPEC CHECKSUMS:
|
|||||||
TYCyclePagerView: 2b051dade0615c70784aa34f40c646feeddb7344
|
TYCyclePagerView: 2b051dade0615c70784aa34f40c646feeddb7344
|
||||||
ZLPhotoBrowser: 0563c2bfc7b247b65d023d646012f46cba94101b
|
ZLPhotoBrowser: 0563c2bfc7b247b65d023d646012f46cba94101b
|
||||||
|
|
||||||
PODFILE CHECKSUM: b556c2778151424413f4e539b929f78778fa64d2
|
PODFILE CHECKSUM: 3938d77c229def70dae943fe9feb2acf97f7a699
|
||||||
|
|
||||||
COCOAPODS: 1.15.2
|
COCOAPODS: 1.15.2
|
||||||
|
|||||||
22
Pods/DynamicBlurView/LICENSE
generated
Normal file
22
Pods/DynamicBlurView/LICENSE
generated
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2015 Kyohei Ito
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
162
Pods/DynamicBlurView/README.md
generated
Normal file
162
Pods/DynamicBlurView/README.md
generated
Normal file
@@ -0,0 +1,162 @@
|
|||||||
|
# DynamicBlurView
|
||||||
|
|
||||||
|
[](https://github.com/Carthage/Carthage)
|
||||||
|
[](http://cocoadocs.org/docsets/DynamicBlurView)
|
||||||
|
[](http://cocoadocs.org/docsets/DynamicBlurView)
|
||||||
|
[](http://cocoadocs.org/docsets/DynamicBlurView)
|
||||||
|
|
||||||
|
DynamicBlurView is a dynamic and high performance UIView subclass for Blur.
|
||||||
|
|
||||||
|
#### [Appetize's Demo](https://appetize.io/app/9pvxr367tm0jj2bcy8zavxnqkg?device=iphone6&scale=75&orientation=portrait)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
- Since using the CADisplayLink, it is a high performance.
|
||||||
|
- Can generate a plurality of BlurView.
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- Swift 4.2
|
||||||
|
- iOS 8.0 or later
|
||||||
|
- tvOS 9.0 or later
|
||||||
|
|
||||||
|
## How to Install DynamicBlurView
|
||||||
|
|
||||||
|
#### CocoaPods
|
||||||
|
|
||||||
|
Add the following to your `Podfile`:
|
||||||
|
|
||||||
|
```Ruby
|
||||||
|
pod "DynamicBlurView"
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Carthage
|
||||||
|
|
||||||
|
Add the following to your `Cartfile`:
|
||||||
|
|
||||||
|
```Ruby
|
||||||
|
github "KyoheiG3/DynamicBlurView"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
### Example
|
||||||
|
|
||||||
|
Blur the whole
|
||||||
|
|
||||||
|
```swift
|
||||||
|
let blurView = DynamicBlurView(frame: view.bounds)
|
||||||
|
blurView.blurRadius = 10
|
||||||
|
view.addSubview(blurView)
|
||||||
|
```
|
||||||
|
|
||||||
|
Animation
|
||||||
|
|
||||||
|
```swift
|
||||||
|
UIView.animateWithDuration(0.5) {
|
||||||
|
blurView.blurRadius = 30
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Ratio
|
||||||
|
|
||||||
|
```swift
|
||||||
|
blurView.blurRatio = 0.5
|
||||||
|
```
|
||||||
|
|
||||||
|
### Variable
|
||||||
|
|
||||||
|
```swift
|
||||||
|
var drawsAsynchronously: Bool
|
||||||
|
```
|
||||||
|
|
||||||
|
- When true, it captures displays image and blur it asynchronously. Try to set true if needs more performance.
|
||||||
|
- Asynchronous drawing is possibly crash when needs to process on main thread that drawing with animation for example.
|
||||||
|
- Default is false.
|
||||||
|
|
||||||
|
```Swift
|
||||||
|
var blurRadius: CGFloat
|
||||||
|
```
|
||||||
|
|
||||||
|
- Strength of the blur.
|
||||||
|
|
||||||
|
```Swift
|
||||||
|
var trackingMode: TrackingMode
|
||||||
|
```
|
||||||
|
|
||||||
|
- Mode for update frequency.
|
||||||
|
- `Common` is constantly updated.
|
||||||
|
- `Tracking` is only during scrolling update.
|
||||||
|
- `None` is not update.
|
||||||
|
|
||||||
|
```swift
|
||||||
|
var blendColor: UIColor?
|
||||||
|
```
|
||||||
|
|
||||||
|
- Blend in the blurred image.
|
||||||
|
|
||||||
|
```swift
|
||||||
|
var iterations: Int
|
||||||
|
```
|
||||||
|
|
||||||
|
- Number of times for blur.
|
||||||
|
- Default is 3.
|
||||||
|
|
||||||
|
```swift
|
||||||
|
var isDeepRendering: Bool
|
||||||
|
```
|
||||||
|
|
||||||
|
- If the view want to render beyond the layer, should be true.
|
||||||
|
- Default is false.
|
||||||
|
|
||||||
|
```swift
|
||||||
|
var blurRatio: CGFloat
|
||||||
|
```
|
||||||
|
|
||||||
|
- When none of tracking mode, it can change the radius of blur with the ratio. Should set from 0 to 1.
|
||||||
|
- Default is 1.
|
||||||
|
|
||||||
|
```swift
|
||||||
|
var quality: CaptureQuality
|
||||||
|
```
|
||||||
|
|
||||||
|
- Quality of captured image.
|
||||||
|
- Default is medium.
|
||||||
|
|
||||||
|
### Function
|
||||||
|
|
||||||
|
```swift
|
||||||
|
func refresh()
|
||||||
|
```
|
||||||
|
|
||||||
|
- Remove cache of blur image then get it again.
|
||||||
|
|
||||||
|
```swift
|
||||||
|
func remove()
|
||||||
|
```
|
||||||
|
|
||||||
|
- Remove cache of blur image.
|
||||||
|
|
||||||
|
```swift
|
||||||
|
func animate()
|
||||||
|
```
|
||||||
|
|
||||||
|
- Should use when needs to change layout with animation when is set none of tracking mode.
|
||||||
|
|
||||||
|
## Acknowledgements
|
||||||
|
|
||||||
|
- Inspired by [FXBlurView](https://github.com/nicklockwood/FXBlurView) in [nicklockwood](https://github.com/nicklockwood).
|
||||||
|
|
||||||
|
## Author
|
||||||
|
|
||||||
|
#### Kyohei Ito
|
||||||
|
|
||||||
|
- [GitHub](https://github.com/kyoheig3)
|
||||||
|
- [Twitter](https://twitter.com/kyoheig3)
|
||||||
|
|
||||||
|
Follow me 🎉
|
||||||
|
|
||||||
|
## LICENSE
|
||||||
|
|
||||||
|
Under the MIT license. See LICENSE file for details.
|
||||||
131
Pods/DynamicBlurView/Sources/DynamicBlurView/BlurLayer.swift
generated
Normal file
131
Pods/DynamicBlurView/Sources/DynamicBlurView/BlurLayer.swift
generated
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
//
|
||||||
|
// BlurLayer.swift
|
||||||
|
// DynamicBlurView
|
||||||
|
//
|
||||||
|
// Created by Kyohei Ito on 2017/08/14.
|
||||||
|
// Copyright © 2017年 kyohei_ito. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
private extension CGRect {
|
||||||
|
func rectangle(_ s: CGSize) -> CGRect {
|
||||||
|
let x = origin.x / s.width
|
||||||
|
let y = origin.y / s.height
|
||||||
|
let width = size.width / s.width
|
||||||
|
let height = size.height / s.height
|
||||||
|
return CGRect(x: x, y: y, width: width, height: height)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class BlurLayer: CALayer {
|
||||||
|
private static let blurRadiusKey = "blurRadius"
|
||||||
|
private static let blurLayoutKey = "blurLayout"
|
||||||
|
@NSManaged var blurRadius: CGFloat
|
||||||
|
@NSManaged private var blurLayout: CGFloat
|
||||||
|
|
||||||
|
private var fromBlurRadius: CGFloat?
|
||||||
|
var presentationRadius: CGFloat {
|
||||||
|
if let radius = fromBlurRadius {
|
||||||
|
if let layer = presentation() {
|
||||||
|
return layer.blurRadius
|
||||||
|
} else {
|
||||||
|
return radius
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return blurRadius
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override class func needsDisplay(forKey key: String) -> Bool {
|
||||||
|
if key == blurRadiusKey || key == blurLayoutKey {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return super.needsDisplay(forKey: key)
|
||||||
|
}
|
||||||
|
|
||||||
|
open override func action(forKey event: String) -> CAAction? {
|
||||||
|
if event == BlurLayer.blurRadiusKey {
|
||||||
|
fromBlurRadius = nil
|
||||||
|
|
||||||
|
if let action = super.action(forKey: "opacity") as? CABasicAnimation {
|
||||||
|
fromBlurRadius = (presentation() ?? self).blurRadius
|
||||||
|
|
||||||
|
action.keyPath = event
|
||||||
|
action.fromValue = fromBlurRadius
|
||||||
|
return action
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if event == BlurLayer.blurLayoutKey, let action = super.action(forKey: "opacity") as? CABasicAnimation {
|
||||||
|
action.keyPath = event
|
||||||
|
action.fromValue = 0
|
||||||
|
action.toValue = 1
|
||||||
|
return action
|
||||||
|
}
|
||||||
|
|
||||||
|
return super.action(forKey: event)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
extension BlurLayer {
|
||||||
|
func draw(_ image: UIImage, fixes isFixes: Bool, baseLayer: CALayer?) {
|
||||||
|
contents = image.cgImage
|
||||||
|
contentsScale = image.scale
|
||||||
|
|
||||||
|
if isFixes, let blurLayer = presentation() {
|
||||||
|
contentsRect = blurLayer.convert(blurLayer.bounds, to: baseLayer).rectangle(image.size)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func refresh() {
|
||||||
|
fromBlurRadius = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func animate() {
|
||||||
|
UIView.performWithoutAnimation {
|
||||||
|
blurLayout = 0
|
||||||
|
}
|
||||||
|
blurLayout = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
func render(in context: CGContext, for layer: CALayer) {
|
||||||
|
let layers = hideOverlappingLayers(layer.sublayers)
|
||||||
|
layer.render(in: context)
|
||||||
|
layers.forEach {
|
||||||
|
$0.isHidden = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private func hideOverlappingLayers(_ layers: [CALayer]?) -> [CALayer] {
|
||||||
|
var hiddenLayers: [CALayer] = []
|
||||||
|
guard let layers = layers else {
|
||||||
|
return hiddenLayers
|
||||||
|
}
|
||||||
|
|
||||||
|
for layer in layers.reversed() {
|
||||||
|
if isHang(to: layer) {
|
||||||
|
return hiddenLayers + hideOverlappingLayers(layer.sublayers)
|
||||||
|
}
|
||||||
|
if layer.isHidden == false {
|
||||||
|
layer.isHidden = true
|
||||||
|
hiddenLayers.append(layer)
|
||||||
|
}
|
||||||
|
if layer == self {
|
||||||
|
return hiddenLayers
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return hiddenLayers
|
||||||
|
}
|
||||||
|
|
||||||
|
private func isHang(to target: CALayer) -> Bool {
|
||||||
|
var layer = superlayer
|
||||||
|
while layer != nil {
|
||||||
|
if layer == target {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
layer = layer?.superlayer
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
33
Pods/DynamicBlurView/Sources/DynamicBlurView/CGContext+CGImage.swift
generated
Normal file
33
Pods/DynamicBlurView/Sources/DynamicBlurView/CGContext+CGImage.swift
generated
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
//
|
||||||
|
// CGContext+CGImage.swift
|
||||||
|
// DynamicBlurView
|
||||||
|
//
|
||||||
|
// Created by Kyohei Ito on 2017/08/17.
|
||||||
|
// Copyright © 2017年 kyohei_ito. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
extension CGContext {
|
||||||
|
static func imageContext(with quality: CaptureQuality, rect: CGRect, opaque: Bool) -> CGContext? {
|
||||||
|
UIGraphicsBeginImageContextWithOptions(rect.size, opaque, quality.imageScale)
|
||||||
|
guard let context = UIGraphicsGetCurrentContext() else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
context.translateBy(x: -rect.origin.x, y: -rect.origin.y)
|
||||||
|
context.interpolationQuality = quality.interpolationQuality
|
||||||
|
|
||||||
|
return context
|
||||||
|
}
|
||||||
|
|
||||||
|
func makeImage(with blendColor: UIColor?, blendMode: CGBlendMode, size: CGSize) -> CGImage? {
|
||||||
|
if let color = blendColor {
|
||||||
|
setFillColor(color.cgColor)
|
||||||
|
setBlendMode(blendMode)
|
||||||
|
fill(CGRect(origin: .zero, size: size))
|
||||||
|
}
|
||||||
|
|
||||||
|
return makeImage()
|
||||||
|
}
|
||||||
|
}
|
||||||
66
Pods/DynamicBlurView/Sources/DynamicBlurView/CGImage+Accelerate.swift
generated
Normal file
66
Pods/DynamicBlurView/Sources/DynamicBlurView/CGImage+Accelerate.swift
generated
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
//
|
||||||
|
// CGImage+Accelerate.swift
|
||||||
|
// DynamicBlurView
|
||||||
|
//
|
||||||
|
// Created by Kyohei Ito on 2017/08/17.
|
||||||
|
// Copyright © 2017年 kyohei_ito. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Accelerate
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
extension CGImage {
|
||||||
|
var area: Int {
|
||||||
|
return width * height
|
||||||
|
}
|
||||||
|
|
||||||
|
private var size: CGSize {
|
||||||
|
return CGSize(width: width, height: height)
|
||||||
|
}
|
||||||
|
|
||||||
|
private var bytes: Int {
|
||||||
|
return bytesPerRow * height
|
||||||
|
}
|
||||||
|
|
||||||
|
private func imageBuffer(from data: UnsafeMutableRawPointer!) -> vImage_Buffer {
|
||||||
|
return vImage_Buffer(data: data, height: vImagePixelCount(height), width: vImagePixelCount(width), rowBytes: bytesPerRow)
|
||||||
|
}
|
||||||
|
|
||||||
|
func blurred(with boxSize: UInt32, iterations: Int, blendColor: UIColor?, blendMode: CGBlendMode) -> CGImage? {
|
||||||
|
guard let providerData = dataProvider?.data else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
let inData = malloc(bytes)
|
||||||
|
var inBuffer = imageBuffer(from: inData)
|
||||||
|
|
||||||
|
let outData = malloc(bytes)
|
||||||
|
var outBuffer = imageBuffer(from: outData)
|
||||||
|
|
||||||
|
let tempSize = vImageBoxConvolve_ARGB8888(&inBuffer, &outBuffer, nil, 0, 0, boxSize, boxSize, nil, vImage_Flags(kvImageEdgeExtend + kvImageGetTempBufferSize))
|
||||||
|
let tempData = malloc(tempSize)
|
||||||
|
|
||||||
|
defer {
|
||||||
|
free(inData)
|
||||||
|
free(outData)
|
||||||
|
free(tempData)
|
||||||
|
}
|
||||||
|
|
||||||
|
let source = CFDataGetBytePtr(providerData)
|
||||||
|
memcpy(inBuffer.data, source, bytes)
|
||||||
|
|
||||||
|
for _ in 0..<iterations {
|
||||||
|
vImageBoxConvolve_ARGB8888(&inBuffer, &outBuffer, tempData, 0, 0, boxSize, boxSize, nil, vImage_Flags(kvImageEdgeExtend))
|
||||||
|
|
||||||
|
let temp = inBuffer.data
|
||||||
|
inBuffer.data = outBuffer.data
|
||||||
|
outBuffer.data = temp
|
||||||
|
}
|
||||||
|
|
||||||
|
let context = colorSpace.flatMap {
|
||||||
|
CGContext(data: inBuffer.data, width: width, height: height, bitsPerComponent: bitsPerComponent, bytesPerRow: bytesPerRow, space: $0, bitmapInfo: bitmapInfo.rawValue)
|
||||||
|
}
|
||||||
|
|
||||||
|
return context?.makeImage(with: blendColor, blendMode: blendMode, size: size)
|
||||||
|
}
|
||||||
|
}
|
||||||
34
Pods/DynamicBlurView/Sources/DynamicBlurView/CaptureQuality.swift
generated
Normal file
34
Pods/DynamicBlurView/Sources/DynamicBlurView/CaptureQuality.swift
generated
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
//
|
||||||
|
// CaptureQuality.swift
|
||||||
|
// DynamicBlurView
|
||||||
|
//
|
||||||
|
// Created by Kyohei Ito on 2017/08/17.
|
||||||
|
// Copyright © 2017年 kyohei_ito. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
public enum CaptureQuality {
|
||||||
|
case `default`
|
||||||
|
case low
|
||||||
|
case medium
|
||||||
|
case high
|
||||||
|
|
||||||
|
var imageScale: CGFloat {
|
||||||
|
switch self {
|
||||||
|
case .default, .high:
|
||||||
|
return 0
|
||||||
|
case .low, .medium:
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var interpolationQuality: CGInterpolationQuality {
|
||||||
|
switch self {
|
||||||
|
case .default, .low:
|
||||||
|
return .none
|
||||||
|
case .medium, .high:
|
||||||
|
return .default
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
19
Pods/DynamicBlurView/Sources/DynamicBlurView/DynamicBlurView.h
generated
Normal file
19
Pods/DynamicBlurView/Sources/DynamicBlurView/DynamicBlurView.h
generated
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
//
|
||||||
|
// DynamicBlurView.h
|
||||||
|
// DynamicBlurView
|
||||||
|
//
|
||||||
|
// Created by Kyohei Ito on 2015/04/08.
|
||||||
|
// Copyright (c) 2015年 kyohei_ito. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
//! Project version number for DynamicBlurView.
|
||||||
|
FOUNDATION_EXPORT double DynamicBlurViewVersionNumber;
|
||||||
|
|
||||||
|
//! Project version string for DynamicBlurView.
|
||||||
|
FOUNDATION_EXPORT const unsigned char DynamicBlurViewVersionString[];
|
||||||
|
|
||||||
|
// In this header, you should import all the public headers of your framework using statements like #import <DynamicBlurView/PublicHeader.h>
|
||||||
|
|
||||||
|
|
||||||
195
Pods/DynamicBlurView/Sources/DynamicBlurView/DynamicBlurView.swift
generated
Normal file
195
Pods/DynamicBlurView/Sources/DynamicBlurView/DynamicBlurView.swift
generated
Normal file
@@ -0,0 +1,195 @@
|
|||||||
|
//
|
||||||
|
// DynamicBlurView.swift
|
||||||
|
// DynamicBlurView
|
||||||
|
//
|
||||||
|
// Created by Kyohei Ito on 2015/04/08.
|
||||||
|
// Copyright (c) 2015年 kyohei_ito. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
open class DynamicBlurView: UIView {
|
||||||
|
open override class var layerClass : AnyClass {
|
||||||
|
return BlurLayer.self
|
||||||
|
}
|
||||||
|
|
||||||
|
private var staticImage: UIImage?
|
||||||
|
private var displayLink: CADisplayLink?
|
||||||
|
private var blurLayer: BlurLayer {
|
||||||
|
return layer as! BlurLayer
|
||||||
|
}
|
||||||
|
private let mainQueue = DispatchQueue.main
|
||||||
|
private let globalQueue: DispatchQueue = {
|
||||||
|
if #available (iOS 8.0, *) {
|
||||||
|
return .global(qos: .userInteractive)
|
||||||
|
} else {
|
||||||
|
return .global(priority: .high)
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
private var renderingTarget: UIView? {
|
||||||
|
if isDeepRendering {
|
||||||
|
return window
|
||||||
|
} else {
|
||||||
|
return superview
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// When true, it captures displays image and blur it asynchronously. Try to set true if needs more performance.
|
||||||
|
/// Asynchronous drawing is possibly crash when needs to process on main thread that drawing with animation for example.
|
||||||
|
open var drawsAsynchronously: Bool = false
|
||||||
|
/// Radius of blur.
|
||||||
|
open var blurRadius: CGFloat {
|
||||||
|
set { blurLayer.blurRadius = newValue }
|
||||||
|
get { return blurLayer.blurRadius }
|
||||||
|
}
|
||||||
|
/// Default is none.
|
||||||
|
open var trackingMode: TrackingMode = .none {
|
||||||
|
didSet {
|
||||||
|
if trackingMode != oldValue {
|
||||||
|
linkForDisplay()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// Blend color.
|
||||||
|
open var blendColor: UIColor?
|
||||||
|
/// Blend mode.
|
||||||
|
open var blendMode: CGBlendMode = .plusLighter
|
||||||
|
/// Default is 3.
|
||||||
|
open var iterations: Int = 3
|
||||||
|
/// If the view want to render beyond the layer, should be true.
|
||||||
|
open var isDeepRendering: Bool = false
|
||||||
|
/// When none of tracking mode, it can change the radius of blur with the ratio. Should set from 0 to 1.
|
||||||
|
open var blurRatio: CGFloat = 1 {
|
||||||
|
didSet {
|
||||||
|
if let image = staticImage, oldValue != blurRatio {
|
||||||
|
draw(image, blurRadius: blurRadius, fixes: false, baseLayer: renderingTarget?.layer)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// Quality of captured image.
|
||||||
|
open var quality: CaptureQuality = .medium
|
||||||
|
|
||||||
|
public override init(frame: CGRect) {
|
||||||
|
super.init(frame: frame)
|
||||||
|
isUserInteractionEnabled = false
|
||||||
|
}
|
||||||
|
|
||||||
|
public required init?(coder aDecoder: NSCoder) {
|
||||||
|
super.init(coder: aDecoder)
|
||||||
|
isUserInteractionEnabled = false
|
||||||
|
}
|
||||||
|
|
||||||
|
open override func didMoveToWindow() {
|
||||||
|
super.didMoveToWindow()
|
||||||
|
|
||||||
|
if let view = renderingTarget, window != nil && trackingMode == .none {
|
||||||
|
staticImage = snapshotImage(for: view.layer, conversion: !isDeepRendering)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
open override func didMoveToSuperview() {
|
||||||
|
super.didMoveToSuperview()
|
||||||
|
|
||||||
|
if superview == nil {
|
||||||
|
displayLink?.invalidate()
|
||||||
|
displayLink = nil
|
||||||
|
} else {
|
||||||
|
linkForDisplay()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private func async(on queue: DispatchQueue, actions: @escaping () -> Void) {
|
||||||
|
if drawsAsynchronously {
|
||||||
|
queue.async(execute: actions)
|
||||||
|
} else {
|
||||||
|
actions()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private func sync(on queue: DispatchQueue, actions: () -> Void) {
|
||||||
|
if drawsAsynchronously {
|
||||||
|
queue.sync(execute: actions)
|
||||||
|
} else {
|
||||||
|
actions()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private func draw(_ image: UIImage, blurRadius radius: CGFloat, fixes isFixes: Bool, baseLayer: CALayer?) {
|
||||||
|
async(on: globalQueue) { [weak self] in
|
||||||
|
if let me = self, let blurredImage = image.blurred(radius: radius, iterations: me.iterations, ratio: me.blurRatio, blendColor: me.blendColor, blendMode: me.blendMode) {
|
||||||
|
me.sync(on: me.mainQueue) {
|
||||||
|
me.blurLayer.draw(blurredImage, fixes: isFixes, baseLayer: baseLayer)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private func blurLayerRect(to layer: CALayer, conversion: Bool) -> CGRect {
|
||||||
|
if conversion {
|
||||||
|
let presentationLayer = blurLayer.presentation() ?? blurLayer
|
||||||
|
return presentationLayer.convert(presentationLayer.bounds, to: layer)
|
||||||
|
} else {
|
||||||
|
return layer.bounds
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private func snapshotImage(for layer: CALayer, conversion: Bool) -> UIImage? {
|
||||||
|
let rect = blurLayerRect(to: layer, conversion: conversion)
|
||||||
|
guard let context = CGContext.imageContext(with: quality, rect: rect, opaque: isOpaque) else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
blurLayer.render(in: context, for: layer)
|
||||||
|
|
||||||
|
defer {
|
||||||
|
UIGraphicsEndImageContext()
|
||||||
|
}
|
||||||
|
|
||||||
|
return UIGraphicsGetImageFromCurrentImageContext()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
extension DynamicBlurView {
|
||||||
|
open override func display(_ layer: CALayer) {
|
||||||
|
let blurRadius = blurLayer.presentationRadius
|
||||||
|
let isFixes = isDeepRendering && staticImage != nil
|
||||||
|
if let view = renderingTarget, let image = staticImage ?? snapshotImage(for: view.layer, conversion: !isFixes) {
|
||||||
|
draw(image, blurRadius: blurRadius, fixes: isFixes, baseLayer: view.layer)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
extension DynamicBlurView {
|
||||||
|
private func linkForDisplay() {
|
||||||
|
displayLink?.invalidate()
|
||||||
|
displayLink = UIScreen.main.displayLink(withTarget: self, selector: #selector(DynamicBlurView.displayDidRefresh(_:)))
|
||||||
|
displayLink?.add(to: .main, forMode: RunLoop.Mode(rawValue: trackingMode.description))
|
||||||
|
}
|
||||||
|
|
||||||
|
@objc private func displayDidRefresh(_ displayLink: CADisplayLink) {
|
||||||
|
display(layer)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
extension DynamicBlurView {
|
||||||
|
/// Remove cache of blur image then get it again.
|
||||||
|
open func refresh() {
|
||||||
|
blurLayer.refresh()
|
||||||
|
staticImage = nil
|
||||||
|
blurRatio = 1
|
||||||
|
display(layer)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Remove cache of blur image.
|
||||||
|
open func remove() {
|
||||||
|
blurLayer.refresh()
|
||||||
|
staticImage = nil
|
||||||
|
blurRatio = 1
|
||||||
|
layer.contents = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Should use when needs to change layout with animation when is set none of tracking mode.
|
||||||
|
public func animate() {
|
||||||
|
blurLayer.animate()
|
||||||
|
}
|
||||||
|
}
|
||||||
27
Pods/DynamicBlurView/Sources/DynamicBlurView/TrackingMode.swift
generated
Normal file
27
Pods/DynamicBlurView/Sources/DynamicBlurView/TrackingMode.swift
generated
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
//
|
||||||
|
// TrackingMode.swift
|
||||||
|
// DynamicBlurView
|
||||||
|
//
|
||||||
|
// Created by Kyohei Ito on 2017/08/17.
|
||||||
|
// Copyright © 2017年 kyohei_ito. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
public enum TrackingMode: CustomStringConvertible {
|
||||||
|
case tracking
|
||||||
|
case common
|
||||||
|
case none
|
||||||
|
|
||||||
|
public var description: String {
|
||||||
|
switch self {
|
||||||
|
case .tracking:
|
||||||
|
return RunLoop.Mode.tracking.rawValue
|
||||||
|
case .common:
|
||||||
|
return RunLoop.Mode.common.rawValue
|
||||||
|
case .none:
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
30
Pods/DynamicBlurView/Sources/DynamicBlurView/UIImage+Blur.swift
generated
Normal file
30
Pods/DynamicBlurView/Sources/DynamicBlurView/UIImage+Blur.swift
generated
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
//
|
||||||
|
// UIImage+Blur.swift
|
||||||
|
// DynamicBlurView
|
||||||
|
//
|
||||||
|
// Created by Kyohei Ito on 2017/08/11.
|
||||||
|
// Copyright © 2017年 kyohei_ito. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
public extension UIImage {
|
||||||
|
func blurred(radius: CGFloat, iterations: Int, ratio: CGFloat, blendColor color: UIColor?, blendMode mode: CGBlendMode) -> UIImage? {
|
||||||
|
guard let cgImage = cgImage else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if cgImage.area <= 0 || radius <= 0 {
|
||||||
|
return self
|
||||||
|
}
|
||||||
|
|
||||||
|
var boxSize = UInt32(radius * scale * ratio)
|
||||||
|
if boxSize % 2 == 0 {
|
||||||
|
boxSize += 1
|
||||||
|
}
|
||||||
|
|
||||||
|
return cgImage.blurred(with: boxSize, iterations: iterations, blendColor: color, blendMode: mode).map {
|
||||||
|
UIImage(cgImage: $0, scale: scale, orientation: imageOrientation)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
1
Pods/Headers/Private/DynamicBlurView/DynamicBlurView.h
generated
Symbolic link
1
Pods/Headers/Private/DynamicBlurView/DynamicBlurView.h
generated
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../../DynamicBlurView/Sources/DynamicBlurView/DynamicBlurView.h
|
||||||
1
Pods/Headers/Public/DynamicBlurView/DynamicBlurView-umbrella.h
generated
Symbolic link
1
Pods/Headers/Public/DynamicBlurView/DynamicBlurView-umbrella.h
generated
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../../Target Support Files/DynamicBlurView/DynamicBlurView-umbrella.h
|
||||||
1
Pods/Headers/Public/DynamicBlurView/DynamicBlurView.h
generated
Symbolic link
1
Pods/Headers/Public/DynamicBlurView/DynamicBlurView.h
generated
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../../DynamicBlurView/Sources/DynamicBlurView/DynamicBlurView.h
|
||||||
1
Pods/Headers/Public/DynamicBlurView/DynamicBlurView.modulemap
generated
Symbolic link
1
Pods/Headers/Public/DynamicBlurView/DynamicBlurView.modulemap
generated
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../../Target Support Files/DynamicBlurView/DynamicBlurView.modulemap
|
||||||
1
Pods/Headers/Public/PopupDialog/PopupDialog-umbrella.h
generated
Symbolic link
1
Pods/Headers/Public/PopupDialog/PopupDialog-umbrella.h
generated
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../../Target Support Files/PopupDialog/PopupDialog-umbrella.h
|
||||||
1
Pods/Headers/Public/PopupDialog/PopupDialog.modulemap
generated
Symbolic link
1
Pods/Headers/Public/PopupDialog/PopupDialog.modulemap
generated
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../../Target Support Files/PopupDialog/PopupDialog.modulemap
|
||||||
10
Pods/Manifest.lock
generated
10
Pods/Manifest.lock
generated
@@ -344,6 +344,7 @@ PODS:
|
|||||||
- DDZFPlayerKit_Private/Core (0.1.1)
|
- DDZFPlayerKit_Private/Core (0.1.1)
|
||||||
- DDZFPlayerKit_Private/ijkplayer (0.1.1):
|
- DDZFPlayerKit_Private/ijkplayer (0.1.1):
|
||||||
- DDZFPlayerKit_Private/Core
|
- DDZFPlayerKit_Private/Core
|
||||||
|
- DynamicBlurView (4.1.0)
|
||||||
- ESTabBarController-swift (2.8.0)
|
- ESTabBarController-swift (2.8.0)
|
||||||
- IQKeyboardManagerSwift (6.5.12)
|
- IQKeyboardManagerSwift (6.5.12)
|
||||||
- JCore (4.2.1)
|
- JCore (4.2.1)
|
||||||
@@ -353,6 +354,8 @@ PODS:
|
|||||||
- JXCategoryView (1.6.1)
|
- JXCategoryView (1.6.1)
|
||||||
- Kingfisher (7.9.0)
|
- Kingfisher (7.9.0)
|
||||||
- MJRefresh (3.7.5)
|
- MJRefresh (3.7.5)
|
||||||
|
- PopupDialog (1.1.1):
|
||||||
|
- DynamicBlurView (~> 4.0)
|
||||||
- RxCocoa (6.5.0):
|
- RxCocoa (6.5.0):
|
||||||
- RxRelay (= 6.5.0)
|
- RxRelay (= 6.5.0)
|
||||||
- RxSwift (= 6.5.0)
|
- RxSwift (= 6.5.0)
|
||||||
@@ -397,6 +400,7 @@ DEPENDENCIES:
|
|||||||
- JPushExtension
|
- JPushExtension
|
||||||
- JXCategoryView
|
- JXCategoryView
|
||||||
- MJRefresh
|
- MJRefresh
|
||||||
|
- PopupDialog (= 1.1.1)
|
||||||
- RxCocoa
|
- RxCocoa
|
||||||
- RxRelay
|
- RxRelay
|
||||||
- RxSwift
|
- RxSwift
|
||||||
@@ -436,6 +440,7 @@ SPEC REPOS:
|
|||||||
- AMapTrack-NO-IDFA
|
- AMapTrack-NO-IDFA
|
||||||
- BRPickerView
|
- BRPickerView
|
||||||
- Bugly
|
- Bugly
|
||||||
|
- DynamicBlurView
|
||||||
- ESTabBarController-swift
|
- ESTabBarController-swift
|
||||||
- IQKeyboardManagerSwift
|
- IQKeyboardManagerSwift
|
||||||
- JCore
|
- JCore
|
||||||
@@ -444,6 +449,7 @@ SPEC REPOS:
|
|||||||
- JXCategoryView
|
- JXCategoryView
|
||||||
- Kingfisher
|
- Kingfisher
|
||||||
- MJRefresh
|
- MJRefresh
|
||||||
|
- PopupDialog
|
||||||
- RxCocoa
|
- RxCocoa
|
||||||
- RxRelay
|
- RxRelay
|
||||||
- RxSwift
|
- RxSwift
|
||||||
@@ -481,6 +487,7 @@ SPEC CHECKSUMS:
|
|||||||
DDUtilsSwiftKit_Private: 03575cb3204cd43f3521049263f4b6cae3e64700
|
DDUtilsSwiftKit_Private: 03575cb3204cd43f3521049263f4b6cae3e64700
|
||||||
DDWebImageKit_Private: b905111547e44626773b729bae9030403a9a0c76
|
DDWebImageKit_Private: b905111547e44626773b729bae9030403a9a0c76
|
||||||
DDZFPlayerKit_Private: 5f63a8101e35ffd7b2568f551cbf33b8bedc48ba
|
DDZFPlayerKit_Private: 5f63a8101e35ffd7b2568f551cbf33b8bedc48ba
|
||||||
|
DynamicBlurView: 58e18fae80bb614e34681a4486870e7d257b62e8
|
||||||
ESTabBarController-swift: 05593a6ad64700b03c0eb60ff625916370aa4136
|
ESTabBarController-swift: 05593a6ad64700b03c0eb60ff625916370aa4136
|
||||||
IQKeyboardManagerSwift: 371b08cb39664fb56030f5345c815a4ffc74bbc0
|
IQKeyboardManagerSwift: 371b08cb39664fb56030f5345c815a4ffc74bbc0
|
||||||
JCore: d994e32edb50add8a33135473acca799d882c5fa
|
JCore: d994e32edb50add8a33135473acca799d882c5fa
|
||||||
@@ -489,6 +496,7 @@ SPEC CHECKSUMS:
|
|||||||
JXCategoryView: 7b1ee69ede4843c581688afe84d0f047723262f2
|
JXCategoryView: 7b1ee69ede4843c581688afe84d0f047723262f2
|
||||||
Kingfisher: 59f908b6d2f403b0a3e539debb0eec05cb27002c
|
Kingfisher: 59f908b6d2f403b0a3e539debb0eec05cb27002c
|
||||||
MJRefresh: fdf5e979eb406a0341468932d1dfc8b7f9fce961
|
MJRefresh: fdf5e979eb406a0341468932d1dfc8b7f9fce961
|
||||||
|
PopupDialog: 720c92befd8bc23c13442254945213db5612f149
|
||||||
RxCocoa: 94f817b71c07517321eb4f9ad299112ca8af743b
|
RxCocoa: 94f817b71c07517321eb4f9ad299112ca8af743b
|
||||||
RxRelay: 1de1523e604c72b6c68feadedd1af3b1b4d0ecbd
|
RxRelay: 1de1523e604c72b6c68feadedd1af3b1b4d0ecbd
|
||||||
RxSwift: 5710a9e6b17f3c3d6e40d6e559b9fa1e813b2ef8
|
RxSwift: 5710a9e6b17f3c3d6e40d6e559b9fa1e813b2ef8
|
||||||
@@ -498,6 +506,6 @@ SPEC CHECKSUMS:
|
|||||||
TYCyclePagerView: 2b051dade0615c70784aa34f40c646feeddb7344
|
TYCyclePagerView: 2b051dade0615c70784aa34f40c646feeddb7344
|
||||||
ZLPhotoBrowser: 0563c2bfc7b247b65d023d646012f46cba94101b
|
ZLPhotoBrowser: 0563c2bfc7b247b65d023d646012f46cba94101b
|
||||||
|
|
||||||
PODFILE CHECKSUM: b556c2778151424413f4e539b929f78778fa64d2
|
PODFILE CHECKSUM: 3938d77c229def70dae943fe9feb2acf97f7a699
|
||||||
|
|
||||||
COCOAPODS: 1.15.2
|
COCOAPODS: 1.15.2
|
||||||
|
|||||||
16485
Pods/Pods.xcodeproj/project.pbxproj
generated
16485
Pods/Pods.xcodeproj/project.pbxproj
generated
File diff suppressed because it is too large
Load Diff
58
Pods/Pods.xcodeproj/xcuserdata/zd.xcuserdatad/xcschemes/DynamicBlurView.xcscheme
generated
Normal file
58
Pods/Pods.xcodeproj/xcuserdata/zd.xcuserdatad/xcschemes/DynamicBlurView.xcscheme
generated
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Scheme
|
||||||
|
LastUpgradeVersion = "1500"
|
||||||
|
version = "1.3">
|
||||||
|
<BuildAction
|
||||||
|
parallelizeBuildables = "YES"
|
||||||
|
buildImplicitDependencies = "YES">
|
||||||
|
<BuildActionEntries>
|
||||||
|
<BuildActionEntry
|
||||||
|
buildForTesting = "YES"
|
||||||
|
buildForRunning = "YES"
|
||||||
|
buildForProfiling = "YES"
|
||||||
|
buildForArchiving = "YES"
|
||||||
|
buildForAnalyzing = "YES">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "7D914FA2F03C860D5133BA2DB87C594A"
|
||||||
|
BuildableName = "libDynamicBlurView.a"
|
||||||
|
BlueprintName = "DynamicBlurView"
|
||||||
|
ReferencedContainer = "container:Pods.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildActionEntry>
|
||||||
|
</BuildActionEntries>
|
||||||
|
</BuildAction>
|
||||||
|
<TestAction
|
||||||
|
buildConfiguration = "Debug"
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||||
|
<Testables>
|
||||||
|
</Testables>
|
||||||
|
</TestAction>
|
||||||
|
<LaunchAction
|
||||||
|
buildConfiguration = "Debug"
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
launchStyle = "0"
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
ignoresPersistentStateOnLaunch = "NO"
|
||||||
|
debugDocumentVersioning = "YES"
|
||||||
|
debugServiceExtension = "internal"
|
||||||
|
allowLocationSimulation = "YES">
|
||||||
|
</LaunchAction>
|
||||||
|
<ProfileAction
|
||||||
|
buildConfiguration = "Release"
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||||
|
savedToolIdentifier = ""
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
debugDocumentVersioning = "YES">
|
||||||
|
</ProfileAction>
|
||||||
|
<AnalyzeAction
|
||||||
|
buildConfiguration = "Debug">
|
||||||
|
</AnalyzeAction>
|
||||||
|
<ArchiveAction
|
||||||
|
buildConfiguration = "Release"
|
||||||
|
revealArchiveInOrganizer = "YES">
|
||||||
|
</ArchiveAction>
|
||||||
|
</Scheme>
|
||||||
58
Pods/Pods.xcodeproj/xcuserdata/zd.xcuserdatad/xcschemes/PopupDialog.xcscheme
generated
Normal file
58
Pods/Pods.xcodeproj/xcuserdata/zd.xcuserdatad/xcschemes/PopupDialog.xcscheme
generated
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Scheme
|
||||||
|
LastUpgradeVersion = "1500"
|
||||||
|
version = "1.3">
|
||||||
|
<BuildAction
|
||||||
|
parallelizeBuildables = "YES"
|
||||||
|
buildImplicitDependencies = "YES">
|
||||||
|
<BuildActionEntries>
|
||||||
|
<BuildActionEntry
|
||||||
|
buildForTesting = "YES"
|
||||||
|
buildForRunning = "YES"
|
||||||
|
buildForProfiling = "YES"
|
||||||
|
buildForArchiving = "YES"
|
||||||
|
buildForAnalyzing = "YES">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "6E71929B582F8CD57B3DC1FD6560F047"
|
||||||
|
BuildableName = "libPopupDialog.a"
|
||||||
|
BlueprintName = "PopupDialog"
|
||||||
|
ReferencedContainer = "container:Pods.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildActionEntry>
|
||||||
|
</BuildActionEntries>
|
||||||
|
</BuildAction>
|
||||||
|
<TestAction
|
||||||
|
buildConfiguration = "Debug"
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||||
|
<Testables>
|
||||||
|
</Testables>
|
||||||
|
</TestAction>
|
||||||
|
<LaunchAction
|
||||||
|
buildConfiguration = "Debug"
|
||||||
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
|
launchStyle = "0"
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
ignoresPersistentStateOnLaunch = "NO"
|
||||||
|
debugDocumentVersioning = "YES"
|
||||||
|
debugServiceExtension = "internal"
|
||||||
|
allowLocationSimulation = "YES">
|
||||||
|
</LaunchAction>
|
||||||
|
<ProfileAction
|
||||||
|
buildConfiguration = "Release"
|
||||||
|
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||||
|
savedToolIdentifier = ""
|
||||||
|
useCustomWorkingDirectory = "NO"
|
||||||
|
debugDocumentVersioning = "YES">
|
||||||
|
</ProfileAction>
|
||||||
|
<AnalyzeAction
|
||||||
|
buildConfiguration = "Debug">
|
||||||
|
</AnalyzeAction>
|
||||||
|
<ArchiveAction
|
||||||
|
buildConfiguration = "Release"
|
||||||
|
revealArchiveInOrganizer = "YES">
|
||||||
|
</ArchiveAction>
|
||||||
|
</Scheme>
|
||||||
@@ -149,6 +149,11 @@
|
|||||||
<key>isShown</key>
|
<key>isShown</key>
|
||||||
<false/>
|
<false/>
|
||||||
</dict>
|
</dict>
|
||||||
|
<key>DynamicBlurView.xcscheme</key>
|
||||||
|
<dict>
|
||||||
|
<key>isShown</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
<key>ESTabBarController-swift.xcscheme</key>
|
<key>ESTabBarController-swift.xcscheme</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>isShown</key>
|
<key>isShown</key>
|
||||||
@@ -199,6 +204,11 @@
|
|||||||
<key>isShown</key>
|
<key>isShown</key>
|
||||||
<false/>
|
<false/>
|
||||||
</dict>
|
</dict>
|
||||||
|
<key>PopupDialog.xcscheme</key>
|
||||||
|
<dict>
|
||||||
|
<key>isShown</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
<key>RxCocoa.xcscheme</key>
|
<key>RxCocoa.xcscheme</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>isShown</key>
|
<key>isShown</key>
|
||||||
|
|||||||
20
Pods/PopupDialog/LICENSE
generated
Normal file
20
Pods/PopupDialog/LICENSE
generated
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
Copyright (c) 2016 Orderella Ltd. (http://orderella.co.uk)
|
||||||
|
Author - Martin Wildfeuer (http://www.mwfire.de)
|
||||||
|
|
||||||
|
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.
|
||||||
86
Pods/PopupDialog/PopupDialog/Classes/InteractiveTransition.swift
generated
Normal file
86
Pods/PopupDialog/PopupDialog/Classes/InteractiveTransition.swift
generated
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
//
|
||||||
|
// PopupDialogInteractiveTransition.swift
|
||||||
|
//
|
||||||
|
// Copyright (c) 2016 Orderella Ltd. (http://orderella.co.uk)
|
||||||
|
// Author - Martin Wildfeuer (http://www.mwfire.de)
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
// THE SOFTWARE.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
|
||||||
|
// Handles interactive transition triggered via pan gesture recognizer on dialog
|
||||||
|
final internal class InteractiveTransition: UIPercentDrivenInteractiveTransition {
|
||||||
|
|
||||||
|
// If the interactive transition was started
|
||||||
|
var hasStarted = false
|
||||||
|
|
||||||
|
// If the interactive transition
|
||||||
|
var shouldFinish = false
|
||||||
|
|
||||||
|
// The view controller containing the views
|
||||||
|
// with attached gesture recognizers
|
||||||
|
weak var viewController: UIViewController?
|
||||||
|
|
||||||
|
@objc func handlePan(_ sender: UIPanGestureRecognizer) {
|
||||||
|
|
||||||
|
guard let vc = viewController else { return }
|
||||||
|
|
||||||
|
guard let progress = calculateProgress(sender: sender) else { return }
|
||||||
|
|
||||||
|
switch sender.state {
|
||||||
|
case .began:
|
||||||
|
hasStarted = true
|
||||||
|
vc.dismiss(animated: true, completion: nil)
|
||||||
|
case .changed:
|
||||||
|
shouldFinish = progress > 0.3
|
||||||
|
update(progress)
|
||||||
|
case .cancelled:
|
||||||
|
hasStarted = false
|
||||||
|
cancel()
|
||||||
|
case .ended:
|
||||||
|
hasStarted = false
|
||||||
|
completionSpeed = 0.55
|
||||||
|
shouldFinish ? finish() : cancel()
|
||||||
|
default:
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal extension InteractiveTransition {
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Translates the pan gesture recognizer position to the progress percentage
|
||||||
|
- parameter sender: A UIPanGestureRecognizer
|
||||||
|
- returns: Progress
|
||||||
|
*/
|
||||||
|
func calculateProgress(sender: UIPanGestureRecognizer) -> CGFloat? {
|
||||||
|
guard let vc = viewController else { return nil }
|
||||||
|
|
||||||
|
// http://www.thorntech.com/2016/02/ios-tutorial-close-modal-dragging/
|
||||||
|
let translation = sender.translation(in: vc.view)
|
||||||
|
let verticalMovement = translation.y / vc.view.bounds.height
|
||||||
|
let downwardMovement = fmaxf(Float(verticalMovement), 0.0)
|
||||||
|
let downwardMovementPercent = fminf(downwardMovement, 1.0)
|
||||||
|
let progress = CGFloat(downwardMovementPercent)
|
||||||
|
|
||||||
|
return progress
|
||||||
|
}
|
||||||
|
}
|
||||||
132
Pods/PopupDialog/PopupDialog/Classes/PopupDialog+Keyboard.swift
generated
Normal file
132
Pods/PopupDialog/PopupDialog/Classes/PopupDialog+Keyboard.swift
generated
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
//
|
||||||
|
// PopupDialog+Keyboard.swift
|
||||||
|
//
|
||||||
|
// Copyright (c) 2016 Orderella Ltd. (http://orderella.co.uk)
|
||||||
|
// Author - Martin Wildfeuer (http://www.mwfire.de)
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
// THE SOFTWARE.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
/// This extension is designed to handle dialog positioning
|
||||||
|
/// if a keyboard is displayed while the popup is on top
|
||||||
|
internal extension PopupDialog {
|
||||||
|
|
||||||
|
// MARK: - Keyboard & orientation observers
|
||||||
|
|
||||||
|
/*! Add obserservers for UIKeyboard notifications */
|
||||||
|
func addObservers() {
|
||||||
|
NotificationCenter.default.addObserver(self, selector: #selector(orientationChanged),
|
||||||
|
name: UIDevice.orientationDidChangeNotification,
|
||||||
|
object: nil)
|
||||||
|
|
||||||
|
NotificationCenter.default.addObserver(self,
|
||||||
|
selector: #selector(keyboardWillShow),
|
||||||
|
name: UIResponder.keyboardWillShowNotification,
|
||||||
|
object: nil)
|
||||||
|
|
||||||
|
NotificationCenter.default.addObserver(self,
|
||||||
|
selector: #selector(keyboardWillHide),
|
||||||
|
name: UIResponder.keyboardWillHideNotification,
|
||||||
|
object: nil)
|
||||||
|
|
||||||
|
NotificationCenter.default.addObserver(self,
|
||||||
|
selector: #selector(keyboardWillChangeFrame),
|
||||||
|
name: UIResponder.keyboardWillChangeFrameNotification,
|
||||||
|
object: nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*! Remove observers */
|
||||||
|
func removeObservers() {
|
||||||
|
NotificationCenter.default.removeObserver(self,
|
||||||
|
name: UIDevice.orientationDidChangeNotification,
|
||||||
|
object: nil)
|
||||||
|
|
||||||
|
NotificationCenter.default.removeObserver(self,
|
||||||
|
name: UIResponder.keyboardWillShowNotification,
|
||||||
|
object: nil)
|
||||||
|
|
||||||
|
NotificationCenter.default.removeObserver(self,
|
||||||
|
name: UIResponder.keyboardWillHideNotification,
|
||||||
|
object: nil)
|
||||||
|
|
||||||
|
NotificationCenter.default.removeObserver(self,
|
||||||
|
name: UIResponder.keyboardWillChangeFrameNotification,
|
||||||
|
object: nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - Actions
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Keyboard will show notification listener
|
||||||
|
- parameter notification: NSNotification
|
||||||
|
*/
|
||||||
|
@objc fileprivate func keyboardWillShow(_ notification: Notification) {
|
||||||
|
guard isTopAndVisible else { return }
|
||||||
|
keyboardShown = true
|
||||||
|
centerPopup()
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Keyboard will hide notification listener
|
||||||
|
- parameter notification: NSNotification
|
||||||
|
*/
|
||||||
|
@objc fileprivate func keyboardWillHide(_ notification: Notification) {
|
||||||
|
guard isTopAndVisible else { return }
|
||||||
|
keyboardShown = false
|
||||||
|
centerPopup()
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Keyboard will change frame notification listener
|
||||||
|
- parameter notification: NSNotification
|
||||||
|
*/
|
||||||
|
@objc fileprivate func keyboardWillChangeFrame(_ notification: Notification) {
|
||||||
|
guard let keyboardRect = (notification as NSNotification).userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
keyboardHeight = keyboardRect.cgRectValue.height
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Listen to orientation changes
|
||||||
|
- parameter notification: NSNotification
|
||||||
|
*/
|
||||||
|
@objc fileprivate func orientationChanged(_ notification: Notification) {
|
||||||
|
if keyboardShown { centerPopup() }
|
||||||
|
}
|
||||||
|
|
||||||
|
fileprivate func centerPopup() {
|
||||||
|
|
||||||
|
// Make sure keyboard should reposition on keayboard notifications
|
||||||
|
guard keyboardShiftsView else { return }
|
||||||
|
|
||||||
|
// Make sure a valid keyboard height is available
|
||||||
|
guard let keyboardHeight = keyboardHeight else { return }
|
||||||
|
|
||||||
|
// Calculate new center of shadow background
|
||||||
|
let popupCenter = keyboardShown ? keyboardHeight / -2 : 0
|
||||||
|
|
||||||
|
// Reposition and animate
|
||||||
|
popupContainerView.centerYConstraint?.constant = popupCenter
|
||||||
|
popupContainerView.pv_layoutIfNeededAnimated()
|
||||||
|
}
|
||||||
|
}
|
||||||
342
Pods/PopupDialog/PopupDialog/Classes/PopupDialog.swift
generated
Normal file
342
Pods/PopupDialog/PopupDialog/Classes/PopupDialog.swift
generated
Normal file
@@ -0,0 +1,342 @@
|
|||||||
|
//
|
||||||
|
// PopupDialog.swift
|
||||||
|
//
|
||||||
|
// Copyright (c) 2016 Orderella Ltd. (http://orderella.co.uk)
|
||||||
|
// Author - Martin Wildfeuer (http://www.mwfire.de)
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
// THE SOFTWARE.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
/// Creates a Popup dialog similar to UIAlertController
|
||||||
|
final public class PopupDialog: UIViewController {
|
||||||
|
|
||||||
|
// MARK: Private / Internal
|
||||||
|
|
||||||
|
/// First init flag
|
||||||
|
fileprivate var initialized = false
|
||||||
|
|
||||||
|
/// StatusBar display related
|
||||||
|
fileprivate let hideStatusBar: Bool
|
||||||
|
fileprivate var statusBarShouldBeHidden: Bool = false
|
||||||
|
|
||||||
|
/// Width for iPad displays
|
||||||
|
fileprivate let preferredWidth: CGFloat
|
||||||
|
|
||||||
|
/// The completion handler
|
||||||
|
fileprivate var completion: (() -> Void)?
|
||||||
|
|
||||||
|
/// The custom transition presentation manager
|
||||||
|
fileprivate var presentationManager: PresentationManager!
|
||||||
|
|
||||||
|
/// Interactor class for pan gesture dismissal
|
||||||
|
fileprivate lazy var interactor = InteractiveTransition()
|
||||||
|
|
||||||
|
/// Returns the controllers view
|
||||||
|
internal var popupContainerView: PopupDialogContainerView {
|
||||||
|
return view as! PopupDialogContainerView // swiftlint:disable:this force_cast
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The set of buttons
|
||||||
|
fileprivate var buttons = [PopupDialogButton]()
|
||||||
|
|
||||||
|
/// Whether keyboard has shifted view
|
||||||
|
internal var keyboardShown = false
|
||||||
|
|
||||||
|
/// Keyboard height
|
||||||
|
internal var keyboardHeight: CGFloat?
|
||||||
|
|
||||||
|
// MARK: Public
|
||||||
|
|
||||||
|
/// The content view of the popup dialog
|
||||||
|
public var viewController: UIViewController
|
||||||
|
|
||||||
|
/// Whether or not to shift view for keyboard display
|
||||||
|
public var keyboardShiftsView = true
|
||||||
|
|
||||||
|
// MARK: - Initializers
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Creates a standard popup dialog with title, message and image field
|
||||||
|
|
||||||
|
- parameter title: The dialog title
|
||||||
|
- parameter message: The dialog message
|
||||||
|
- parameter image: The dialog image
|
||||||
|
- parameter buttonAlignment: The dialog button alignment
|
||||||
|
- parameter transitionStyle: The dialog transition style
|
||||||
|
- parameter preferredWidth: The preferred width for iPad screens
|
||||||
|
- parameter tapGestureDismissal: Indicates if dialog can be dismissed via tap gesture
|
||||||
|
- parameter panGestureDismissal: Indicates if dialog can be dismissed via pan gesture
|
||||||
|
- parameter hideStatusBar: Whether to hide the status bar on PopupDialog presentation
|
||||||
|
- parameter completion: Completion block invoked when dialog was dismissed
|
||||||
|
|
||||||
|
- returns: Popup dialog default style
|
||||||
|
*/
|
||||||
|
@objc public convenience init(
|
||||||
|
title: String?,
|
||||||
|
message: String?,
|
||||||
|
image: UIImage? = nil,
|
||||||
|
buttonAlignment: NSLayoutConstraint.Axis = .vertical,
|
||||||
|
transitionStyle: PopupDialogTransitionStyle = .bounceUp,
|
||||||
|
preferredWidth: CGFloat = 340,
|
||||||
|
tapGestureDismissal: Bool = true,
|
||||||
|
panGestureDismissal: Bool = true,
|
||||||
|
hideStatusBar: Bool = false,
|
||||||
|
completion: (() -> Void)? = nil) {
|
||||||
|
|
||||||
|
// Create and configure the standard popup dialog view
|
||||||
|
let viewController = PopupDialogDefaultViewController()
|
||||||
|
viewController.titleText = title
|
||||||
|
viewController.messageText = message
|
||||||
|
viewController.image = image
|
||||||
|
|
||||||
|
// Call designated initializer
|
||||||
|
self.init(viewController: viewController,
|
||||||
|
buttonAlignment: buttonAlignment,
|
||||||
|
transitionStyle: transitionStyle,
|
||||||
|
preferredWidth: preferredWidth,
|
||||||
|
tapGestureDismissal: tapGestureDismissal,
|
||||||
|
panGestureDismissal: panGestureDismissal,
|
||||||
|
hideStatusBar: hideStatusBar,
|
||||||
|
completion: completion)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Creates a popup dialog containing a custom view
|
||||||
|
|
||||||
|
- parameter viewController: A custom view controller to be displayed
|
||||||
|
- parameter buttonAlignment: The dialog button alignment
|
||||||
|
- parameter transitionStyle: The dialog transition style
|
||||||
|
- parameter preferredWidth: The preferred width for iPad screens
|
||||||
|
- parameter tapGestureDismissal: Indicates if dialog can be dismissed via tap gesture
|
||||||
|
- parameter panGestureDismissal: Indicates if dialog can be dismissed via pan gesture
|
||||||
|
- parameter hideStatusBar: Whether to hide the status bar on PopupDialog presentation
|
||||||
|
- parameter completion: Completion block invoked when dialog was dismissed
|
||||||
|
|
||||||
|
- returns: Popup dialog with a custom view controller
|
||||||
|
*/
|
||||||
|
@objc public init(
|
||||||
|
viewController: UIViewController,
|
||||||
|
buttonAlignment: NSLayoutConstraint.Axis = .vertical,
|
||||||
|
transitionStyle: PopupDialogTransitionStyle = .bounceUp,
|
||||||
|
preferredWidth: CGFloat = 340,
|
||||||
|
tapGestureDismissal: Bool = true,
|
||||||
|
panGestureDismissal: Bool = true,
|
||||||
|
hideStatusBar: Bool = false,
|
||||||
|
completion: (() -> Void)? = nil) {
|
||||||
|
|
||||||
|
self.viewController = viewController
|
||||||
|
self.preferredWidth = preferredWidth
|
||||||
|
self.hideStatusBar = hideStatusBar
|
||||||
|
self.completion = completion
|
||||||
|
super.init(nibName: nil, bundle: nil)
|
||||||
|
|
||||||
|
// Init the presentation manager
|
||||||
|
presentationManager = PresentationManager(transitionStyle: transitionStyle, interactor: interactor)
|
||||||
|
|
||||||
|
// Assign the interactor view controller
|
||||||
|
interactor.viewController = self
|
||||||
|
|
||||||
|
// Define presentation styles
|
||||||
|
transitioningDelegate = presentationManager
|
||||||
|
modalPresentationStyle = .custom
|
||||||
|
|
||||||
|
// StatusBar setup
|
||||||
|
modalPresentationCapturesStatusBarAppearance = true
|
||||||
|
|
||||||
|
// Add our custom view to the container
|
||||||
|
addChild(viewController)
|
||||||
|
popupContainerView.stackView.insertArrangedSubview(viewController.view, at: 0)
|
||||||
|
popupContainerView.buttonStackView.axis = buttonAlignment
|
||||||
|
viewController.didMove(toParent: self)
|
||||||
|
|
||||||
|
// Allow for dialog dismissal on background tap
|
||||||
|
if tapGestureDismissal {
|
||||||
|
let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTap))
|
||||||
|
tapRecognizer.cancelsTouchesInView = false
|
||||||
|
popupContainerView.addGestureRecognizer(tapRecognizer)
|
||||||
|
}
|
||||||
|
// Allow for dialog dismissal on dialog pan gesture
|
||||||
|
if panGestureDismissal {
|
||||||
|
let panRecognizer = UIPanGestureRecognizer(target: interactor, action: #selector(InteractiveTransition.handlePan))
|
||||||
|
panRecognizer.cancelsTouchesInView = false
|
||||||
|
popupContainerView.stackView.addGestureRecognizer(panRecognizer)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Init with coder not implemented
|
||||||
|
required public init?(coder aDecoder: NSCoder) {
|
||||||
|
fatalError("init(coder:) has not been implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - View life cycle
|
||||||
|
|
||||||
|
/// Replaces controller view with popup view
|
||||||
|
public override func loadView() {
|
||||||
|
view = PopupDialogContainerView(frame: UIScreen.main.bounds, preferredWidth: preferredWidth)
|
||||||
|
}
|
||||||
|
|
||||||
|
public override func viewWillAppear(_ animated: Bool) {
|
||||||
|
super.viewWillAppear(animated)
|
||||||
|
addObservers()
|
||||||
|
|
||||||
|
guard !initialized else { return }
|
||||||
|
appendButtons()
|
||||||
|
initialized = true
|
||||||
|
}
|
||||||
|
|
||||||
|
public override func viewDidAppear(_ animated: Bool) {
|
||||||
|
super.viewDidAppear(animated)
|
||||||
|
|
||||||
|
statusBarShouldBeHidden = hideStatusBar
|
||||||
|
UIView.animate(withDuration: 0.15) {
|
||||||
|
self.setNeedsStatusBarAppearanceUpdate()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override func viewWillDisappear(_ animated: Bool) {
|
||||||
|
super.viewWillDisappear(animated)
|
||||||
|
removeObservers()
|
||||||
|
}
|
||||||
|
|
||||||
|
deinit {
|
||||||
|
completion?()
|
||||||
|
completion = nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - Dismissal related
|
||||||
|
|
||||||
|
@objc fileprivate func handleTap(_ sender: UITapGestureRecognizer) {
|
||||||
|
|
||||||
|
// Make sure it's not a tap on the dialog but the background
|
||||||
|
let point = sender.location(in: popupContainerView.stackView)
|
||||||
|
guard !popupContainerView.stackView.point(inside: point, with: nil) else { return }
|
||||||
|
dismiss()
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Dismisses the popup dialog
|
||||||
|
*/
|
||||||
|
@objc public func dismiss(_ completion: (() -> Void)? = nil) {
|
||||||
|
self.dismiss(animated: true) {
|
||||||
|
completion?()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - Button related
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Appends the buttons added to the popup dialog
|
||||||
|
to the placeholder stack view
|
||||||
|
*/
|
||||||
|
fileprivate func appendButtons() {
|
||||||
|
|
||||||
|
// Add action to buttons
|
||||||
|
let stackView = popupContainerView.stackView
|
||||||
|
let buttonStackView = popupContainerView.buttonStackView
|
||||||
|
if buttons.isEmpty {
|
||||||
|
stackView.removeArrangedSubview(popupContainerView.buttonStackView)
|
||||||
|
}
|
||||||
|
|
||||||
|
for (index, button) in buttons.enumerated() {
|
||||||
|
button.needsLeftSeparator = buttonStackView.axis == .horizontal && index > 0
|
||||||
|
buttonStackView.addArrangedSubview(button)
|
||||||
|
button.addTarget(self, action: #selector(buttonTapped(_:)), for: .touchUpInside)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Adds a single PopupDialogButton to the Popup dialog
|
||||||
|
- parameter button: A PopupDialogButton instance
|
||||||
|
*/
|
||||||
|
@objc public func addButton(_ button: PopupDialogButton) {
|
||||||
|
buttons.append(button)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Adds an array of PopupDialogButtons to the Popup dialog
|
||||||
|
- parameter buttons: A list of PopupDialogButton instances
|
||||||
|
*/
|
||||||
|
@objc public func addButtons(_ buttons: [PopupDialogButton]) {
|
||||||
|
self.buttons += buttons
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Calls the action closure of the button instance tapped
|
||||||
|
@objc fileprivate func buttonTapped(_ button: PopupDialogButton) {
|
||||||
|
if button.dismissOnTap {
|
||||||
|
dismiss({ button.buttonAction?() })
|
||||||
|
} else {
|
||||||
|
button.buttonAction?()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Simulates a button tap for the given index
|
||||||
|
Makes testing a breeze
|
||||||
|
- parameter index: The index of the button to tap
|
||||||
|
*/
|
||||||
|
public func tapButtonWithIndex(_ index: Int) {
|
||||||
|
let button = buttons[index]
|
||||||
|
button.buttonAction?()
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - StatusBar display related
|
||||||
|
|
||||||
|
public override var prefersStatusBarHidden: Bool {
|
||||||
|
return statusBarShouldBeHidden
|
||||||
|
}
|
||||||
|
|
||||||
|
public override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation {
|
||||||
|
return .slide
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - View proxy values
|
||||||
|
|
||||||
|
extension PopupDialog {
|
||||||
|
|
||||||
|
/// The button alignment of the alert dialog
|
||||||
|
@objc public var buttonAlignment: NSLayoutConstraint.Axis {
|
||||||
|
get {
|
||||||
|
return popupContainerView.buttonStackView.axis
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
popupContainerView.buttonStackView .axis = newValue
|
||||||
|
popupContainerView.pv_layoutIfNeededAnimated()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The transition style
|
||||||
|
@objc public var transitionStyle: PopupDialogTransitionStyle {
|
||||||
|
get { return presentationManager.transitionStyle }
|
||||||
|
set { presentationManager.transitionStyle = newValue }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - Shake
|
||||||
|
|
||||||
|
extension PopupDialog {
|
||||||
|
|
||||||
|
/// Performs a shake animation on the dialog
|
||||||
|
@objc public func shake() {
|
||||||
|
popupContainerView.pv_shake()
|
||||||
|
}
|
||||||
|
}
|
||||||
166
Pods/PopupDialog/PopupDialog/Classes/PopupDialogButton.swift
generated
Normal file
166
Pods/PopupDialog/PopupDialog/Classes/PopupDialogButton.swift
generated
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
//
|
||||||
|
// PopupDialogButton.swift
|
||||||
|
//
|
||||||
|
// Copyright (c) 2016 Orderella Ltd. (http://orderella.co.uk)
|
||||||
|
// Author - Martin Wildfeuer (http://www.mwfire.de)
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
// THE SOFTWARE.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
/// Represents the default button for the popup dialog
|
||||||
|
open class PopupDialogButton: UIButton {
|
||||||
|
|
||||||
|
public typealias PopupDialogButtonAction = () -> Void
|
||||||
|
|
||||||
|
// MARK: Public
|
||||||
|
|
||||||
|
/// The font and size of the button title
|
||||||
|
@objc open dynamic var titleFont: UIFont? {
|
||||||
|
get { return titleLabel?.font }
|
||||||
|
set { titleLabel?.font = newValue }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The height of the button
|
||||||
|
@objc open dynamic var buttonHeight: Int
|
||||||
|
|
||||||
|
/// The title color of the button
|
||||||
|
@objc open dynamic var titleColor: UIColor? {
|
||||||
|
get { return self.titleColor(for: UIControl.State()) }
|
||||||
|
set { setTitleColor(newValue, for: UIControl.State()) }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The background color of the button
|
||||||
|
@objc open dynamic var buttonColor: UIColor? {
|
||||||
|
get { return backgroundColor }
|
||||||
|
set { backgroundColor = newValue }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The separator color of this button
|
||||||
|
@objc open dynamic var separatorColor: UIColor? {
|
||||||
|
get { return separator.backgroundColor }
|
||||||
|
set {
|
||||||
|
separator.backgroundColor = newValue
|
||||||
|
leftSeparator.backgroundColor = newValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Default appearance of the button
|
||||||
|
open var defaultTitleFont = UIFont.systemFont(ofSize: 14)
|
||||||
|
open var defaultTitleColor = UIColor(red: 0.25, green: 0.53, blue: 0.91, alpha: 1)
|
||||||
|
open var defaultButtonColor = UIColor.clear
|
||||||
|
open var defaultSeparatorColor = UIColor(white: 0.9, alpha: 1)
|
||||||
|
|
||||||
|
/// Whether button should dismiss popup when tapped
|
||||||
|
@objc open var dismissOnTap = true
|
||||||
|
|
||||||
|
/// The action called when the button is tapped
|
||||||
|
open fileprivate(set) var buttonAction: PopupDialogButtonAction?
|
||||||
|
|
||||||
|
// MARK: Private
|
||||||
|
|
||||||
|
fileprivate lazy var separator: UIView = {
|
||||||
|
let line = UIView(frame: .zero)
|
||||||
|
line.translatesAutoresizingMaskIntoConstraints = false
|
||||||
|
return line
|
||||||
|
}()
|
||||||
|
|
||||||
|
fileprivate lazy var leftSeparator: UIView = {
|
||||||
|
let line = UIView(frame: .zero)
|
||||||
|
line.translatesAutoresizingMaskIntoConstraints = false
|
||||||
|
line.alpha = 0
|
||||||
|
return line
|
||||||
|
}()
|
||||||
|
|
||||||
|
// MARK: Internal
|
||||||
|
|
||||||
|
internal var needsLeftSeparator: Bool = false {
|
||||||
|
didSet {
|
||||||
|
leftSeparator.alpha = needsLeftSeparator ? 1.0 : 0.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: Initializers
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Creates a button that can be added to the popup dialog
|
||||||
|
|
||||||
|
- parameter title: The button title
|
||||||
|
- parameter dismisssOnTap: Whether a tap automatically dismisses the dialog
|
||||||
|
- parameter action: The action closure
|
||||||
|
|
||||||
|
- returns: PopupDialogButton
|
||||||
|
*/
|
||||||
|
@objc public init(title: String, height: Int = 45, dismissOnTap: Bool = true, action: PopupDialogButtonAction?) {
|
||||||
|
|
||||||
|
// Assign the button height
|
||||||
|
buttonHeight = height
|
||||||
|
|
||||||
|
// Assign the button action
|
||||||
|
buttonAction = action
|
||||||
|
|
||||||
|
super.init(frame: .zero)
|
||||||
|
|
||||||
|
// Set the button title
|
||||||
|
setTitle(title, for: UIControl.State())
|
||||||
|
|
||||||
|
self.dismissOnTap = dismissOnTap
|
||||||
|
|
||||||
|
// Setup the views
|
||||||
|
setupView()
|
||||||
|
}
|
||||||
|
|
||||||
|
required public init?(coder aDecoder: NSCoder) {
|
||||||
|
fatalError("init(coder:) has not been implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: View setup
|
||||||
|
|
||||||
|
open func setupView() {
|
||||||
|
|
||||||
|
// Default appearance
|
||||||
|
setTitleColor(defaultTitleColor, for: UIControl.State())
|
||||||
|
titleLabel?.font = defaultTitleFont
|
||||||
|
backgroundColor = defaultButtonColor
|
||||||
|
separator.backgroundColor = defaultSeparatorColor
|
||||||
|
leftSeparator.backgroundColor = defaultSeparatorColor
|
||||||
|
|
||||||
|
// Add and layout views
|
||||||
|
addSubview(separator)
|
||||||
|
addSubview(leftSeparator)
|
||||||
|
|
||||||
|
let views = ["separator": separator, "leftSeparator": leftSeparator, "button": self]
|
||||||
|
let metrics = ["buttonHeight": buttonHeight]
|
||||||
|
var constraints = [NSLayoutConstraint]()
|
||||||
|
constraints += NSLayoutConstraint.constraints(withVisualFormat: "V:[button(buttonHeight)]", options: [], metrics: metrics, views: views)
|
||||||
|
constraints += NSLayoutConstraint.constraints(withVisualFormat: "H:|[separator]|", options: [], metrics: nil, views: views)
|
||||||
|
constraints += NSLayoutConstraint.constraints(withVisualFormat: "V:|[separator(1)]", options: [], metrics: nil, views: views)
|
||||||
|
constraints += NSLayoutConstraint.constraints(withVisualFormat: "H:|[leftSeparator(1)]", options: [], metrics: nil, views: views)
|
||||||
|
constraints += NSLayoutConstraint.constraints(withVisualFormat: "V:|[leftSeparator]|", options: [], metrics: nil, views: views)
|
||||||
|
NSLayoutConstraint.activate(constraints)
|
||||||
|
}
|
||||||
|
|
||||||
|
open override var isHighlighted: Bool {
|
||||||
|
didSet {
|
||||||
|
isHighlighted ? pv_fade(.out, 0.5) : pv_fade(.in, 1.0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
197
Pods/PopupDialog/PopupDialog/Classes/PopupDialogContainerView.swift
generated
Normal file
197
Pods/PopupDialog/PopupDialog/Classes/PopupDialogContainerView.swift
generated
Normal file
@@ -0,0 +1,197 @@
|
|||||||
|
//
|
||||||
|
// PopupDialogContainerView.swift
|
||||||
|
// Pods
|
||||||
|
//
|
||||||
|
// Copyright (c) 2016 Orderella Ltd. (http://orderella.co.uk)
|
||||||
|
// Author - Martin Wildfeuer (http://www.mwfire.de)
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
// THE SOFTWARE.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
/// The main view of the popup dialog
|
||||||
|
final public class PopupDialogContainerView: UIView {
|
||||||
|
|
||||||
|
// MARK: - Appearance
|
||||||
|
|
||||||
|
/// The background color of the popup dialog
|
||||||
|
override public dynamic var backgroundColor: UIColor? {
|
||||||
|
get { return container.backgroundColor }
|
||||||
|
set { container.backgroundColor = newValue }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The corner radius of the popup view
|
||||||
|
@objc public dynamic var cornerRadius: Float {
|
||||||
|
get { return Float(shadowContainer.layer.cornerRadius) }
|
||||||
|
set {
|
||||||
|
let radius = CGFloat(newValue)
|
||||||
|
shadowContainer.layer.cornerRadius = radius
|
||||||
|
container.layer.cornerRadius = radius
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: Shadow related
|
||||||
|
|
||||||
|
/// Enable / disable shadow rendering of the container
|
||||||
|
@objc public dynamic var shadowEnabled: Bool {
|
||||||
|
get { return shadowContainer.layer.shadowRadius > 0 }
|
||||||
|
set { shadowContainer.layer.shadowRadius = newValue ? shadowRadius : 0 }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Color of the container shadow
|
||||||
|
@objc public dynamic var shadowColor: UIColor? {
|
||||||
|
get {
|
||||||
|
guard let color = shadowContainer.layer.shadowColor else {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return UIColor(cgColor: color)
|
||||||
|
}
|
||||||
|
set { shadowContainer.layer.shadowColor = newValue?.cgColor }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Radius of the container shadow
|
||||||
|
@objc public dynamic var shadowRadius: CGFloat {
|
||||||
|
get { return shadowContainer.layer.shadowRadius }
|
||||||
|
set { shadowContainer.layer.shadowRadius = newValue }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Opacity of the the container shadow
|
||||||
|
@objc public dynamic var shadowOpacity: Float {
|
||||||
|
get { return shadowContainer.layer.shadowOpacity }
|
||||||
|
set { shadowContainer.layer.shadowOpacity = newValue }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Offset of the the container shadow
|
||||||
|
@objc public dynamic var shadowOffset: CGSize {
|
||||||
|
get { return shadowContainer.layer.shadowOffset }
|
||||||
|
set { shadowContainer.layer.shadowOffset = newValue }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Path of the the container shadow
|
||||||
|
@objc public dynamic var shadowPath: CGPath? {
|
||||||
|
get { return shadowContainer.layer.shadowPath}
|
||||||
|
set { shadowContainer.layer.shadowPath = newValue }
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - Views
|
||||||
|
|
||||||
|
/// The shadow container is the basic view of the PopupDialog
|
||||||
|
/// As it does not clip subviews, a shadow can be applied to it
|
||||||
|
internal lazy var shadowContainer: UIView = {
|
||||||
|
let shadowContainer = UIView(frame: .zero)
|
||||||
|
shadowContainer.translatesAutoresizingMaskIntoConstraints = false
|
||||||
|
shadowContainer.backgroundColor = UIColor.clear
|
||||||
|
shadowContainer.layer.shadowColor = UIColor.black.cgColor
|
||||||
|
shadowContainer.layer.shadowRadius = 5
|
||||||
|
shadowContainer.layer.shadowOpacity = 0.4
|
||||||
|
shadowContainer.layer.shadowOffset = CGSize(width: 0, height: 0)
|
||||||
|
shadowContainer.layer.cornerRadius = 4
|
||||||
|
return shadowContainer
|
||||||
|
}()
|
||||||
|
|
||||||
|
/// The container view is a child of shadowContainer and contains
|
||||||
|
/// all other views. It clips to bounds so cornerRadius can be set
|
||||||
|
internal lazy var container: UIView = {
|
||||||
|
let container = UIView(frame: .zero)
|
||||||
|
container.translatesAutoresizingMaskIntoConstraints = false
|
||||||
|
container.backgroundColor = UIColor.white
|
||||||
|
container.clipsToBounds = true
|
||||||
|
container.layer.cornerRadius = 4
|
||||||
|
return container
|
||||||
|
}()
|
||||||
|
|
||||||
|
// The container stack view for buttons
|
||||||
|
internal lazy var buttonStackView: UIStackView = {
|
||||||
|
let buttonStackView = UIStackView()
|
||||||
|
buttonStackView.translatesAutoresizingMaskIntoConstraints = false
|
||||||
|
buttonStackView.distribution = .fillEqually
|
||||||
|
buttonStackView.spacing = 0
|
||||||
|
return buttonStackView
|
||||||
|
}()
|
||||||
|
|
||||||
|
// The main stack view, containing all relevant views
|
||||||
|
internal lazy var stackView: UIStackView = {
|
||||||
|
let stackView = UIStackView(arrangedSubviews: [self.buttonStackView])
|
||||||
|
stackView.translatesAutoresizingMaskIntoConstraints = false
|
||||||
|
stackView.axis = .vertical
|
||||||
|
stackView.spacing = 0
|
||||||
|
return stackView
|
||||||
|
}()
|
||||||
|
|
||||||
|
// The preferred width for iPads
|
||||||
|
fileprivate let preferredWidth: CGFloat
|
||||||
|
|
||||||
|
// MARK: - Constraints
|
||||||
|
|
||||||
|
/// The center constraint of the shadow container
|
||||||
|
internal var centerYConstraint: NSLayoutConstraint?
|
||||||
|
|
||||||
|
// MARK: - Initializers
|
||||||
|
|
||||||
|
internal init(frame: CGRect, preferredWidth: CGFloat) {
|
||||||
|
self.preferredWidth = preferredWidth
|
||||||
|
super.init(frame: frame)
|
||||||
|
setupViews()
|
||||||
|
}
|
||||||
|
|
||||||
|
required public init?(coder aDecoder: NSCoder) {
|
||||||
|
fatalError("init(coder:) has not been implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - View setup
|
||||||
|
|
||||||
|
internal func setupViews() {
|
||||||
|
|
||||||
|
// Add views
|
||||||
|
addSubview(shadowContainer)
|
||||||
|
shadowContainer.addSubview(container)
|
||||||
|
container.addSubview(stackView)
|
||||||
|
|
||||||
|
// Layout views
|
||||||
|
let views = ["shadowContainer": shadowContainer, "container": container, "stackView": stackView]
|
||||||
|
var constraints = [NSLayoutConstraint]()
|
||||||
|
|
||||||
|
// Shadow container constraints
|
||||||
|
if UIDevice.current.userInterfaceIdiom == UIUserInterfaceIdiom.pad {
|
||||||
|
let metrics = ["preferredWidth": preferredWidth]
|
||||||
|
constraints += NSLayoutConstraint.constraints(withVisualFormat: "H:|-(>=40)-[shadowContainer(==preferredWidth@900)]-(>=40)-|", options: [], metrics: metrics, views: views)
|
||||||
|
} else {
|
||||||
|
constraints += NSLayoutConstraint.constraints(withVisualFormat: "H:|-(>=10,==20@900)-[shadowContainer(<=340,>=300)]-(>=10,==20@900)-|", options: [], metrics: nil, views: views)
|
||||||
|
}
|
||||||
|
constraints += [NSLayoutConstraint(item: shadowContainer, attribute: .centerX, relatedBy: .equal, toItem: self, attribute: .centerX, multiplier: 1, constant: 0)]
|
||||||
|
centerYConstraint = NSLayoutConstraint(item: shadowContainer, attribute: .centerY, relatedBy: .equal, toItem: self, attribute: .centerY, multiplier: 1, constant: 0)
|
||||||
|
|
||||||
|
if let centerYConstraint = centerYConstraint {
|
||||||
|
constraints.append(centerYConstraint)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Container constraints
|
||||||
|
constraints += NSLayoutConstraint.constraints(withVisualFormat: "H:|[container]|", options: [], metrics: nil, views: views)
|
||||||
|
constraints += NSLayoutConstraint.constraints(withVisualFormat: "V:|[container]|", options: [], metrics: nil, views: views)
|
||||||
|
|
||||||
|
// Main stack view constraints
|
||||||
|
constraints += NSLayoutConstraint.constraints(withVisualFormat: "H:|[stackView]|", options: [], metrics: nil, views: views)
|
||||||
|
constraints += NSLayoutConstraint.constraints(withVisualFormat: "V:|[stackView]|", options: [], metrics: nil, views: views)
|
||||||
|
|
||||||
|
// Activate constraints
|
||||||
|
NSLayoutConstraint.activate(constraints)
|
||||||
|
}
|
||||||
|
}
|
||||||
54
Pods/PopupDialog/PopupDialog/Classes/PopupDialogDefaultButtons.swift
generated
Normal file
54
Pods/PopupDialog/PopupDialog/Classes/PopupDialogDefaultButtons.swift
generated
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
//
|
||||||
|
// PopupDialogDefaultButtons.swift
|
||||||
|
//
|
||||||
|
// Copyright (c) 2016 Orderella Ltd. (http://orderella.co.uk)
|
||||||
|
// Author - Martin Wildfeuer (http://www.mwfire.de)
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
// THE SOFTWARE.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
// MARK: Default button
|
||||||
|
|
||||||
|
/// Represents the default button for the popup dialog
|
||||||
|
public final class DefaultButton: PopupDialogButton {}
|
||||||
|
|
||||||
|
// MARK: Cancel button
|
||||||
|
|
||||||
|
/// Represents a cancel button for the popup dialog
|
||||||
|
public final class CancelButton: PopupDialogButton {
|
||||||
|
|
||||||
|
override public func setupView() {
|
||||||
|
defaultTitleColor = UIColor.lightGray
|
||||||
|
super.setupView()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: destructive button
|
||||||
|
|
||||||
|
/// Represents a destructive button for the popup dialog
|
||||||
|
public final class DestructiveButton: PopupDialogButton {
|
||||||
|
|
||||||
|
override public func setupView() {
|
||||||
|
defaultTitleColor = UIColor.red
|
||||||
|
super.setupView()
|
||||||
|
}
|
||||||
|
}
|
||||||
148
Pods/PopupDialog/PopupDialog/Classes/PopupDialogDefaultView.swift
generated
Normal file
148
Pods/PopupDialog/PopupDialog/Classes/PopupDialogDefaultView.swift
generated
Normal file
@@ -0,0 +1,148 @@
|
|||||||
|
//
|
||||||
|
// PopupDialogView.swift
|
||||||
|
//
|
||||||
|
// Copyright (c) 2016 Orderella Ltd. (http://orderella.co.uk)
|
||||||
|
// Author - Martin Wildfeuer (http://www.mwfire.de)
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
// THE SOFTWARE.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
/// The main view of the popup dialog
|
||||||
|
final public class PopupDialogDefaultView: UIView {
|
||||||
|
|
||||||
|
// MARK: - Appearance
|
||||||
|
|
||||||
|
/// The font and size of the title label
|
||||||
|
@objc public dynamic var titleFont: UIFont {
|
||||||
|
get { return titleLabel.font }
|
||||||
|
set { titleLabel.font = newValue }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The color of the title label
|
||||||
|
@objc public dynamic var titleColor: UIColor? {
|
||||||
|
get { return titleLabel.textColor }
|
||||||
|
set { titleLabel.textColor = newValue }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The text alignment of the title label
|
||||||
|
@objc public dynamic var titleTextAlignment: NSTextAlignment {
|
||||||
|
get { return titleLabel.textAlignment }
|
||||||
|
set { titleLabel.textAlignment = newValue }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The font and size of the body label
|
||||||
|
@objc public dynamic var messageFont: UIFont {
|
||||||
|
get { return messageLabel.font }
|
||||||
|
set { messageLabel.font = newValue }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The color of the message label
|
||||||
|
@objc public dynamic var messageColor: UIColor? {
|
||||||
|
get { return messageLabel.textColor }
|
||||||
|
set { messageLabel.textColor = newValue}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The text alignment of the message label
|
||||||
|
@objc public dynamic var messageTextAlignment: NSTextAlignment {
|
||||||
|
get { return messageLabel.textAlignment }
|
||||||
|
set { messageLabel.textAlignment = newValue }
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - Views
|
||||||
|
|
||||||
|
/// The view that will contain the image, if set
|
||||||
|
internal lazy var imageView: UIImageView = {
|
||||||
|
let imageView = UIImageView(frame: .zero)
|
||||||
|
imageView.translatesAutoresizingMaskIntoConstraints = false
|
||||||
|
imageView.contentMode = .scaleAspectFill
|
||||||
|
imageView.clipsToBounds = true
|
||||||
|
return imageView
|
||||||
|
}()
|
||||||
|
|
||||||
|
/// The title label of the dialog
|
||||||
|
internal lazy var titleLabel: UILabel = {
|
||||||
|
let titleLabel = UILabel(frame: .zero)
|
||||||
|
titleLabel.translatesAutoresizingMaskIntoConstraints = false
|
||||||
|
titleLabel.numberOfLines = 0
|
||||||
|
titleLabel.textAlignment = .center
|
||||||
|
titleLabel.textColor = UIColor(white: 0.4, alpha: 1)
|
||||||
|
titleLabel.font = .boldSystemFont(ofSize: 14)
|
||||||
|
return titleLabel
|
||||||
|
}()
|
||||||
|
|
||||||
|
/// The message label of the dialog
|
||||||
|
internal lazy var messageLabel: UILabel = {
|
||||||
|
let messageLabel = UILabel(frame: .zero)
|
||||||
|
messageLabel.translatesAutoresizingMaskIntoConstraints = false
|
||||||
|
messageLabel.numberOfLines = 0
|
||||||
|
messageLabel.textAlignment = .center
|
||||||
|
messageLabel.textColor = UIColor(white: 0.6, alpha: 1)
|
||||||
|
messageLabel.font = .systemFont(ofSize: 14)
|
||||||
|
return messageLabel
|
||||||
|
}()
|
||||||
|
|
||||||
|
/// The height constraint of the image view, 0 by default
|
||||||
|
internal var imageHeightConstraint: NSLayoutConstraint?
|
||||||
|
|
||||||
|
// MARK: - Initializers
|
||||||
|
|
||||||
|
internal override init(frame: CGRect) {
|
||||||
|
super.init(frame: frame)
|
||||||
|
setupViews()
|
||||||
|
}
|
||||||
|
|
||||||
|
required public init?(coder aDecoder: NSCoder) {
|
||||||
|
fatalError("init(coder:) has not been implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - View setup
|
||||||
|
|
||||||
|
internal func setupViews() {
|
||||||
|
|
||||||
|
// Self setup
|
||||||
|
translatesAutoresizingMaskIntoConstraints = false
|
||||||
|
|
||||||
|
// Add views
|
||||||
|
addSubview(imageView)
|
||||||
|
addSubview(titleLabel)
|
||||||
|
addSubview(messageLabel)
|
||||||
|
|
||||||
|
// Layout views
|
||||||
|
let views = ["imageView": imageView, "titleLabel": titleLabel, "messageLabel": messageLabel] as [String: Any]
|
||||||
|
var constraints = [NSLayoutConstraint]()
|
||||||
|
|
||||||
|
constraints += NSLayoutConstraint.constraints(withVisualFormat: "H:|[imageView]|", options: [], metrics: nil, views: views)
|
||||||
|
constraints += NSLayoutConstraint.constraints(withVisualFormat: "H:|-(==20@900)-[titleLabel]-(==20@900)-|", options: [], metrics: nil, views: views)
|
||||||
|
constraints += NSLayoutConstraint.constraints(withVisualFormat: "H:|-(==20@900)-[messageLabel]-(==20@900)-|", options: [], metrics: nil, views: views)
|
||||||
|
constraints += NSLayoutConstraint.constraints(withVisualFormat: "V:|[imageView]-(==30@900)-[titleLabel]-(==8@900)-[messageLabel]-(==30@900)-|", options: [], metrics: nil, views: views)
|
||||||
|
|
||||||
|
// ImageView height constraint
|
||||||
|
imageHeightConstraint = NSLayoutConstraint(item: imageView, attribute: .height, relatedBy: .equal, toItem: imageView, attribute: .height, multiplier: 0, constant: 0)
|
||||||
|
|
||||||
|
if let imageHeightConstraint = imageHeightConstraint {
|
||||||
|
constraints.append(imageHeightConstraint)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Activate constraints
|
||||||
|
NSLayoutConstraint.activate(constraints)
|
||||||
|
}
|
||||||
|
}
|
||||||
133
Pods/PopupDialog/PopupDialog/Classes/PopupDialogDefaultViewController.swift
generated
Normal file
133
Pods/PopupDialog/PopupDialog/Classes/PopupDialogDefaultViewController.swift
generated
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
//
|
||||||
|
// PopupDialogDefaultViewController.swift
|
||||||
|
//
|
||||||
|
// Copyright (c) 2016 Orderella Ltd. (http://orderella.co.uk)
|
||||||
|
// Author - Martin Wildfeuer (http://www.mwfire.de)
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
// THE SOFTWARE.
|
||||||
|
//
|
||||||
|
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
final public class PopupDialogDefaultViewController: UIViewController {
|
||||||
|
|
||||||
|
public var standardView: PopupDialogDefaultView {
|
||||||
|
return view as! PopupDialogDefaultView // swiftlint:disable:this force_cast
|
||||||
|
}
|
||||||
|
|
||||||
|
override public func loadView() {
|
||||||
|
super.loadView()
|
||||||
|
view = PopupDialogDefaultView(frame: .zero)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public extension PopupDialogDefaultViewController {
|
||||||
|
|
||||||
|
// MARK: - Setter / Getter
|
||||||
|
|
||||||
|
// MARK: Content
|
||||||
|
|
||||||
|
/// The dialog image
|
||||||
|
var image: UIImage? {
|
||||||
|
get { return standardView.imageView.image }
|
||||||
|
set {
|
||||||
|
standardView.imageView.image = newValue
|
||||||
|
standardView.imageHeightConstraint?.constant = standardView.imageView.pv_heightForImageView()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The title text of the dialog
|
||||||
|
var titleText: String? {
|
||||||
|
get { return standardView.titleLabel.text }
|
||||||
|
set {
|
||||||
|
standardView.titleLabel.text = newValue
|
||||||
|
standardView.pv_layoutIfNeededAnimated()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The message text of the dialog
|
||||||
|
var messageText: String? {
|
||||||
|
get { return standardView.messageLabel.text }
|
||||||
|
set {
|
||||||
|
standardView.messageLabel.text = newValue
|
||||||
|
standardView.pv_layoutIfNeededAnimated()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: Appearance
|
||||||
|
|
||||||
|
/// The font and size of the title label
|
||||||
|
@objc dynamic var titleFont: UIFont {
|
||||||
|
get { return standardView.titleFont }
|
||||||
|
set {
|
||||||
|
standardView.titleFont = newValue
|
||||||
|
standardView.pv_layoutIfNeededAnimated()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The color of the title label
|
||||||
|
@objc dynamic var titleColor: UIColor? {
|
||||||
|
get { return standardView.titleLabel.textColor }
|
||||||
|
set {
|
||||||
|
standardView.titleColor = newValue
|
||||||
|
standardView.pv_layoutIfNeededAnimated()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The text alignment of the title label
|
||||||
|
@objc dynamic var titleTextAlignment: NSTextAlignment {
|
||||||
|
get { return standardView.titleTextAlignment }
|
||||||
|
set {
|
||||||
|
standardView.titleTextAlignment = newValue
|
||||||
|
standardView.pv_layoutIfNeededAnimated()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The font and size of the body label
|
||||||
|
@objc dynamic var messageFont: UIFont {
|
||||||
|
get { return standardView.messageFont}
|
||||||
|
set {
|
||||||
|
standardView.messageFont = newValue
|
||||||
|
standardView.pv_layoutIfNeededAnimated()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The color of the message label
|
||||||
|
@objc dynamic var messageColor: UIColor? {
|
||||||
|
get { return standardView.messageColor }
|
||||||
|
set {
|
||||||
|
standardView.messageColor = newValue
|
||||||
|
standardView.pv_layoutIfNeededAnimated()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The text alignment of the message label
|
||||||
|
@objc dynamic var messageTextAlignment: NSTextAlignment {
|
||||||
|
get { return standardView.messageTextAlignment }
|
||||||
|
set {
|
||||||
|
standardView.messageTextAlignment = newValue
|
||||||
|
standardView.pv_layoutIfNeededAnimated()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override func viewDidLayoutSubviews() {
|
||||||
|
super.viewDidLayoutSubviews()
|
||||||
|
standardView.imageHeightConstraint?.constant = standardView.imageView.pv_heightForImageView()
|
||||||
|
}
|
||||||
|
}
|
||||||
128
Pods/PopupDialog/PopupDialog/Classes/PopupDialogOverlayView.swift
generated
Normal file
128
Pods/PopupDialog/PopupDialog/Classes/PopupDialogOverlayView.swift
generated
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
//
|
||||||
|
// PopupDialogOverlayView.swift
|
||||||
|
//
|
||||||
|
// Copyright (c) 2016 Orderella Ltd. (http://orderella.co.uk)
|
||||||
|
// Author - Martin Wildfeuer (http://www.mwfire.de)
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
// THE SOFTWARE.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import DynamicBlurView
|
||||||
|
|
||||||
|
/// The (blurred) overlay view below the popup dialog
|
||||||
|
final public class PopupDialogOverlayView: UIView {
|
||||||
|
|
||||||
|
// MARK: - Appearance
|
||||||
|
|
||||||
|
/// Turns the blur of the overlay view on or off
|
||||||
|
@objc public dynamic var blurEnabled: Bool {
|
||||||
|
get { return !blurView.isHidden }
|
||||||
|
set { blurView.isHidden = !newValue }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The blur radius of the overlay view
|
||||||
|
@objc public dynamic var blurRadius: CGFloat {
|
||||||
|
get { return blurView.blurRadius }
|
||||||
|
set { blurView.blurRadius = newValue }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Whether the blur view should allow for
|
||||||
|
/// live rendering of the background
|
||||||
|
@objc public dynamic var liveBlurEnabled: Bool {
|
||||||
|
get { return blurView.trackingMode == .common }
|
||||||
|
set {
|
||||||
|
if newValue {
|
||||||
|
blurView.trackingMode = .common
|
||||||
|
} else {
|
||||||
|
blurView.trackingMode = .none
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The background color of the overlay view
|
||||||
|
@objc public dynamic var color: UIColor? {
|
||||||
|
get { return overlay.backgroundColor }
|
||||||
|
set { overlay.backgroundColor = newValue }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// The opacity of the overlay view
|
||||||
|
@objc public dynamic var opacity: CGFloat {
|
||||||
|
get { return overlay.alpha }
|
||||||
|
set { overlay.alpha = newValue }
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - Views
|
||||||
|
|
||||||
|
internal lazy var blurView: DynamicBlurView = {
|
||||||
|
let blurView = DynamicBlurView(frame: .zero)
|
||||||
|
blurView.blurRadius = 8
|
||||||
|
blurView.trackingMode = .none
|
||||||
|
blurView.isDeepRendering = true
|
||||||
|
blurView.tintColor = .clear
|
||||||
|
blurView.autoresizingMask = [.flexibleHeight, .flexibleWidth]
|
||||||
|
return blurView
|
||||||
|
}()
|
||||||
|
|
||||||
|
internal lazy var overlay: UIView = {
|
||||||
|
let overlay = UIView(frame: .zero)
|
||||||
|
overlay.backgroundColor = .black
|
||||||
|
overlay.alpha = 0.7
|
||||||
|
overlay.autoresizingMask = [.flexibleHeight, .flexibleWidth]
|
||||||
|
return overlay
|
||||||
|
}()
|
||||||
|
|
||||||
|
// MARK: - Inititalizers
|
||||||
|
|
||||||
|
override init(frame: CGRect) {
|
||||||
|
super.init(frame: frame)
|
||||||
|
setupView()
|
||||||
|
}
|
||||||
|
|
||||||
|
required public init?(coder aDecoder: NSCoder) {
|
||||||
|
fatalError("init(coder:) has not been implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - View setup
|
||||||
|
|
||||||
|
fileprivate func setupView() {
|
||||||
|
|
||||||
|
autoresizingMask = [.flexibleHeight, .flexibleWidth]
|
||||||
|
backgroundColor = .clear
|
||||||
|
alpha = 0
|
||||||
|
|
||||||
|
addSubview(blurView)
|
||||||
|
addSubview(overlay)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - Deprecated
|
||||||
|
|
||||||
|
extension PopupDialogOverlayView {
|
||||||
|
|
||||||
|
/// Whether the blur view should allow for
|
||||||
|
/// dynamic rendering of the background
|
||||||
|
@available(*, deprecated, message: "liveBlur has been deprecated and will be removed with future versions of PopupDialog. Please use isLiveBlurEnabled instead.")
|
||||||
|
@objc public dynamic var liveBlur: Bool {
|
||||||
|
get { return liveBlurEnabled }
|
||||||
|
set { liveBlurEnabled = newValue }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
61
Pods/PopupDialog/PopupDialog/Classes/PresentationController.swift
generated
Normal file
61
Pods/PopupDialog/PopupDialog/Classes/PresentationController.swift
generated
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
//
|
||||||
|
// PopupDialogPresentationController.swift
|
||||||
|
//
|
||||||
|
// Copyright (c) 2016 Orderella Ltd. (http://orderella.co.uk)
|
||||||
|
// Author - Martin Wildfeuer (http://www.mwfire.de)
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
// THE SOFTWARE.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
final internal class PresentationController: UIPresentationController {
|
||||||
|
|
||||||
|
private lazy var overlay: PopupDialogOverlayView = {
|
||||||
|
return PopupDialogOverlayView(frame: .zero)
|
||||||
|
}()
|
||||||
|
|
||||||
|
override func presentationTransitionWillBegin() {
|
||||||
|
|
||||||
|
guard let containerView = containerView else { return }
|
||||||
|
|
||||||
|
overlay.frame = containerView.bounds
|
||||||
|
containerView.insertSubview(overlay, at: 0)
|
||||||
|
|
||||||
|
presentedViewController.transitionCoordinator?.animate(alongsideTransition: { [weak self] _ in
|
||||||
|
self?.overlay.alpha = 1.0
|
||||||
|
}, completion: nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
override func dismissalTransitionWillBegin() {
|
||||||
|
presentedViewController.transitionCoordinator?.animate(alongsideTransition: { [weak self] _ in
|
||||||
|
self?.overlay.alpha = 0.0
|
||||||
|
}, completion: nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
override func containerViewWillLayoutSubviews() {
|
||||||
|
|
||||||
|
guard let presentedView = presentedView else { return }
|
||||||
|
|
||||||
|
presentedView.frame = frameOfPresentedViewInContainerView
|
||||||
|
overlay.blurView.refresh()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
86
Pods/PopupDialog/PopupDialog/Classes/PresentationManager.swift
generated
Normal file
86
Pods/PopupDialog/PopupDialog/Classes/PresentationManager.swift
generated
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
//
|
||||||
|
// PopupDialogPresentationManager.swift
|
||||||
|
//
|
||||||
|
// Copyright (c) 2016 Orderella Ltd. (http://orderella.co.uk)
|
||||||
|
// Author - Martin Wildfeuer (http://www.mwfire.de)
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
// THE SOFTWARE.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
final internal class PresentationManager: NSObject, UIViewControllerTransitioningDelegate {
|
||||||
|
|
||||||
|
var transitionStyle: PopupDialogTransitionStyle
|
||||||
|
var interactor: InteractiveTransition
|
||||||
|
|
||||||
|
init(transitionStyle: PopupDialogTransitionStyle, interactor: InteractiveTransition) {
|
||||||
|
self.transitionStyle = transitionStyle
|
||||||
|
self.interactor = interactor
|
||||||
|
super.init()
|
||||||
|
}
|
||||||
|
|
||||||
|
func presentationController(forPresented presented: UIViewController, presenting: UIViewController?, source: UIViewController) -> UIPresentationController? {
|
||||||
|
let presentationController = PresentationController(presentedViewController: presented, presenting: source)
|
||||||
|
return presentationController
|
||||||
|
}
|
||||||
|
|
||||||
|
func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
|
||||||
|
|
||||||
|
var transition: TransitionAnimator
|
||||||
|
switch transitionStyle {
|
||||||
|
case .bounceUp:
|
||||||
|
transition = BounceUpTransition(direction: .in)
|
||||||
|
case .bounceDown:
|
||||||
|
transition = BounceDownTransition(direction: .in)
|
||||||
|
case .zoomIn:
|
||||||
|
transition = ZoomTransition(direction: .in)
|
||||||
|
case .fadeIn:
|
||||||
|
transition = FadeTransition(direction: .in)
|
||||||
|
}
|
||||||
|
|
||||||
|
return transition
|
||||||
|
}
|
||||||
|
|
||||||
|
func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
|
||||||
|
|
||||||
|
if interactor.hasStarted || interactor.shouldFinish {
|
||||||
|
return DismissInteractiveTransition()
|
||||||
|
}
|
||||||
|
|
||||||
|
var transition: TransitionAnimator
|
||||||
|
switch transitionStyle {
|
||||||
|
case .bounceUp:
|
||||||
|
transition = BounceUpTransition(direction: .out)
|
||||||
|
case .bounceDown:
|
||||||
|
transition = BounceDownTransition(direction: .out)
|
||||||
|
case .zoomIn:
|
||||||
|
transition = ZoomTransition(direction: .out)
|
||||||
|
case .fadeIn:
|
||||||
|
transition = FadeTransition(direction: .out)
|
||||||
|
}
|
||||||
|
|
||||||
|
return transition
|
||||||
|
}
|
||||||
|
|
||||||
|
func interactionControllerForDismissal(using animator: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? {
|
||||||
|
return interactor.hasStarted ? interactor : nil
|
||||||
|
}
|
||||||
|
}
|
||||||
186
Pods/PopupDialog/PopupDialog/Classes/TransitionAnimations.swift
generated
Normal file
186
Pods/PopupDialog/PopupDialog/Classes/TransitionAnimations.swift
generated
Normal file
@@ -0,0 +1,186 @@
|
|||||||
|
//
|
||||||
|
// PopupDialogTransitionAnimations.swift
|
||||||
|
//
|
||||||
|
// Copyright (c) 2016 Orderella Ltd. (http://orderella.co.uk)
|
||||||
|
// Author - Martin Wildfeuer (http://www.mwfire.de)
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
// THE SOFTWARE.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Presentation transition styles for the popup dialog
|
||||||
|
|
||||||
|
- BounceUp: Dialog bounces in from bottom and is dismissed to bottom
|
||||||
|
- BounceDown: Dialog bounces in from top and is dismissed to top
|
||||||
|
- ZoomIn: Dialog zooms in and is dismissed by zooming out
|
||||||
|
- FadeIn: Dialog fades in and is dismissed by fading out
|
||||||
|
*/
|
||||||
|
@objc public enum PopupDialogTransitionStyle: Int {
|
||||||
|
case bounceUp
|
||||||
|
case bounceDown
|
||||||
|
case zoomIn
|
||||||
|
case fadeIn
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Dialog bounces in from bottom and is dismissed to bottom
|
||||||
|
final internal class BounceUpTransition: TransitionAnimator {
|
||||||
|
|
||||||
|
init(direction: AnimationDirection) {
|
||||||
|
super.init(inDuration: 0.22, outDuration: 0.2, direction: direction)
|
||||||
|
}
|
||||||
|
|
||||||
|
override func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
|
||||||
|
super.animateTransition(using: transitionContext)
|
||||||
|
|
||||||
|
switch direction {
|
||||||
|
case .in:
|
||||||
|
to.view.bounds.origin = CGPoint(x: 0, y: -from.view.bounds.size.height)
|
||||||
|
UIView.animate(withDuration: 0.6, delay: 0.0, usingSpringWithDamping: 0.6, initialSpringVelocity: 0, options: [.curveEaseOut], animations: { [weak self] in
|
||||||
|
guard let self = self else { return }
|
||||||
|
self.to.view.bounds = self.from.view.bounds
|
||||||
|
}, completion: { _ in
|
||||||
|
transitionContext.completeTransition(true)
|
||||||
|
})
|
||||||
|
case .out:
|
||||||
|
UIView.animate(withDuration: outDuration, delay: 0.0, options: [.curveEaseIn], animations: { [weak self] in
|
||||||
|
guard let self = self else { return }
|
||||||
|
self.from.view.bounds.origin = CGPoint(x: 0, y: -self.from.view.bounds.size.height)
|
||||||
|
self.from.view.alpha = 0.0
|
||||||
|
}, completion: { _ in
|
||||||
|
transitionContext.completeTransition(!transitionContext.transitionWasCancelled)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// Dialog bounces in from top and is dismissed to top
|
||||||
|
final internal class BounceDownTransition: TransitionAnimator {
|
||||||
|
|
||||||
|
init(direction: AnimationDirection) {
|
||||||
|
super.init(inDuration: 0.22, outDuration: 0.2, direction: direction)
|
||||||
|
}
|
||||||
|
|
||||||
|
override func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
|
||||||
|
super.animateTransition(using: transitionContext)
|
||||||
|
|
||||||
|
switch direction {
|
||||||
|
case .in:
|
||||||
|
to.view.bounds.origin = CGPoint(x: 0, y: from.view.bounds.size.height)
|
||||||
|
UIView.animate(withDuration: 0.6, delay: 0.0, usingSpringWithDamping: 0.6, initialSpringVelocity: 0, options: [.curveEaseOut], animations: { [weak self] in
|
||||||
|
guard let self = self else { return }
|
||||||
|
self.to.view.bounds = self.from.view.bounds
|
||||||
|
}, completion: { _ in
|
||||||
|
transitionContext.completeTransition(true)
|
||||||
|
})
|
||||||
|
case .out:
|
||||||
|
UIView.animate(withDuration: outDuration, delay: 0.0, options: [.curveEaseIn], animations: { [weak self] in
|
||||||
|
guard let self = self else { return }
|
||||||
|
self.from.view.bounds.origin = CGPoint(x: 0, y: self.from.view.bounds.size.height)
|
||||||
|
self.from.view.alpha = 0.0
|
||||||
|
}, completion: { _ in
|
||||||
|
transitionContext.completeTransition(!transitionContext.transitionWasCancelled)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Dialog zooms in and is dismissed by zooming out
|
||||||
|
final internal class ZoomTransition: TransitionAnimator {
|
||||||
|
|
||||||
|
init(direction: AnimationDirection) {
|
||||||
|
super.init(inDuration: 0.22, outDuration: 0.2, direction: direction)
|
||||||
|
}
|
||||||
|
|
||||||
|
override func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
|
||||||
|
super.animateTransition(using: transitionContext)
|
||||||
|
|
||||||
|
switch direction {
|
||||||
|
case .in:
|
||||||
|
to.view.transform = CGAffineTransform(scaleX: 0.1, y: 0.1)
|
||||||
|
UIView.animate(withDuration: 0.6, delay: 0.0, usingSpringWithDamping: 0.6, initialSpringVelocity: 0, options: [.curveEaseOut], animations: { [weak self] in
|
||||||
|
guard let self = self else { return }
|
||||||
|
self.to.view.transform = CGAffineTransform(scaleX: 1, y: 1)
|
||||||
|
}, completion: { _ in
|
||||||
|
transitionContext.completeTransition(true)
|
||||||
|
})
|
||||||
|
case .out:
|
||||||
|
UIView.animate(withDuration: outDuration, delay: 0.0, options: [.curveEaseIn], animations: { [weak self] in
|
||||||
|
guard let self = self else { return }
|
||||||
|
self.from.view.transform = CGAffineTransform(scaleX: 0.1, y: 0.1)
|
||||||
|
self.from.view.alpha = 0.0
|
||||||
|
}, completion: { _ in
|
||||||
|
transitionContext.completeTransition(!transitionContext.transitionWasCancelled)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Dialog fades in and is dismissed by fading out
|
||||||
|
final internal class FadeTransition: TransitionAnimator {
|
||||||
|
|
||||||
|
init(direction: AnimationDirection) {
|
||||||
|
super.init(inDuration: 0.22, outDuration: 0.2, direction: direction)
|
||||||
|
}
|
||||||
|
|
||||||
|
override func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
|
||||||
|
super.animateTransition(using: transitionContext)
|
||||||
|
|
||||||
|
switch direction {
|
||||||
|
case .in:
|
||||||
|
to.view.alpha = 0
|
||||||
|
UIView.animate(withDuration: 0.6, delay: 0.0, options: [.curveEaseOut],
|
||||||
|
animations: { [weak self] in
|
||||||
|
guard let self = self else { return }
|
||||||
|
self.to.view.alpha = 1
|
||||||
|
}, completion: { _ in
|
||||||
|
transitionContext.completeTransition(true)
|
||||||
|
})
|
||||||
|
case .out:
|
||||||
|
UIView.animate(withDuration: outDuration, delay: 0.0, options: [.curveEaseIn], animations: { [weak self] in
|
||||||
|
guard let self = self else { return }
|
||||||
|
self.from.view.alpha = 0.0
|
||||||
|
}, completion: { _ in
|
||||||
|
transitionContext.completeTransition(!transitionContext.transitionWasCancelled)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Used for the always drop out animation with pan gesture dismissal
|
||||||
|
final internal class DismissInteractiveTransition: TransitionAnimator {
|
||||||
|
|
||||||
|
init() {
|
||||||
|
super.init(inDuration: 0.22, outDuration: 0.32, direction: .out)
|
||||||
|
}
|
||||||
|
|
||||||
|
override func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
|
||||||
|
super.animateTransition(using: transitionContext)
|
||||||
|
UIView.animate(withDuration: outDuration, delay: 0.0, options: [.beginFromCurrentState], animations: { [weak self] in
|
||||||
|
guard let self = self else { return }
|
||||||
|
self.from.view.bounds.origin = CGPoint(x: 0, y: -self.from.view.bounds.size.height)
|
||||||
|
self.from.view.alpha = 0.0
|
||||||
|
}, completion: { _ in
|
||||||
|
transitionContext.completeTransition(!transitionContext.transitionWasCancelled)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
68
Pods/PopupDialog/PopupDialog/Classes/TransitionAnimator.swift
generated
Normal file
68
Pods/PopupDialog/PopupDialog/Classes/TransitionAnimator.swift
generated
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
//
|
||||||
|
// PopupDialogTransitionAnimator.swift
|
||||||
|
//
|
||||||
|
// Copyright (c) 2016 Orderella Ltd. (http://orderella.co.uk)
|
||||||
|
// Author - Martin Wildfeuer (http://www.mwfire.de)
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
// THE SOFTWARE.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
/// Base class for custom transition animations
|
||||||
|
internal class TransitionAnimator: NSObject, UIViewControllerAnimatedTransitioning {
|
||||||
|
|
||||||
|
var to: UIViewController!
|
||||||
|
var from: UIViewController!
|
||||||
|
let inDuration: TimeInterval
|
||||||
|
let outDuration: TimeInterval
|
||||||
|
let direction: AnimationDirection
|
||||||
|
|
||||||
|
init(inDuration: TimeInterval, outDuration: TimeInterval, direction: AnimationDirection) {
|
||||||
|
self.inDuration = inDuration
|
||||||
|
self.outDuration = outDuration
|
||||||
|
self.direction = direction
|
||||||
|
super.init()
|
||||||
|
}
|
||||||
|
|
||||||
|
internal func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
|
||||||
|
return direction == .in ? inDuration : outDuration
|
||||||
|
}
|
||||||
|
|
||||||
|
internal func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
|
||||||
|
switch direction {
|
||||||
|
case .in:
|
||||||
|
guard let to = transitionContext.viewController(forKey: UITransitionContextViewControllerKey.to),
|
||||||
|
let from = transitionContext.viewController(forKey: UITransitionContextViewControllerKey.from) else { return }
|
||||||
|
|
||||||
|
self.to = to
|
||||||
|
self.from = from
|
||||||
|
|
||||||
|
let container = transitionContext.containerView
|
||||||
|
container.addSubview(to.view)
|
||||||
|
case .out:
|
||||||
|
guard let to = transitionContext.viewController(forKey: UITransitionContextViewControllerKey.to),
|
||||||
|
let from = transitionContext.viewController(forKey: UITransitionContextViewControllerKey.from) else { return }
|
||||||
|
|
||||||
|
self.to = to
|
||||||
|
self.from = from
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
44
Pods/PopupDialog/PopupDialog/Classes/UIImageView+Calculations.swift
generated
Executable file
44
Pods/PopupDialog/PopupDialog/Classes/UIImageView+Calculations.swift
generated
Executable file
@@ -0,0 +1,44 @@
|
|||||||
|
//
|
||||||
|
// UIImageView+Calculations.swift
|
||||||
|
//
|
||||||
|
// Copyright (c) 2016 Orderella Ltd. (http://orderella.co.uk)
|
||||||
|
// Author - Martin Wildfeuer (http://www.mwfire.de)
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
// THE SOFTWARE.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
internal extension UIImageView {
|
||||||
|
|
||||||
|
/*!
|
||||||
|
Calculates the height of the the UIImageView has to
|
||||||
|
have so the image is displayed correctly
|
||||||
|
- returns: Height to set on the imageView
|
||||||
|
*/
|
||||||
|
func pv_heightForImageView() -> CGFloat {
|
||||||
|
guard let image = image, image.size.height > 0 else {
|
||||||
|
return 0.0
|
||||||
|
}
|
||||||
|
let width = bounds.size.width
|
||||||
|
let ratio = image.size.height / image.size.width
|
||||||
|
return width * ratio
|
||||||
|
}
|
||||||
|
}
|
||||||
82
Pods/PopupDialog/PopupDialog/Classes/UIView+Animations.swift
generated
Normal file
82
Pods/PopupDialog/PopupDialog/Classes/UIView+Animations.swift
generated
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
//
|
||||||
|
// UIView+Animations.swift
|
||||||
|
//
|
||||||
|
// Copyright (c) 2016 Orderella Ltd. (http://orderella.co.uk)
|
||||||
|
// Author - Martin Wildfeuer (http://www.mwfire.de)
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
// THE SOFTWARE.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
/*!
|
||||||
|
The intended direction of the animation
|
||||||
|
- in: Animate in
|
||||||
|
- out: Animate out
|
||||||
|
*/
|
||||||
|
internal enum AnimationDirection {
|
||||||
|
case `in` // swiftlint:disable:this identifier_name
|
||||||
|
case out
|
||||||
|
}
|
||||||
|
|
||||||
|
internal extension UIView {
|
||||||
|
|
||||||
|
/// The key for the fade animation
|
||||||
|
var fadeKey: String { return "FadeAnimation" }
|
||||||
|
var shakeKey: String { return "ShakeAnimation" }
|
||||||
|
|
||||||
|
func pv_fade(_ direction: AnimationDirection, _ value: Float, duration: CFTimeInterval = 0.08) {
|
||||||
|
layer.removeAnimation(forKey: fadeKey)
|
||||||
|
let animation = CABasicAnimation(keyPath: "opacity")
|
||||||
|
animation.duration = duration
|
||||||
|
animation.fromValue = layer.presentation()?.opacity
|
||||||
|
layer.opacity = value
|
||||||
|
animation.fillMode = CAMediaTimingFillMode.forwards
|
||||||
|
layer.add(animation, forKey: fadeKey)
|
||||||
|
}
|
||||||
|
|
||||||
|
func pv_layoutIfNeededAnimated(duration: CFTimeInterval = 0.08) {
|
||||||
|
UIView.animate(withDuration: duration, delay: 0, options: UIView.AnimationOptions(), animations: {
|
||||||
|
self.layoutIfNeeded()
|
||||||
|
}, completion: nil)
|
||||||
|
}
|
||||||
|
|
||||||
|
// As found at https://gist.github.com/mourad-brahim/cf0bfe9bec5f33a6ea66#file-uiview-animations-swift-L9
|
||||||
|
// Slightly modified
|
||||||
|
func pv_shake() {
|
||||||
|
layer.removeAnimation(forKey: shakeKey)
|
||||||
|
let vals: [Double] = [-2, 2, -2, 2, 0]
|
||||||
|
|
||||||
|
let translation = CAKeyframeAnimation(keyPath: "transform.translation.x")
|
||||||
|
translation.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.linear)
|
||||||
|
translation.values = vals
|
||||||
|
|
||||||
|
let rotation = CAKeyframeAnimation(keyPath: "transform.rotation.z")
|
||||||
|
rotation.values = vals.map { (degrees: Double) in
|
||||||
|
let radians: Double = (Double.pi * degrees) / 180.0
|
||||||
|
return radians
|
||||||
|
}
|
||||||
|
|
||||||
|
let shakeGroup: CAAnimationGroup = CAAnimationGroup()
|
||||||
|
shakeGroup.animations = [translation, rotation]
|
||||||
|
shakeGroup.duration = 0.3
|
||||||
|
self.layer.add(shakeGroup, forKey: shakeKey)
|
||||||
|
}
|
||||||
|
}
|
||||||
52
Pods/PopupDialog/PopupDialog/Classes/UIViewController+Visibility.swift
generated
Normal file
52
Pods/PopupDialog/PopupDialog/Classes/UIViewController+Visibility.swift
generated
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
//
|
||||||
|
// UIViewController+Visibility.swift
|
||||||
|
//
|
||||||
|
// Copyright (c) 2016 Orderella Ltd. (http://orderella.co.uk)
|
||||||
|
// Author - Martin Wildfeuer (http://www.mwfire.de)
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
// THE SOFTWARE.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
// http://stackoverflow.com/questions/2777438/how-to-tell-if-uiviewcontrollers-view-is-visible
|
||||||
|
internal extension UIViewController {
|
||||||
|
|
||||||
|
var isTopAndVisible: Bool {
|
||||||
|
return isVisible && isTopViewController
|
||||||
|
}
|
||||||
|
|
||||||
|
var isVisible: Bool {
|
||||||
|
if isViewLoaded {
|
||||||
|
return view.window != nil
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
var isTopViewController: Bool {
|
||||||
|
if self.navigationController != nil {
|
||||||
|
return self.navigationController?.visibleViewController === self
|
||||||
|
} else if self.tabBarController != nil {
|
||||||
|
return self.tabBarController?.selectedViewController == self && self.presentedViewController == nil
|
||||||
|
} else {
|
||||||
|
return self.presentedViewController == nil && self.isVisible
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
499
Pods/PopupDialog/README.md
generated
Normal file
499
Pods/PopupDialog/README.md
generated
Normal file
@@ -0,0 +1,499 @@
|
|||||||
|
<img src="https://github.com/Orderella/PopupDialog/blob/master/Assets/PopupDialogLogo.png?raw=true" width="300">
|
||||||
|
|
||||||
|
<p> </p>
|
||||||
|
|
||||||
|

|
||||||
|
[](http://cocoapods.org/pods/PopupDialog)
|
||||||
|
[](http://cocoapods.org/pods/PopupDialog)
|
||||||
|
[](http://cocoapods.org/pods/PopupDialog)
|
||||||
|
[](https://github.com/Carthage/Carthage)
|
||||||
|
[](https://travis-ci.org/Orderella/PopupDialog)
|
||||||
|
[](https://travis-ci.org/Orderella/PopupDialog)
|
||||||
|
[](https://houndci.com)
|
||||||
|
|
||||||
|
<p> </p>
|
||||||
|
|
||||||
|
# Introduction
|
||||||
|
|
||||||
|
Popup Dialog is a simple, customizable popup dialog written in Swift.
|
||||||
|
|
||||||
|
<img align="left" src="https://github.com/Orderella/PopupDialog/blob/master/Assets/PopupDialog01.gif?raw=true" width="300">
|
||||||
|
<img src="https://github.com/Orderella/PopupDialog/blob/master/Assets/PopupDialog02.gif?raw=true" width="300">
|
||||||
|
<img align="left" src="https://github.com/Orderella/PopupDialog/blob/master/Assets/PopupDialog03.gif?raw=true" width="300">
|
||||||
|
<img src="https://github.com/Orderella/PopupDialog/blob/master/Assets/PopupDialogDark01.png?raw=true" width="300">
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- [x] Easy to use API with hardly any boilerplate code
|
||||||
|
- [x] Convenient default view with image, title, message
|
||||||
|
- [x] Supports custom view controllers
|
||||||
|
- [x] Slick transition animations
|
||||||
|
- [x] Fully themeable via appearance, including fonts, colors, corner radius, shadow, overlay color and blur, etc.
|
||||||
|
- [x] Can be dismissed via swipe and background tap
|
||||||
|
- [x] Objective-C compatible
|
||||||
|
- [x] Works on all screens and devices supporting iOS 10.0+
|
||||||
|
|
||||||
|
<p> </p>
|
||||||
|
|
||||||
|
# Installation
|
||||||
|
|
||||||
|
This version is Swift 5 compatible. For the Swift 4.2 version, please use [V1.0.0](https://github.com/Orderella/PopupDialog/releases/tag/1.0.0).
|
||||||
|
|
||||||
|
## CocoaPods
|
||||||
|
|
||||||
|
PopupDialog is available through [CocoaPods](http://cocoapods.org). Simply add the following to your Podfile:
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
use_frameworks!
|
||||||
|
|
||||||
|
target '<Your Target Name>'
|
||||||
|
pod 'PopupDialog', '~> 1.1'
|
||||||
|
```
|
||||||
|
|
||||||
|
## Carthage
|
||||||
|
|
||||||
|
[Carthage](https://github.com/Carthage/Carthage) is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks. A minimum version of `0.17` is required.
|
||||||
|
|
||||||
|
To install, simply add the following lines to your Cartfile:
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
github "Orderella/PopupDialog" ~> 1.1
|
||||||
|
```
|
||||||
|
|
||||||
|
## Manually
|
||||||
|
|
||||||
|
If you prefer not to use either of the above mentioned dependency managers, you can integrate PopupDialog into your project manually by adding the files contained in the [Classes](https://github.com/trungp/PopupDialog/tree/master/PopupDialog/Classes)
|
||||||
|
folder to your project. Moreover, you have to manually add the classes of [DynamicBlurView](https://github.com/KyoheiG3/DynamicBlurView/tree/master/DynamicBlurView) to your project.
|
||||||
|
|
||||||
|
|
||||||
|
<p> </p>
|
||||||
|
|
||||||
|
# Example
|
||||||
|
|
||||||
|
You can find this and more example projects in the repo. To run it, clone the repo, and run `pod install` from the Example directory first.
|
||||||
|
|
||||||
|
```swift
|
||||||
|
import PopupDialog
|
||||||
|
|
||||||
|
// Prepare the popup assets
|
||||||
|
let title = "THIS IS THE DIALOG TITLE"
|
||||||
|
let message = "This is the message section of the popup dialog default view"
|
||||||
|
let image = UIImage(named: "pexels-photo-103290")
|
||||||
|
|
||||||
|
// Create the dialog
|
||||||
|
let popup = PopupDialog(title: title, message: message, image: image)
|
||||||
|
|
||||||
|
// Create buttons
|
||||||
|
let buttonOne = CancelButton(title: "CANCEL") {
|
||||||
|
print("You canceled the car dialog.")
|
||||||
|
}
|
||||||
|
|
||||||
|
// This button will not the dismiss the dialog
|
||||||
|
let buttonTwo = DefaultButton(title: "ADMIRE CAR", dismissOnTap: false) {
|
||||||
|
print("What a beauty!")
|
||||||
|
}
|
||||||
|
|
||||||
|
let buttonThree = DefaultButton(title: "BUY CAR", height: 60) {
|
||||||
|
print("Ah, maybe next time :)")
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add buttons to dialog
|
||||||
|
// Alternatively, you can use popup.addButton(buttonOne)
|
||||||
|
// to add a single button
|
||||||
|
popup.addButtons([buttonOne, buttonTwo, buttonThree])
|
||||||
|
|
||||||
|
// Present dialog
|
||||||
|
self.present(popup, animated: true, completion: nil)
|
||||||
|
```
|
||||||
|
|
||||||
|
<p> </p>
|
||||||
|
|
||||||
|
# Usage
|
||||||
|
|
||||||
|
PopupDialog is a subclass of UIViewController and as such can be added to your view controller modally. You can initialize it either with the handy default view or a custom view controller.
|
||||||
|
|
||||||
|
## Default Dialog
|
||||||
|
|
||||||
|
```swift
|
||||||
|
public convenience init(
|
||||||
|
title: String?,
|
||||||
|
message: String?,
|
||||||
|
image: UIImage? = nil,
|
||||||
|
buttonAlignment: UILayoutConstraintAxis = .vertical,
|
||||||
|
transitionStyle: PopupDialogTransitionStyle = .bounceUp,
|
||||||
|
preferredWidth: CGFloat = 340,
|
||||||
|
tapGestureDismissal: Bool = true,
|
||||||
|
panGestureDismissal: Bool = true,
|
||||||
|
hideStatusBar: Bool = false,
|
||||||
|
completion: (() -> Void)? = nil)
|
||||||
|
```
|
||||||
|
|
||||||
|
The default dialog initializer is a convenient way of creating a popup with image, title and message (see image one and three).
|
||||||
|
|
||||||
|
Bascially, all parameters are optional, although this makes no sense at all. You want to at least add a message and a single button, otherwise the dialog can't be dismissed, unless you do it manually.
|
||||||
|
|
||||||
|
If you provide an image it will be pinned to the top/left/right of the dialog. The ratio of the image will be used to set the height of the image view, so no distortion will occur.
|
||||||
|
|
||||||
|
## Custom View Controller
|
||||||
|
|
||||||
|
```swift
|
||||||
|
public init(
|
||||||
|
viewController: UIViewController,
|
||||||
|
buttonAlignment: UILayoutConstraintAxis = .vertical,
|
||||||
|
transitionStyle: PopupDialogTransitionStyle = .bounceUp,
|
||||||
|
preferredWidth: CGFloat = 340,
|
||||||
|
tapGestureDismissal: Bool = true,
|
||||||
|
panGestureDismissal: Bool = true,
|
||||||
|
hideStatusBar: Bool = false,
|
||||||
|
completion: (() -> Void)? = nil)
|
||||||
|
```
|
||||||
|
|
||||||
|
You can pass your own view controller to PopupDialog (see image two). It is accessible via the `viewController` property of PopupDialog, which has to be casted to your view controllers class to access its properties. Make sure the custom view defines all constraints needed, so you don't run into any autolayout issues.
|
||||||
|
|
||||||
|
Buttons are added below the controllers view, however, these buttons are optional. If you decide to not add any buttons, you have to take care of dismissing the dialog manually. Being a subclass of view controller, this can be easily done via `dismissViewControllerAnimated(flag: Bool, completion: (() -> Void)?)`.
|
||||||
|
|
||||||
|
## Button Alignment
|
||||||
|
|
||||||
|
Buttons can be distributed either `.horizontal` or `.vertical`, with the latter being the default. Please note distributing buttons horizontally might not be a good idea if you have more than two buttons.
|
||||||
|
|
||||||
|
```swift
|
||||||
|
public enum UILayoutConstraintAxis : Int {
|
||||||
|
case horizontal
|
||||||
|
case vertical
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Transition Style
|
||||||
|
|
||||||
|
You can set a transition animation style with `.bounceUp` being the default. The following transition styles are available
|
||||||
|
|
||||||
|
```swift
|
||||||
|
public enum PopupDialogTransitionStyle: Int {
|
||||||
|
case bounceUp
|
||||||
|
case bounceDown
|
||||||
|
case zoomIn
|
||||||
|
case fadeIn
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Preferred Width
|
||||||
|
|
||||||
|
PopupDialog will always try to have a max width of 340 . On iPhones with smaller screens, like iPhone 5 SE, width would be 320.
|
||||||
|
340 is also the standard width for iPads. By setting preferredWidth you can override the max width of 340 for iPads only.
|
||||||
|
|
||||||
|
## Gesture Dismissal
|
||||||
|
|
||||||
|
Gesture dismissal allows your dialog being dismissed either by a background tap or by swiping the dialog down. By default, this is set to `true`. You can prevent this behavior by setting either `tapGestureDismissal` or `panGestureDismissal` to `false` in the initializer.
|
||||||
|
|
||||||
|
## Hide Status Bar
|
||||||
|
|
||||||
|
PopupDialog can hide the status bar whenever it is displayed. Defaults to `false`. Make sure to add `UIViewControllerBasedStatusBarAppearance` to `Info.plist` and set it to `YES`.
|
||||||
|
|
||||||
|
## Completion
|
||||||
|
This completion handler is called when the dialog was dismissed. This is especially useful for catching a gesture dismissal.
|
||||||
|
|
||||||
|
<p> </p>
|
||||||
|
|
||||||
|
# Default Dialog Properties
|
||||||
|
|
||||||
|
If you are using the default dialog, you can change selected properties at runtime:
|
||||||
|
|
||||||
|
```swift
|
||||||
|
// Create the dialog
|
||||||
|
let popup = PopupDialog(title: title, message: message, image: image)
|
||||||
|
|
||||||
|
// Present dialog
|
||||||
|
self.present(popup, animated: true, completion: nil)
|
||||||
|
|
||||||
|
// Get the default view controller and cast it
|
||||||
|
// Unfortunately, casting is necessary to support Objective-C
|
||||||
|
let vc = popup.viewController as! PopupDialogDefaultViewController
|
||||||
|
|
||||||
|
// Set dialog properties
|
||||||
|
vc.image = UIImage(...)
|
||||||
|
vc.titleText = "..."
|
||||||
|
vc.messageText = "..."
|
||||||
|
vc.buttonAlignment = .horizontal
|
||||||
|
vc.transitionStyle = .bounceUp
|
||||||
|
```
|
||||||
|
|
||||||
|
<p> </p>
|
||||||
|
|
||||||
|
# Styling PopupDialog
|
||||||
|
|
||||||
|
Appearance is the preferred way of customizing the style of PopupDialog.
|
||||||
|
The idea of PopupDialog is to define a theme in a single place, without having to provide style settings with every single instantiation. This way, creating a PopupDialog requires only minimal code to be written and no "wrappers".
|
||||||
|
|
||||||
|
This makes even more sense, as popup dialogs and alerts are supposed to look consistent throughout the app, that is, maintain a single style.
|
||||||
|
|
||||||
|
## Dialog Default View Appearance Settings
|
||||||
|
|
||||||
|
If you are using the default popup view, the following appearance settings are available:
|
||||||
|
|
||||||
|
```swift
|
||||||
|
let dialogAppearance = PopupDialogDefaultView.appearance()
|
||||||
|
|
||||||
|
dialogAppearance.backgroundColor = .white
|
||||||
|
dialogAppearance.titleFont = .boldSystemFont(ofSize: 14)
|
||||||
|
dialogAppearance.titleColor = UIColor(white: 0.4, alpha: 1)
|
||||||
|
dialogAppearance.titleTextAlignment = .center
|
||||||
|
dialogAppearance.messageFont = .systemFont(ofSize: 14)
|
||||||
|
dialogAppearance.messageColor = UIColor(white: 0.6, alpha: 1)
|
||||||
|
dialogAppearance.messageTextAlignment = .center
|
||||||
|
```
|
||||||
|
|
||||||
|
## Dialog Container Appearance Settings
|
||||||
|
|
||||||
|
The container view contains the PopupDialogDefaultView or your custom view controller. the following appearance settings are available:
|
||||||
|
|
||||||
|
```swift
|
||||||
|
let containerAppearance = PopupDialogContainerView.appearance()
|
||||||
|
|
||||||
|
containerAppearance.backgroundColor = UIColor(red:0.23, green:0.23, blue:0.27, alpha:1.00)
|
||||||
|
containerAppearance.cornerRadius = 2
|
||||||
|
containerAppearance.shadowEnabled = true
|
||||||
|
containerAppearance.shadowColor = .black
|
||||||
|
containerAppearance.shadowOpacity = 0.6
|
||||||
|
containerAppearance.shadowRadius = 20
|
||||||
|
containerAppearance.shadowOffset = CGSize(width: 0, height: 8)
|
||||||
|
containerAppearance.shadowPath = CGPath(...)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Overlay View Appearance Settings
|
||||||
|
|
||||||
|
This refers to the view that is used as an overlay above the underlying view controller but below the popup dialog view. If that makes sense ;)
|
||||||
|
|
||||||
|
```swift
|
||||||
|
let overlayAppearance = PopupDialogOverlayView.appearance()
|
||||||
|
|
||||||
|
overlayAppearance.color = .black
|
||||||
|
overlayAppearance.blurRadius = 20
|
||||||
|
overlayAppearance.blurEnabled = true
|
||||||
|
overlayAppearance.liveBlurEnabled = false
|
||||||
|
overlayAppearance.opacity = 0.7
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Note
|
||||||
|
Setting `liveBlurEnabled` to true, that is enabling realtime updates of the background view, results in a significantly higher CPU usage /power consumption and is therefore turned off by default. Choose wisely whether you need this feature or not ;)
|
||||||
|
|
||||||
|
## Button Appearance Settings
|
||||||
|
|
||||||
|
The standard button classes available are `DefaultButton`, `CancelButton` and `DestructiveButton`. All buttons feature the same appearance settings and can be styled seperately.
|
||||||
|
|
||||||
|
```swift
|
||||||
|
var buttonAppearance = DefaultButton.appearance()
|
||||||
|
|
||||||
|
// Default button
|
||||||
|
buttonAppearance.titleFont = .systemFont(ofSize: 14)
|
||||||
|
buttonAppearance.titleColor = UIColor(red: 0.25, green: 0.53, blue: 0.91, alpha: 1)
|
||||||
|
buttonAppearance.buttonColor = .clear
|
||||||
|
buttonAppearance.separatorColor = UIColor(white: 0.9, alpha: 1)
|
||||||
|
|
||||||
|
// Below, only the differences are highlighted
|
||||||
|
|
||||||
|
// Cancel button
|
||||||
|
CancelButton.appearance().titleColor = .lightGray
|
||||||
|
|
||||||
|
// Destructive button
|
||||||
|
DestructiveButton.appearance().titleColor = .red
|
||||||
|
```
|
||||||
|
|
||||||
|
Moreover, you can create a custom button by subclassing `PopupDialogButton`. The following example creates a solid blue button, featuring a bold white title font. Separators are invisble.
|
||||||
|
|
||||||
|
```swift
|
||||||
|
public final class SolidBlueButton: PopupDialogButton {
|
||||||
|
|
||||||
|
override public func setupView() {
|
||||||
|
defaultFont = .boldSystemFont(ofSize: 16)
|
||||||
|
defaultTitleColor = .white
|
||||||
|
defaultButtonColor = .blue
|
||||||
|
defaultSeparatorColor = .clear
|
||||||
|
super.setupView()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
These buttons can be customized with the appearance settings given above as well.
|
||||||
|
|
||||||
|
<p> </p>
|
||||||
|
|
||||||
|
## Dark mode example
|
||||||
|
|
||||||
|
The following is an example of a *Dark Mode* theme. You can find this in the Example project `AppDelegate`, just uncomment it to apply the custom appearance.
|
||||||
|
|
||||||
|
```swift
|
||||||
|
// Customize dialog appearance
|
||||||
|
let pv = PopupDialogDefaultView.appearance()
|
||||||
|
pv.titleFont = UIFont(name: "HelveticaNeue-Light", size: 16)!
|
||||||
|
pv.titleColor = .white
|
||||||
|
pv.messageFont = UIFont(name: "HelveticaNeue", size: 14)!
|
||||||
|
pv.messageColor = UIColor(white: 0.8, alpha: 1)
|
||||||
|
|
||||||
|
// Customize the container view appearance
|
||||||
|
let pcv = PopupDialogContainerView.appearance()
|
||||||
|
pcv.backgroundColor = UIColor(red:0.23, green:0.23, blue:0.27, alpha:1.00)
|
||||||
|
pcv.cornerRadius = 2
|
||||||
|
pcv.shadowEnabled = true
|
||||||
|
pcv.shadowColor = .black
|
||||||
|
|
||||||
|
// Customize overlay appearance
|
||||||
|
let ov = PopupDialogOverlayView.appearance()
|
||||||
|
ov.blurEnabled = true
|
||||||
|
ov.blurRadius = 30
|
||||||
|
ov.liveBlurEnabled = true
|
||||||
|
ov.opacity = 0.7
|
||||||
|
ov.color = .black
|
||||||
|
|
||||||
|
// Customize default button appearance
|
||||||
|
let db = DefaultButton.appearance()
|
||||||
|
db.titleFont = UIFont(name: "HelveticaNeue-Medium", size: 14)!
|
||||||
|
db.titleColor = .white
|
||||||
|
db.buttonColor = UIColor(red:0.25, green:0.25, blue:0.29, alpha:1.00)
|
||||||
|
db.separatorColor = UIColor(red:0.20, green:0.20, blue:0.25, alpha:1.00)
|
||||||
|
|
||||||
|
// Customize cancel button appearance
|
||||||
|
let cb = CancelButton.appearance()
|
||||||
|
cb.titleFont = UIFont(name: "HelveticaNeue-Medium", size: 14)!
|
||||||
|
cb.titleColor = UIColor(white: 0.6, alpha: 1)
|
||||||
|
cb.buttonColor = UIColor(red:0.25, green:0.25, blue:0.29, alpha:1.00)
|
||||||
|
cb.separatorColor = UIColor(red:0.20, green:0.20, blue:0.25, alpha:1.00)
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
<img src="https://github.com/Orderella/PopupDialog/blob/master/Assets/PopupDialogDark01.png?raw=true" width="260">
|
||||||
|
<img src="https://github.com/Orderella/PopupDialog/blob/master/Assets/PopupDialogDark02.png?raw=true" width="260">
|
||||||
|
|
||||||
|
I can see that there is room for more customization options. I might add more of them over time.
|
||||||
|
|
||||||
|
<p> </p>
|
||||||
|
|
||||||
|
# Screen sizes and rotation
|
||||||
|
|
||||||
|
Rotation and all screen sizes are supported. However, the dialog will never exceed a width of 340 points on iPhones. For iPads, you can set `preferredWidth` when initializing a new PopupDialog. However, landscape mode will not work well if the height of the dialog exceeds the width of the screen.
|
||||||
|
|
||||||
|
<p> </p>
|
||||||
|
|
||||||
|
# Working with text fields
|
||||||
|
|
||||||
|
If you are using text fields in your custom view controller, popup dialog makes sure that the dialog is positioned above the keybord whenever it appears. You can opt out of this behaviour by setting `keyboardShiftsView` to false on a PopupDialog.
|
||||||
|
|
||||||
|
# Testing
|
||||||
|
|
||||||
|
PopupDialog exposes a nice and handy method that lets you trigger a button tap programmatically:
|
||||||
|
|
||||||
|
```swift
|
||||||
|
public func tapButtonWithIndex(_ index: Int)
|
||||||
|
```
|
||||||
|
|
||||||
|
Other than that, PopupDialog unit tests are included in the root folder.
|
||||||
|
|
||||||
|
<p> </p>
|
||||||
|
|
||||||
|
# Objective-C
|
||||||
|
|
||||||
|
PopupDialog can be used in Objective-C projects as well.
|
||||||
|
Here is a basic example:
|
||||||
|
|
||||||
|
```objective-c
|
||||||
|
PopupDialog *popup = [[PopupDialog alloc] initWithTitle: @"Title"
|
||||||
|
message: @"This is a message"
|
||||||
|
image: nil
|
||||||
|
buttonAlignment: UILayoutConstraintAxisVertical
|
||||||
|
transitionStyle: PopupDialogTransitionStyleBounceUp
|
||||||
|
preferredWidth: 380
|
||||||
|
tapGestureDismissal: NO
|
||||||
|
panGestureDismissal: NO
|
||||||
|
hideStatusBar: NO
|
||||||
|
completion: nil];
|
||||||
|
|
||||||
|
DestructiveButton *delete = [[DestructiveButton alloc] initWithTitle: @"Delete"
|
||||||
|
height: 45
|
||||||
|
dismissOnTap: YES
|
||||||
|
action: nil];
|
||||||
|
|
||||||
|
CancelButton *cancel = [[CancelButton alloc] initWithTitle: @"Cancel"
|
||||||
|
height: 45
|
||||||
|
dismissOnTap: YES
|
||||||
|
action: nil];
|
||||||
|
|
||||||
|
DefaultButton *ok = [[DefaultButton alloc] initWithTitle: @"OK"
|
||||||
|
height: 45
|
||||||
|
dismissOnTap: YES
|
||||||
|
action: nil];
|
||||||
|
|
||||||
|
[dialog addButtons:@[delete, cancel, ok]];
|
||||||
|
|
||||||
|
[self presentViewController:popup animated:YES completion:nil];
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
<p> </p>
|
||||||
|
|
||||||
|
|
||||||
|
# Bonus
|
||||||
|
|
||||||
|
## Shake animation
|
||||||
|
|
||||||
|
If you happen to use PopupDialog to validate text input, for example, you can call the handy `shake()` method on PopupDialog.
|
||||||
|
|
||||||
|
<p> </p>
|
||||||
|
|
||||||
|
# Requirements
|
||||||
|
|
||||||
|
Minimum requirement is iOS 10.0. This dialog was written with Swift 5, for support of older versions please head over to releases.
|
||||||
|
|
||||||
|
<p> </p>
|
||||||
|
|
||||||
|
# Changelog
|
||||||
|
* **1.1.1** Updates dependencies to Swift 5
|
||||||
|
* **1.1.0** Swift 5 support
|
||||||
|
* **1.0.0** Pinned Swift version to 4.2<br>Dropped iOS 9 support as of moving to ios-snapshot-test-case
|
||||||
|
* **0.9.2** Fixes crash when presenting dialog while app is inactive
|
||||||
|
* **0.9.1** Fixes Carthage support
|
||||||
|
* **0.9.0** Swift 4.2 support
|
||||||
|
* **0.8.1** Added shadow appearance properties
|
||||||
|
* **0.8.0** Separated tap and pan gesture dismissal
|
||||||
|
* **0.7.1** Fixes Objective-C compatability<br>Improved Carthage handling
|
||||||
|
* **0.7.0** Removed FXBlurView while switching to DynamicBlurView
|
||||||
|
* **0.6.2** Added preferredWidth option for iPads
|
||||||
|
* **0.6.1** Added shake animation<br>Introduced hideStatusBar option
|
||||||
|
* **0.6.0** Swift 4 support<br>Dropped iOS8 compatibility
|
||||||
|
* **0.5.4** Fixed bug where blur view would reveal hidden layer<br>Improved view controller lifecycle handling<br>Scroll views can now be used with gesture dismissal
|
||||||
|
* **0.5.3** Fixed memory leak with custom view controllers<br>Added UI automation & snapshot tests
|
||||||
|
* **0.5.2** Fixed image scaling for default view
|
||||||
|
* **0.5.1** Introduced custom button height parameter<br>Reintroduced iOS8 compatibility
|
||||||
|
* **0.5.0** Swift 3 compatibility / removed iOS8
|
||||||
|
* **0.4.0** iOS 8 compatibility
|
||||||
|
* **0.3.3** Fixes buttons being added multiple times
|
||||||
|
* **0.3.2** Dialog repositioning when interacting with keyboard<br>Non dismissable buttons option<br>Additional completion handler when dialog is dismissed
|
||||||
|
* **0.3.1** Fixed Carthage issues
|
||||||
|
* **0.3.0** Objective-C compatibility
|
||||||
|
* **0.2.2** Turned off liveBlur by default to increase performance
|
||||||
|
* **0.2.1** Dismiss via background tap or swipe down transition
|
||||||
|
* **0.2.0** You can now pass custom view controllers to the dialog. This introduces breaking changes.
|
||||||
|
* **0.1.6** Defer button action until animation completes
|
||||||
|
* **0.1.5** Exposed dialog properties<br>(titleText, messageText, image, buttonAlignment, transitionStyle)
|
||||||
|
* **0.1.4** Pick transition animation style
|
||||||
|
* **0.1.3** Big screen support<br>Exposed basic shadow appearance
|
||||||
|
* **0.1.2** Exposed blur and overlay appearance
|
||||||
|
* **0.1.1** Added themeing example
|
||||||
|
* **0.1.0** Intitial version
|
||||||
|
|
||||||
|
<p> </p>
|
||||||
|
|
||||||
|
# Author
|
||||||
|
|
||||||
|
Martin Wildfeuer, mwfire@mwfire.de
|
||||||
|
for Orderella Ltd., [orderella.co.uk](http://orderella.co.uk)<br>
|
||||||
|
You might also want to follow us on Twitter, [@theMWFire](https://twitter.com/theMWFire) | [@Orderella](https://twitter.com/orderella)
|
||||||
|
|
||||||
|
# Thank you
|
||||||
|
Thanks to everyone who uses, enhances and improves this library, especially the contributors.
|
||||||
|
Moreover, thanks to KyoheiG3 for porting FXBlurView to [DynamicBlurView](https://github.com/KyoheiG3/DynamicBlurView).
|
||||||
|
|
||||||
|
<p> </p>
|
||||||
|
|
||||||
|
# License
|
||||||
|
|
||||||
|
PopupDialog is available under the MIT license. See the LICENSE file for more info.
|
||||||
5
Pods/Target Support Files/DynamicBlurView/DynamicBlurView-dummy.m
generated
Normal file
5
Pods/Target Support Files/DynamicBlurView/DynamicBlurView-dummy.m
generated
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
@interface PodsDummy_DynamicBlurView : NSObject
|
||||||
|
@end
|
||||||
|
@implementation PodsDummy_DynamicBlurView
|
||||||
|
@end
|
||||||
12
Pods/Target Support Files/DynamicBlurView/DynamicBlurView-prefix.pch
generated
Normal file
12
Pods/Target Support Files/DynamicBlurView/DynamicBlurView-prefix.pch
generated
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
#ifdef __OBJC__
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#else
|
||||||
|
#ifndef FOUNDATION_EXPORT
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
#define FOUNDATION_EXPORT extern "C"
|
||||||
|
#else
|
||||||
|
#define FOUNDATION_EXPORT extern
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
17
Pods/Target Support Files/DynamicBlurView/DynamicBlurView-umbrella.h
generated
Normal file
17
Pods/Target Support Files/DynamicBlurView/DynamicBlurView-umbrella.h
generated
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
#ifdef __OBJC__
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#else
|
||||||
|
#ifndef FOUNDATION_EXPORT
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
#define FOUNDATION_EXPORT extern "C"
|
||||||
|
#else
|
||||||
|
#define FOUNDATION_EXPORT extern
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#import "DynamicBlurView.h"
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT double DynamicBlurViewVersionNumber;
|
||||||
|
FOUNDATION_EXPORT const unsigned char DynamicBlurViewVersionString[];
|
||||||
|
|
||||||
14
Pods/Target Support Files/DynamicBlurView/DynamicBlurView.debug.xcconfig
generated
Normal file
14
Pods/Target Support Files/DynamicBlurView/DynamicBlurView.debug.xcconfig
generated
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
||||||
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/DynamicBlurView
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/DynamicBlurView" "${PODS_ROOT}/Headers/Public"
|
||||||
|
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}"
|
||||||
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE}
|
||||||
|
PODS_ROOT = ${SRCROOT}
|
||||||
|
PODS_TARGET_SRCROOT = ${PODS_ROOT}/DynamicBlurView
|
||||||
|
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||||
|
SKIP_INSTALL = YES
|
||||||
|
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
||||||
6
Pods/Target Support Files/DynamicBlurView/DynamicBlurView.modulemap
generated
Normal file
6
Pods/Target Support Files/DynamicBlurView/DynamicBlurView.modulemap
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
module DynamicBlurView {
|
||||||
|
umbrella header "DynamicBlurView-umbrella.h"
|
||||||
|
|
||||||
|
export *
|
||||||
|
module * { export * }
|
||||||
|
}
|
||||||
14
Pods/Target Support Files/DynamicBlurView/DynamicBlurView.release.xcconfig
generated
Normal file
14
Pods/Target Support Files/DynamicBlurView/DynamicBlurView.release.xcconfig
generated
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
||||||
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/DynamicBlurView
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/DynamicBlurView" "${PODS_ROOT}/Headers/Public"
|
||||||
|
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}"
|
||||||
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE}
|
||||||
|
PODS_ROOT = ${SRCROOT}
|
||||||
|
PODS_TARGET_SRCROOT = ${PODS_ROOT}/DynamicBlurView
|
||||||
|
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||||
|
SKIP_INSTALL = YES
|
||||||
|
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
||||||
@@ -516,6 +516,32 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|||||||
THE SOFTWARE.
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
|
## DynamicBlurView
|
||||||
|
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2015 Kyohei Ito
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## ESTabBarController-swift
|
## ESTabBarController-swift
|
||||||
|
|
||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
@@ -648,6 +674,30 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|||||||
THE SOFTWARE.
|
THE SOFTWARE.
|
||||||
|
|
||||||
|
|
||||||
|
## PopupDialog
|
||||||
|
|
||||||
|
Copyright (c) 2016 Orderella Ltd. (http://orderella.co.uk)
|
||||||
|
Author - Martin Wildfeuer (http://www.mwfire.de)
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
## RxCocoa
|
## RxCocoa
|
||||||
|
|
||||||
**The MIT License**
|
**The MIT License**
|
||||||
|
|||||||
@@ -693,6 +693,38 @@ THE SOFTWARE.
|
|||||||
<key>FooterText</key>
|
<key>FooterText</key>
|
||||||
<string>The MIT License (MIT)
|
<string>The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2015 Kyohei Ito
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
</string>
|
||||||
|
<key>License</key>
|
||||||
|
<string>MIT</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>DynamicBlurView</string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>The MIT License (MIT)
|
||||||
|
|
||||||
Copyright (c) 2016 lihao
|
Copyright (c) 2016 lihao
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
@@ -863,6 +895,36 @@ THE SOFTWARE.
|
|||||||
<key>Type</key>
|
<key>Type</key>
|
||||||
<string>PSGroupSpecifier</string>
|
<string>PSGroupSpecifier</string>
|
||||||
</dict>
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>FooterText</key>
|
||||||
|
<string>Copyright (c) 2016 Orderella Ltd. (http://orderella.co.uk)
|
||||||
|
Author - Martin Wildfeuer (http://www.mwfire.de)
|
||||||
|
|
||||||
|
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.
|
||||||
|
</string>
|
||||||
|
<key>License</key>
|
||||||
|
<string>MIT</string>
|
||||||
|
<key>Title</key>
|
||||||
|
<string>PopupDialog</string>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>PSGroupSpecifier</string>
|
||||||
|
</dict>
|
||||||
<dict>
|
<dict>
|
||||||
<key>FooterText</key>
|
<key>FooterText</key>
|
||||||
<string>**The MIT License**
|
<string>**The MIT License**
|
||||||
|
|||||||
@@ -4,15 +4,15 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
|||||||
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
|
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
|
||||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/AMapFoundation-NO-IDFA" "${PODS_ROOT}/AMapLocation-NO-IDFA" "${PODS_ROOT}/AMapNavi-NO-IDFA" "${PODS_ROOT}/AMapSearch-NO-IDFA" "${PODS_ROOT}/AMapTrack-NO-IDFA" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/DDZFPlayerKit_Private/DDZFPlayerKit_Private/Classes/ijkplayer" "${PODS_ROOT}/JCore" "${PODS_ROOT}/JPush"
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/AMapFoundation-NO-IDFA" "${PODS_ROOT}/AMapLocation-NO-IDFA" "${PODS_ROOT}/AMapNavi-NO-IDFA" "${PODS_ROOT}/AMapSearch-NO-IDFA" "${PODS_ROOT}/AMapTrack-NO-IDFA" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/DDZFPlayerKit_Private/DDZFPlayerKit_Private/Classes/ijkplayer" "${PODS_ROOT}/JCore" "${PODS_ROOT}/JPush"
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BRPickerView" "${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private" "${PODS_ROOT}/Headers/Public/DDCategoryKit_Private" "${PODS_ROOT}/Headers/Public/DDLogKit_Private" "${PODS_ROOT}/Headers/Public/DDMAMapKit_Private" "${PODS_ROOT}/Headers/Public/DDProgressHUDKit_Private" "${PODS_ROOT}/Headers/Public/DDWebImageKit_Private" "${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/RxCocoa" "${PODS_ROOT}/Headers/Public/SwiftyRSA" "${PODS_ROOT}/Headers/Public/TYCyclePagerView" "${PODS_ROOT}/Headers/Public/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush/Headers"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BRPickerView" "${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private" "${PODS_ROOT}/Headers/Public/DDCategoryKit_Private" "${PODS_ROOT}/Headers/Public/DDLogKit_Private" "${PODS_ROOT}/Headers/Public/DDMAMapKit_Private" "${PODS_ROOT}/Headers/Public/DDProgressHUDKit_Private" "${PODS_ROOT}/Headers/Public/DDWebImageKit_Private" "${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private" "${PODS_ROOT}/Headers/Public/DynamicBlurView" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/RxCocoa" "${PODS_ROOT}/Headers/Public/SwiftyRSA" "${PODS_ROOT}/Headers/Public/TYCyclePagerView" "${PODS_ROOT}/Headers/Public/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush/Headers"
|
||||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDBasicControlsKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDCategoryKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDMAMapKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit" "${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDWebImageKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDZFPlayerKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA" "${PODS_CONFIGURATION_BUILD_DIR}/TYCyclePagerView" "${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush" "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(SDKROOT)/usr/lib/swift
|
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDBasicControlsKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDCategoryKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDMAMapKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit" "${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDWebImageKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDZFPlayerKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DynamicBlurView" "${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/PopupDialog" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA" "${PODS_CONFIGURATION_BUILD_DIR}/TYCyclePagerView" "${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush" "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(SDKROOT)/usr/lib/swift
|
||||||
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private/DDAutoUIKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private/DDColorKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private/DDControlsKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private/DDDateKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private/DDFontKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private/DDLogKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private/DDNetworkingOfAlamofireKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private/DDPersistenceKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private/DDProgressHUDKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private/DDToastKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer/DDUIGestureRecognizer.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit/DDUIKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private/DDUtilsSwiftKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift/ESTabBarController_swift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit/SwiftEntryKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA/SwiftyRSA.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser/ZLPhotoBrowser.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/BRPickerView/BRPickerView.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private/DDBasicControlsKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDCategoryKit_Private/DDCategoryKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDMAMapKit_Private/DDMAMapKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDWebImageKit_Private/DDWebImageKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private/DDZFPlayerKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/JXCategoryView/JXCategoryView.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/MJRefresh/MJRefresh.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/TYCyclePagerView/TYCyclePagerView.modulemap"
|
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private/DDAutoUIKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private/DDColorKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private/DDControlsKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private/DDDateKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private/DDFontKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private/DDLogKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private/DDNetworkingOfAlamofireKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private/DDPersistenceKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private/DDProgressHUDKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private/DDToastKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer/DDUIGestureRecognizer.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit/DDUIKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private/DDUtilsSwiftKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DynamicBlurView/DynamicBlurView.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift/ESTabBarController_swift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PopupDialog/PopupDialog.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit/SwiftEntryKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA/SwiftyRSA.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser/ZLPhotoBrowser.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/BRPickerView/BRPickerView.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private/DDBasicControlsKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDCategoryKit_Private/DDCategoryKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDMAMapKit_Private/DDMAMapKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDWebImageKit_Private/DDWebImageKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private/DDZFPlayerKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/JXCategoryView/JXCategoryView.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/MJRefresh/MJRefresh.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/TYCyclePagerView/TYCyclePagerView.modulemap"
|
||||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"Alamofire" -l"BRPickerView" -l"DDAudioPlayerKit_Private" -l"DDAutoUIKit_Private" -l"DDBasicControlsKit_Private" -l"DDCategoryKit_Private" -l"DDColorKit_Private" -l"DDControlsKit_Private" -l"DDDateKit_Private" -l"DDFontKit_Private" -l"DDLogKit_Private" -l"DDMAMapKit_Private" -l"DDNetworkingOfAlamofireKit_Private" -l"DDPersistenceKit_Private" -l"DDProgressHUDKit_Private" -l"DDToastKit_Private" -l"DDUIGestureRecognizer" -l"DDUIKit" -l"DDUtilsSwiftKit_Private" -l"DDWebImageKit_Private" -l"DDZFPlayerKit_Private" -l"ESTabBarController-swift" -l"IQKeyboardManagerSwift" -l"JCore" -l"JPush" -l"JXCategoryView" -l"Kingfisher" -l"MJRefresh" -l"RxCocoa" -l"RxRelay" -l"RxSwift" -l"SnapKit" -l"SwiftEntryKit" -l"SwiftyRSA" -l"TYCyclePagerView" -l"ZLPhotoBrowser" -l"bz2" -l"c++" -l"resolv" -l"sqlite3" -l"swiftCoreGraphics" -l"z" -framework "AMapFoundationKit" -framework "AMapLocationKit" -framework "AMapNaviKit" -framework "AMapSearchKit" -framework "AMapTrackKit" -framework "AVFoundation" -framework "Accelerate" -framework "AudioToolbox" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreMedia" -framework "CoreMotion" -framework "CoreServices" -framework "CoreTelephony" -framework "CoreText" -framework "CoreVideo" -framework "ExternalAccessory" -framework "Foundation" -framework "GLKit" -framework "IJKMediaFramework" -framework "ImageIO" -framework "MapKit" -framework "MediaPlayer" -framework "MobileCoreServices" -framework "OpenGLES" -framework "Photos" -framework "PhotosUI" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "VideoToolbox" -framework "WebKit" -weak_framework "AppTrackingTransparency" -weak_framework "Combine" -weak_framework "SwiftUI" -weak_framework "UserNotifications"
|
OTHER_LDFLAGS = $(inherited) -ObjC -l"Alamofire" -l"BRPickerView" -l"DDAudioPlayerKit_Private" -l"DDAutoUIKit_Private" -l"DDBasicControlsKit_Private" -l"DDCategoryKit_Private" -l"DDColorKit_Private" -l"DDControlsKit_Private" -l"DDDateKit_Private" -l"DDFontKit_Private" -l"DDLogKit_Private" -l"DDMAMapKit_Private" -l"DDNetworkingOfAlamofireKit_Private" -l"DDPersistenceKit_Private" -l"DDProgressHUDKit_Private" -l"DDToastKit_Private" -l"DDUIGestureRecognizer" -l"DDUIKit" -l"DDUtilsSwiftKit_Private" -l"DDWebImageKit_Private" -l"DDZFPlayerKit_Private" -l"DynamicBlurView" -l"ESTabBarController-swift" -l"IQKeyboardManagerSwift" -l"JCore" -l"JPush" -l"JXCategoryView" -l"Kingfisher" -l"MJRefresh" -l"PopupDialog" -l"RxCocoa" -l"RxRelay" -l"RxSwift" -l"SnapKit" -l"SwiftEntryKit" -l"SwiftyRSA" -l"TYCyclePagerView" -l"ZLPhotoBrowser" -l"bz2" -l"c++" -l"resolv" -l"sqlite3" -l"swiftCoreGraphics" -l"z" -framework "AMapFoundationKit" -framework "AMapLocationKit" -framework "AMapNaviKit" -framework "AMapSearchKit" -framework "AMapTrackKit" -framework "AVFoundation" -framework "Accelerate" -framework "AudioToolbox" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreMedia" -framework "CoreMotion" -framework "CoreServices" -framework "CoreTelephony" -framework "CoreText" -framework "CoreVideo" -framework "ExternalAccessory" -framework "Foundation" -framework "GLKit" -framework "IJKMediaFramework" -framework "ImageIO" -framework "MapKit" -framework "MediaPlayer" -framework "MobileCoreServices" -framework "OpenGLES" -framework "Photos" -framework "PhotosUI" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "VideoToolbox" -framework "WebKit" -weak_framework "AppTrackingTransparency" -weak_framework "Combine" -weak_framework "SwiftUI" -weak_framework "UserNotifications"
|
||||||
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private/DDAutoUIKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private/DDColorKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private/DDControlsKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private/DDDateKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private/DDFontKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private/DDLogKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private/DDNetworkingOfAlamofireKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private/DDPersistenceKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private/DDProgressHUDKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private/DDToastKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer/DDUIGestureRecognizer.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit/DDUIKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private/DDUtilsSwiftKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift/ESTabBarController_swift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit/SwiftEntryKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA/SwiftyRSA.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser/ZLPhotoBrowser.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/BRPickerView/BRPickerView.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private/DDBasicControlsKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDCategoryKit_Private/DDCategoryKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDMAMapKit_Private/DDMAMapKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDWebImageKit_Private/DDWebImageKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private/DDZFPlayerKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/JXCategoryView/JXCategoryView.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/MJRefresh/MJRefresh.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/TYCyclePagerView/TYCyclePagerView.modulemap"
|
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private/DDAutoUIKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private/DDColorKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private/DDControlsKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private/DDDateKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private/DDFontKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private/DDLogKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private/DDNetworkingOfAlamofireKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private/DDPersistenceKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private/DDProgressHUDKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private/DDToastKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer/DDUIGestureRecognizer.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit/DDUIKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private/DDUtilsSwiftKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DynamicBlurView/DynamicBlurView.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift/ESTabBarController_swift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PopupDialog/PopupDialog.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit/SwiftEntryKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA/SwiftyRSA.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser/ZLPhotoBrowser.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/BRPickerView/BRPickerView.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private/DDBasicControlsKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDCategoryKit_Private/DDCategoryKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDMAMapKit_Private/DDMAMapKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDWebImageKit_Private/DDWebImageKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private/DDZFPlayerKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/JXCategoryView/JXCategoryView.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/MJRefresh/MJRefresh.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/TYCyclePagerView/TYCyclePagerView.modulemap"
|
||||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
||||||
PODS_ROOT = ${SRCROOT}/Pods
|
PODS_ROOT = ${SRCROOT}/Pods
|
||||||
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
|
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
|
||||||
SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit" "${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA" "${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser"
|
SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit" "${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DynamicBlurView" "${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/PopupDialog" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA" "${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser"
|
||||||
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
||||||
|
|||||||
@@ -4,15 +4,15 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
|||||||
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
|
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
|
||||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/AMapFoundation-NO-IDFA" "${PODS_ROOT}/AMapLocation-NO-IDFA" "${PODS_ROOT}/AMapNavi-NO-IDFA" "${PODS_ROOT}/AMapSearch-NO-IDFA" "${PODS_ROOT}/AMapTrack-NO-IDFA" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/DDZFPlayerKit_Private/DDZFPlayerKit_Private/Classes/ijkplayer" "${PODS_ROOT}/JCore" "${PODS_ROOT}/JPush"
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/AMapFoundation-NO-IDFA" "${PODS_ROOT}/AMapLocation-NO-IDFA" "${PODS_ROOT}/AMapNavi-NO-IDFA" "${PODS_ROOT}/AMapSearch-NO-IDFA" "${PODS_ROOT}/AMapTrack-NO-IDFA" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/DDZFPlayerKit_Private/DDZFPlayerKit_Private/Classes/ijkplayer" "${PODS_ROOT}/JCore" "${PODS_ROOT}/JPush"
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BRPickerView" "${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private" "${PODS_ROOT}/Headers/Public/DDCategoryKit_Private" "${PODS_ROOT}/Headers/Public/DDLogKit_Private" "${PODS_ROOT}/Headers/Public/DDMAMapKit_Private" "${PODS_ROOT}/Headers/Public/DDProgressHUDKit_Private" "${PODS_ROOT}/Headers/Public/DDWebImageKit_Private" "${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/RxCocoa" "${PODS_ROOT}/Headers/Public/SwiftyRSA" "${PODS_ROOT}/Headers/Public/TYCyclePagerView" "${PODS_ROOT}/Headers/Public/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush/Headers"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BRPickerView" "${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private" "${PODS_ROOT}/Headers/Public/DDCategoryKit_Private" "${PODS_ROOT}/Headers/Public/DDLogKit_Private" "${PODS_ROOT}/Headers/Public/DDMAMapKit_Private" "${PODS_ROOT}/Headers/Public/DDProgressHUDKit_Private" "${PODS_ROOT}/Headers/Public/DDWebImageKit_Private" "${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private" "${PODS_ROOT}/Headers/Public/DynamicBlurView" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/RxCocoa" "${PODS_ROOT}/Headers/Public/SwiftyRSA" "${PODS_ROOT}/Headers/Public/TYCyclePagerView" "${PODS_ROOT}/Headers/Public/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush/Headers"
|
||||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDBasicControlsKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDCategoryKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDMAMapKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit" "${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDWebImageKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDZFPlayerKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA" "${PODS_CONFIGURATION_BUILD_DIR}/TYCyclePagerView" "${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush" "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(SDKROOT)/usr/lib/swift
|
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDBasicControlsKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDCategoryKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDMAMapKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit" "${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDWebImageKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDZFPlayerKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DynamicBlurView" "${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/PopupDialog" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA" "${PODS_CONFIGURATION_BUILD_DIR}/TYCyclePagerView" "${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush" "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(SDKROOT)/usr/lib/swift
|
||||||
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private/DDAutoUIKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private/DDColorKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private/DDControlsKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private/DDDateKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private/DDFontKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private/DDLogKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private/DDNetworkingOfAlamofireKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private/DDPersistenceKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private/DDProgressHUDKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private/DDToastKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer/DDUIGestureRecognizer.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit/DDUIKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private/DDUtilsSwiftKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift/ESTabBarController_swift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit/SwiftEntryKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA/SwiftyRSA.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser/ZLPhotoBrowser.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/BRPickerView/BRPickerView.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private/DDBasicControlsKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDCategoryKit_Private/DDCategoryKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDMAMapKit_Private/DDMAMapKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDWebImageKit_Private/DDWebImageKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private/DDZFPlayerKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/JXCategoryView/JXCategoryView.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/MJRefresh/MJRefresh.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/TYCyclePagerView/TYCyclePagerView.modulemap"
|
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private/DDAutoUIKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private/DDColorKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private/DDControlsKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private/DDDateKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private/DDFontKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private/DDLogKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private/DDNetworkingOfAlamofireKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private/DDPersistenceKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private/DDProgressHUDKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private/DDToastKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer/DDUIGestureRecognizer.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit/DDUIKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private/DDUtilsSwiftKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DynamicBlurView/DynamicBlurView.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift/ESTabBarController_swift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PopupDialog/PopupDialog.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit/SwiftEntryKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA/SwiftyRSA.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser/ZLPhotoBrowser.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/BRPickerView/BRPickerView.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private/DDBasicControlsKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDCategoryKit_Private/DDCategoryKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDMAMapKit_Private/DDMAMapKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDWebImageKit_Private/DDWebImageKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private/DDZFPlayerKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/JXCategoryView/JXCategoryView.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/MJRefresh/MJRefresh.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/TYCyclePagerView/TYCyclePagerView.modulemap"
|
||||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"Alamofire" -l"BRPickerView" -l"DDAudioPlayerKit_Private" -l"DDAutoUIKit_Private" -l"DDBasicControlsKit_Private" -l"DDCategoryKit_Private" -l"DDColorKit_Private" -l"DDControlsKit_Private" -l"DDDateKit_Private" -l"DDFontKit_Private" -l"DDLogKit_Private" -l"DDMAMapKit_Private" -l"DDNetworkingOfAlamofireKit_Private" -l"DDPersistenceKit_Private" -l"DDProgressHUDKit_Private" -l"DDToastKit_Private" -l"DDUIGestureRecognizer" -l"DDUIKit" -l"DDUtilsSwiftKit_Private" -l"DDWebImageKit_Private" -l"DDZFPlayerKit_Private" -l"ESTabBarController-swift" -l"IQKeyboardManagerSwift" -l"JCore" -l"JPush" -l"JXCategoryView" -l"Kingfisher" -l"MJRefresh" -l"RxCocoa" -l"RxRelay" -l"RxSwift" -l"SnapKit" -l"SwiftEntryKit" -l"SwiftyRSA" -l"TYCyclePagerView" -l"ZLPhotoBrowser" -l"bz2" -l"c++" -l"resolv" -l"sqlite3" -l"swiftCoreGraphics" -l"z" -framework "AMapFoundationKit" -framework "AMapLocationKit" -framework "AMapNaviKit" -framework "AMapSearchKit" -framework "AMapTrackKit" -framework "AVFoundation" -framework "Accelerate" -framework "AudioToolbox" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreMedia" -framework "CoreMotion" -framework "CoreServices" -framework "CoreTelephony" -framework "CoreText" -framework "CoreVideo" -framework "ExternalAccessory" -framework "Foundation" -framework "GLKit" -framework "IJKMediaFramework" -framework "ImageIO" -framework "MapKit" -framework "MediaPlayer" -framework "MobileCoreServices" -framework "OpenGLES" -framework "Photos" -framework "PhotosUI" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "VideoToolbox" -framework "WebKit" -weak_framework "AppTrackingTransparency" -weak_framework "Combine" -weak_framework "SwiftUI" -weak_framework "UserNotifications"
|
OTHER_LDFLAGS = $(inherited) -ObjC -l"Alamofire" -l"BRPickerView" -l"DDAudioPlayerKit_Private" -l"DDAutoUIKit_Private" -l"DDBasicControlsKit_Private" -l"DDCategoryKit_Private" -l"DDColorKit_Private" -l"DDControlsKit_Private" -l"DDDateKit_Private" -l"DDFontKit_Private" -l"DDLogKit_Private" -l"DDMAMapKit_Private" -l"DDNetworkingOfAlamofireKit_Private" -l"DDPersistenceKit_Private" -l"DDProgressHUDKit_Private" -l"DDToastKit_Private" -l"DDUIGestureRecognizer" -l"DDUIKit" -l"DDUtilsSwiftKit_Private" -l"DDWebImageKit_Private" -l"DDZFPlayerKit_Private" -l"DynamicBlurView" -l"ESTabBarController-swift" -l"IQKeyboardManagerSwift" -l"JCore" -l"JPush" -l"JXCategoryView" -l"Kingfisher" -l"MJRefresh" -l"PopupDialog" -l"RxCocoa" -l"RxRelay" -l"RxSwift" -l"SnapKit" -l"SwiftEntryKit" -l"SwiftyRSA" -l"TYCyclePagerView" -l"ZLPhotoBrowser" -l"bz2" -l"c++" -l"resolv" -l"sqlite3" -l"swiftCoreGraphics" -l"z" -framework "AMapFoundationKit" -framework "AMapLocationKit" -framework "AMapNaviKit" -framework "AMapSearchKit" -framework "AMapTrackKit" -framework "AVFoundation" -framework "Accelerate" -framework "AudioToolbox" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreMedia" -framework "CoreMotion" -framework "CoreServices" -framework "CoreTelephony" -framework "CoreText" -framework "CoreVideo" -framework "ExternalAccessory" -framework "Foundation" -framework "GLKit" -framework "IJKMediaFramework" -framework "ImageIO" -framework "MapKit" -framework "MediaPlayer" -framework "MobileCoreServices" -framework "OpenGLES" -framework "Photos" -framework "PhotosUI" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "VideoToolbox" -framework "WebKit" -weak_framework "AppTrackingTransparency" -weak_framework "Combine" -weak_framework "SwiftUI" -weak_framework "UserNotifications"
|
||||||
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private/DDAutoUIKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private/DDColorKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private/DDControlsKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private/DDDateKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private/DDFontKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private/DDLogKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private/DDNetworkingOfAlamofireKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private/DDPersistenceKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private/DDProgressHUDKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private/DDToastKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer/DDUIGestureRecognizer.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit/DDUIKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private/DDUtilsSwiftKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift/ESTabBarController_swift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit/SwiftEntryKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA/SwiftyRSA.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser/ZLPhotoBrowser.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/BRPickerView/BRPickerView.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private/DDBasicControlsKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDCategoryKit_Private/DDCategoryKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDMAMapKit_Private/DDMAMapKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDWebImageKit_Private/DDWebImageKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private/DDZFPlayerKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/JXCategoryView/JXCategoryView.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/MJRefresh/MJRefresh.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/TYCyclePagerView/TYCyclePagerView.modulemap"
|
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private/DDAutoUIKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private/DDColorKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private/DDControlsKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private/DDDateKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private/DDFontKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private/DDLogKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private/DDNetworkingOfAlamofireKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private/DDPersistenceKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private/DDProgressHUDKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private/DDToastKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer/DDUIGestureRecognizer.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit/DDUIKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private/DDUtilsSwiftKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DynamicBlurView/DynamicBlurView.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift/ESTabBarController_swift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PopupDialog/PopupDialog.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit/SwiftEntryKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA/SwiftyRSA.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser/ZLPhotoBrowser.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/BRPickerView/BRPickerView.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private/DDBasicControlsKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDCategoryKit_Private/DDCategoryKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDMAMapKit_Private/DDMAMapKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDWebImageKit_Private/DDWebImageKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private/DDZFPlayerKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/JXCategoryView/JXCategoryView.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/MJRefresh/MJRefresh.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/TYCyclePagerView/TYCyclePagerView.modulemap"
|
||||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
||||||
PODS_ROOT = ${SRCROOT}/Pods
|
PODS_ROOT = ${SRCROOT}/Pods
|
||||||
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
|
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
|
||||||
SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit" "${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA" "${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser"
|
SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit" "${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DynamicBlurView" "${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/PopupDialog" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA" "${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser"
|
||||||
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
||||||
|
|||||||
@@ -4,15 +4,15 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
|||||||
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
|
EXCLUDED_ARCHS[sdk=iphonesimulator*] = arm64
|
||||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/AMapFoundation-NO-IDFA" "${PODS_ROOT}/AMapLocation-NO-IDFA" "${PODS_ROOT}/AMapNavi-NO-IDFA" "${PODS_ROOT}/AMapSearch-NO-IDFA" "${PODS_ROOT}/AMapTrack-NO-IDFA" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/DDZFPlayerKit_Private/DDZFPlayerKit_Private/Classes/ijkplayer" "${PODS_ROOT}/JCore" "${PODS_ROOT}/JPush"
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/AMapFoundation-NO-IDFA" "${PODS_ROOT}/AMapLocation-NO-IDFA" "${PODS_ROOT}/AMapNavi-NO-IDFA" "${PODS_ROOT}/AMapSearch-NO-IDFA" "${PODS_ROOT}/AMapTrack-NO-IDFA" "${PODS_ROOT}/Bugly" "${PODS_ROOT}/DDZFPlayerKit_Private/DDZFPlayerKit_Private/Classes/ijkplayer" "${PODS_ROOT}/JCore" "${PODS_ROOT}/JPush"
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BRPickerView" "${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private" "${PODS_ROOT}/Headers/Public/DDCategoryKit_Private" "${PODS_ROOT}/Headers/Public/DDLogKit_Private" "${PODS_ROOT}/Headers/Public/DDMAMapKit_Private" "${PODS_ROOT}/Headers/Public/DDProgressHUDKit_Private" "${PODS_ROOT}/Headers/Public/DDWebImageKit_Private" "${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/RxCocoa" "${PODS_ROOT}/Headers/Public/SwiftyRSA" "${PODS_ROOT}/Headers/Public/TYCyclePagerView" "${PODS_ROOT}/Headers/Public/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush/Headers"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BRPickerView" "${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private" "${PODS_ROOT}/Headers/Public/DDCategoryKit_Private" "${PODS_ROOT}/Headers/Public/DDLogKit_Private" "${PODS_ROOT}/Headers/Public/DDMAMapKit_Private" "${PODS_ROOT}/Headers/Public/DDProgressHUDKit_Private" "${PODS_ROOT}/Headers/Public/DDWebImageKit_Private" "${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private" "${PODS_ROOT}/Headers/Public/DynamicBlurView" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/RxCocoa" "${PODS_ROOT}/Headers/Public/SwiftyRSA" "${PODS_ROOT}/Headers/Public/TYCyclePagerView" "${PODS_ROOT}/Headers/Public/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore/Headers" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush/Headers"
|
||||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDBasicControlsKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDCategoryKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDMAMapKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit" "${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDWebImageKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDZFPlayerKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA" "${PODS_CONFIGURATION_BUILD_DIR}/TYCyclePagerView" "${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush" "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(SDKROOT)/usr/lib/swift
|
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/BRPickerView" "${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDBasicControlsKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDCategoryKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDMAMapKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit" "${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDWebImageKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDZFPlayerKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DynamicBlurView" "${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/JXCategoryView" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/MJRefresh" "${PODS_CONFIGURATION_BUILD_DIR}/PopupDialog" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA" "${PODS_CONFIGURATION_BUILD_DIR}/TYCyclePagerView" "${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JCore" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPush" "${TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift $(SDKROOT)/usr/lib/swift
|
||||||
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private/DDAutoUIKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private/DDColorKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private/DDControlsKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private/DDDateKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private/DDFontKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private/DDLogKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private/DDNetworkingOfAlamofireKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private/DDPersistenceKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private/DDProgressHUDKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private/DDToastKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer/DDUIGestureRecognizer.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit/DDUIKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private/DDUtilsSwiftKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift/ESTabBarController_swift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit/SwiftEntryKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA/SwiftyRSA.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser/ZLPhotoBrowser.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/BRPickerView/BRPickerView.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private/DDBasicControlsKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDCategoryKit_Private/DDCategoryKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDMAMapKit_Private/DDMAMapKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDWebImageKit_Private/DDWebImageKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private/DDZFPlayerKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/JXCategoryView/JXCategoryView.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/MJRefresh/MJRefresh.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/TYCyclePagerView/TYCyclePagerView.modulemap"
|
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private/DDAutoUIKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private/DDColorKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private/DDControlsKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private/DDDateKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private/DDFontKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private/DDLogKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private/DDNetworkingOfAlamofireKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private/DDPersistenceKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private/DDProgressHUDKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private/DDToastKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer/DDUIGestureRecognizer.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit/DDUIKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private/DDUtilsSwiftKit_Private.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DynamicBlurView/DynamicBlurView.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift/ESTabBarController_swift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PopupDialog/PopupDialog.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit/SwiftEntryKit.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA/SwiftyRSA.modulemap" -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser/ZLPhotoBrowser.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/BRPickerView/BRPickerView.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private/DDBasicControlsKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDCategoryKit_Private/DDCategoryKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDMAMapKit_Private/DDMAMapKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDWebImageKit_Private/DDWebImageKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private/DDZFPlayerKit_Private.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/JXCategoryView/JXCategoryView.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/MJRefresh/MJRefresh.modulemap" -fmodule-map-file="${PODS_ROOT}/Headers/Public/TYCyclePagerView/TYCyclePagerView.modulemap"
|
||||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"Alamofire" -l"BRPickerView" -l"DDAudioPlayerKit_Private" -l"DDAutoUIKit_Private" -l"DDBasicControlsKit_Private" -l"DDCategoryKit_Private" -l"DDColorKit_Private" -l"DDControlsKit_Private" -l"DDDateKit_Private" -l"DDFontKit_Private" -l"DDLogKit_Private" -l"DDMAMapKit_Private" -l"DDNetworkingOfAlamofireKit_Private" -l"DDPersistenceKit_Private" -l"DDProgressHUDKit_Private" -l"DDToastKit_Private" -l"DDUIGestureRecognizer" -l"DDUIKit" -l"DDUtilsSwiftKit_Private" -l"DDWebImageKit_Private" -l"DDZFPlayerKit_Private" -l"ESTabBarController-swift" -l"IQKeyboardManagerSwift" -l"JCore" -l"JPush" -l"JXCategoryView" -l"Kingfisher" -l"MJRefresh" -l"RxCocoa" -l"RxRelay" -l"RxSwift" -l"SnapKit" -l"SwiftEntryKit" -l"SwiftyRSA" -l"TYCyclePagerView" -l"ZLPhotoBrowser" -l"bz2" -l"c++" -l"resolv" -l"sqlite3" -l"swiftCoreGraphics" -l"z" -framework "AMapFoundationKit" -framework "AMapLocationKit" -framework "AMapNaviKit" -framework "AMapSearchKit" -framework "AMapTrackKit" -framework "AVFoundation" -framework "Accelerate" -framework "AudioToolbox" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreMedia" -framework "CoreMotion" -framework "CoreServices" -framework "CoreTelephony" -framework "CoreText" -framework "CoreVideo" -framework "ExternalAccessory" -framework "Foundation" -framework "GLKit" -framework "IJKMediaFramework" -framework "ImageIO" -framework "MapKit" -framework "MediaPlayer" -framework "MobileCoreServices" -framework "OpenGLES" -framework "Photos" -framework "PhotosUI" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "VideoToolbox" -framework "WebKit" -weak_framework "AppTrackingTransparency" -weak_framework "Combine" -weak_framework "SwiftUI" -weak_framework "UserNotifications"
|
OTHER_LDFLAGS = $(inherited) -ObjC -l"Alamofire" -l"BRPickerView" -l"DDAudioPlayerKit_Private" -l"DDAutoUIKit_Private" -l"DDBasicControlsKit_Private" -l"DDCategoryKit_Private" -l"DDColorKit_Private" -l"DDControlsKit_Private" -l"DDDateKit_Private" -l"DDFontKit_Private" -l"DDLogKit_Private" -l"DDMAMapKit_Private" -l"DDNetworkingOfAlamofireKit_Private" -l"DDPersistenceKit_Private" -l"DDProgressHUDKit_Private" -l"DDToastKit_Private" -l"DDUIGestureRecognizer" -l"DDUIKit" -l"DDUtilsSwiftKit_Private" -l"DDWebImageKit_Private" -l"DDZFPlayerKit_Private" -l"DynamicBlurView" -l"ESTabBarController-swift" -l"IQKeyboardManagerSwift" -l"JCore" -l"JPush" -l"JXCategoryView" -l"Kingfisher" -l"MJRefresh" -l"PopupDialog" -l"RxCocoa" -l"RxRelay" -l"RxSwift" -l"SnapKit" -l"SwiftEntryKit" -l"SwiftyRSA" -l"TYCyclePagerView" -l"ZLPhotoBrowser" -l"bz2" -l"c++" -l"resolv" -l"sqlite3" -l"swiftCoreGraphics" -l"z" -framework "AMapFoundationKit" -framework "AMapLocationKit" -framework "AMapNaviKit" -framework "AMapSearchKit" -framework "AMapTrackKit" -framework "AVFoundation" -framework "Accelerate" -framework "AudioToolbox" -framework "Bugly" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreLocation" -framework "CoreMedia" -framework "CoreMotion" -framework "CoreServices" -framework "CoreTelephony" -framework "CoreText" -framework "CoreVideo" -framework "ExternalAccessory" -framework "Foundation" -framework "GLKit" -framework "IJKMediaFramework" -framework "ImageIO" -framework "MapKit" -framework "MediaPlayer" -framework "MobileCoreServices" -framework "OpenGLES" -framework "Photos" -framework "PhotosUI" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -framework "VideoToolbox" -framework "WebKit" -weak_framework "AppTrackingTransparency" -weak_framework "Combine" -weak_framework "SwiftUI" -weak_framework "UserNotifications"
|
||||||
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private/DDAutoUIKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private/DDColorKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private/DDControlsKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private/DDDateKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private/DDFontKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private/DDLogKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private/DDNetworkingOfAlamofireKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private/DDPersistenceKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private/DDProgressHUDKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private/DDToastKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer/DDUIGestureRecognizer.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit/DDUIKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private/DDUtilsSwiftKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift/ESTabBarController_swift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit/SwiftEntryKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA/SwiftyRSA.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser/ZLPhotoBrowser.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/BRPickerView/BRPickerView.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private/DDBasicControlsKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDCategoryKit_Private/DDCategoryKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDMAMapKit_Private/DDMAMapKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDWebImageKit_Private/DDWebImageKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private/DDZFPlayerKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/JXCategoryView/JXCategoryView.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/MJRefresh/MJRefresh.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/TYCyclePagerView/TYCyclePagerView.modulemap"
|
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Alamofire/Alamofire.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private/DDAudioPlayerKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private/DDAutoUIKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private/DDColorKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private/DDControlsKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private/DDDateKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private/DDFontKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private/DDLogKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private/DDNetworkingOfAlamofireKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private/DDPersistenceKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private/DDProgressHUDKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private/DDToastKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer/DDUIGestureRecognizer.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit/DDUIKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private/DDUtilsSwiftKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DynamicBlurView/DynamicBlurView.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift/ESTabBarController_swift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift/IQKeyboardManagerSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher/Kingfisher.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/PopupDialog/PopupDialog.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SnapKit/SnapKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit/SwiftEntryKit.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA/SwiftyRSA.modulemap" -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser/ZLPhotoBrowser.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/BRPickerView/BRPickerView.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private/DDBasicControlsKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDCategoryKit_Private/DDCategoryKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDMAMapKit_Private/DDMAMapKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDWebImageKit_Private/DDWebImageKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private/DDZFPlayerKit_Private.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/JXCategoryView/JXCategoryView.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/MJRefresh/MJRefresh.modulemap" -Xcc -fmodule-map-file="${PODS_ROOT}/Headers/Public/TYCyclePagerView/TYCyclePagerView.modulemap"
|
||||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
|
||||||
PODS_ROOT = ${SRCROOT}/Pods
|
PODS_ROOT = ${SRCROOT}/Pods
|
||||||
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
|
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
|
||||||
SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit" "${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA" "${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser"
|
SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Alamofire" "${PODS_CONFIGURATION_BUILD_DIR}/DDAudioPlayerKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDAutoUIKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDColorKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDControlsKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDDateKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDFontKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDLogKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDNetworkingOfAlamofireKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDPersistenceKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDProgressHUDKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDToastKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIGestureRecognizer" "${PODS_CONFIGURATION_BUILD_DIR}/DDUIKit" "${PODS_CONFIGURATION_BUILD_DIR}/DDUtilsSwiftKit_Private" "${PODS_CONFIGURATION_BUILD_DIR}/DynamicBlurView" "${PODS_CONFIGURATION_BUILD_DIR}/ESTabBarController-swift" "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManagerSwift" "${PODS_CONFIGURATION_BUILD_DIR}/Kingfisher" "${PODS_CONFIGURATION_BUILD_DIR}/PopupDialog" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/SnapKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftEntryKit" "${PODS_CONFIGURATION_BUILD_DIR}/SwiftyRSA" "${PODS_CONFIGURATION_BUILD_DIR}/ZLPhotoBrowser"
|
||||||
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
||||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/JPushExtension"
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/JPushExtension"
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BRPickerView" "${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private" "${PODS_ROOT}/Headers/Public/DDCategoryKit_Private" "${PODS_ROOT}/Headers/Public/DDLogKit_Private" "${PODS_ROOT}/Headers/Public/DDMAMapKit_Private" "${PODS_ROOT}/Headers/Public/DDProgressHUDKit_Private" "${PODS_ROOT}/Headers/Public/DDWebImageKit_Private" "${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/RxCocoa" "${PODS_ROOT}/Headers/Public/SwiftyRSA" "${PODS_ROOT}/Headers/Public/TYCyclePagerView" "${PODS_ROOT}/Headers/Public/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension/Headers"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BRPickerView" "${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private" "${PODS_ROOT}/Headers/Public/DDCategoryKit_Private" "${PODS_ROOT}/Headers/Public/DDLogKit_Private" "${PODS_ROOT}/Headers/Public/DDMAMapKit_Private" "${PODS_ROOT}/Headers/Public/DDProgressHUDKit_Private" "${PODS_ROOT}/Headers/Public/DDWebImageKit_Private" "${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private" "${PODS_ROOT}/Headers/Public/DynamicBlurView" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/RxCocoa" "${PODS_ROOT}/Headers/Public/SwiftyRSA" "${PODS_ROOT}/Headers/Public/TYCyclePagerView" "${PODS_ROOT}/Headers/Public/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension/Headers"
|
||||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension"
|
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension"
|
||||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"JPushExtension" -l"resolv" -l"z" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreTelephony" -framework "Foundation" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -weak_framework "UserNotifications"
|
OTHER_LDFLAGS = $(inherited) -ObjC -l"JPushExtension" -l"resolv" -l"z" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreTelephony" -framework "Foundation" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -weak_framework "UserNotifications"
|
||||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
||||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/JPushExtension"
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/JPushExtension"
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BRPickerView" "${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private" "${PODS_ROOT}/Headers/Public/DDCategoryKit_Private" "${PODS_ROOT}/Headers/Public/DDLogKit_Private" "${PODS_ROOT}/Headers/Public/DDMAMapKit_Private" "${PODS_ROOT}/Headers/Public/DDProgressHUDKit_Private" "${PODS_ROOT}/Headers/Public/DDWebImageKit_Private" "${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/RxCocoa" "${PODS_ROOT}/Headers/Public/SwiftyRSA" "${PODS_ROOT}/Headers/Public/TYCyclePagerView" "${PODS_ROOT}/Headers/Public/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension/Headers"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BRPickerView" "${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private" "${PODS_ROOT}/Headers/Public/DDCategoryKit_Private" "${PODS_ROOT}/Headers/Public/DDLogKit_Private" "${PODS_ROOT}/Headers/Public/DDMAMapKit_Private" "${PODS_ROOT}/Headers/Public/DDProgressHUDKit_Private" "${PODS_ROOT}/Headers/Public/DDWebImageKit_Private" "${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private" "${PODS_ROOT}/Headers/Public/DynamicBlurView" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/RxCocoa" "${PODS_ROOT}/Headers/Public/SwiftyRSA" "${PODS_ROOT}/Headers/Public/TYCyclePagerView" "${PODS_ROOT}/Headers/Public/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension/Headers"
|
||||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension"
|
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension"
|
||||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"JPushExtension" -l"resolv" -l"z" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreTelephony" -framework "Foundation" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -weak_framework "UserNotifications"
|
OTHER_LDFLAGS = $(inherited) -ObjC -l"JPushExtension" -l"resolv" -l"z" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreTelephony" -framework "Foundation" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -weak_framework "UserNotifications"
|
||||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
||||||
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/JPushExtension"
|
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/JPushExtension"
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BRPickerView" "${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private" "${PODS_ROOT}/Headers/Public/DDCategoryKit_Private" "${PODS_ROOT}/Headers/Public/DDLogKit_Private" "${PODS_ROOT}/Headers/Public/DDMAMapKit_Private" "${PODS_ROOT}/Headers/Public/DDProgressHUDKit_Private" "${PODS_ROOT}/Headers/Public/DDWebImageKit_Private" "${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/RxCocoa" "${PODS_ROOT}/Headers/Public/SwiftyRSA" "${PODS_ROOT}/Headers/Public/TYCyclePagerView" "${PODS_ROOT}/Headers/Public/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension/Headers"
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/BRPickerView" "${PODS_ROOT}/Headers/Public/DDBasicControlsKit_Private" "${PODS_ROOT}/Headers/Public/DDCategoryKit_Private" "${PODS_ROOT}/Headers/Public/DDLogKit_Private" "${PODS_ROOT}/Headers/Public/DDMAMapKit_Private" "${PODS_ROOT}/Headers/Public/DDProgressHUDKit_Private" "${PODS_ROOT}/Headers/Public/DDWebImageKit_Private" "${PODS_ROOT}/Headers/Public/DDZFPlayerKit_Private" "${PODS_ROOT}/Headers/Public/DynamicBlurView" "${PODS_ROOT}/Headers/Public/JXCategoryView" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/RxCocoa" "${PODS_ROOT}/Headers/Public/SwiftyRSA" "${PODS_ROOT}/Headers/Public/TYCyclePagerView" "${PODS_ROOT}/Headers/Public/ZLPhotoBrowser" "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension/Headers"
|
||||||
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension"
|
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_XCFRAMEWORKS_BUILD_DIR}/JPushExtension"
|
||||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"JPushExtension" -l"resolv" -l"z" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreTelephony" -framework "Foundation" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -weak_framework "UserNotifications"
|
OTHER_LDFLAGS = $(inherited) -ObjC -l"JPushExtension" -l"resolv" -l"z" -framework "CFNetwork" -framework "CoreFoundation" -framework "CoreGraphics" -framework "CoreTelephony" -framework "Foundation" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -weak_framework "UserNotifications"
|
||||||
PODS_BUILD_DIR = ${BUILD_DIR}
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
|
|||||||
5
Pods/Target Support Files/PopupDialog/PopupDialog-dummy.m
generated
Normal file
5
Pods/Target Support Files/PopupDialog/PopupDialog-dummy.m
generated
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
@interface PodsDummy_PopupDialog : NSObject
|
||||||
|
@end
|
||||||
|
@implementation PodsDummy_PopupDialog
|
||||||
|
@end
|
||||||
12
Pods/Target Support Files/PopupDialog/PopupDialog-prefix.pch
generated
Normal file
12
Pods/Target Support Files/PopupDialog/PopupDialog-prefix.pch
generated
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
#ifdef __OBJC__
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#else
|
||||||
|
#ifndef FOUNDATION_EXPORT
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
#define FOUNDATION_EXPORT extern "C"
|
||||||
|
#else
|
||||||
|
#define FOUNDATION_EXPORT extern
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
16
Pods/Target Support Files/PopupDialog/PopupDialog-umbrella.h
generated
Normal file
16
Pods/Target Support Files/PopupDialog/PopupDialog-umbrella.h
generated
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
#ifdef __OBJC__
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
#else
|
||||||
|
#ifndef FOUNDATION_EXPORT
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
#define FOUNDATION_EXPORT extern "C"
|
||||||
|
#else
|
||||||
|
#define FOUNDATION_EXPORT extern
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
FOUNDATION_EXPORT double PopupDialogVersionNumber;
|
||||||
|
FOUNDATION_EXPORT const unsigned char PopupDialogVersionString[];
|
||||||
|
|
||||||
16
Pods/Target Support Files/PopupDialog/PopupDialog.debug.xcconfig
generated
Normal file
16
Pods/Target Support Files/PopupDialog/PopupDialog.debug.xcconfig
generated
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
||||||
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/PopupDialog
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public"
|
||||||
|
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DynamicBlurView/DynamicBlurView.modulemap"
|
||||||
|
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DynamicBlurView/DynamicBlurView.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}"
|
||||||
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE}
|
||||||
|
PODS_ROOT = ${SRCROOT}
|
||||||
|
PODS_TARGET_SRCROOT = ${PODS_ROOT}/PopupDialog
|
||||||
|
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||||
|
SKIP_INSTALL = YES
|
||||||
|
SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/DynamicBlurView"
|
||||||
|
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
||||||
6
Pods/Target Support Files/PopupDialog/PopupDialog.modulemap
generated
Normal file
6
Pods/Target Support Files/PopupDialog/PopupDialog.modulemap
generated
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
module PopupDialog {
|
||||||
|
umbrella header "PopupDialog-umbrella.h"
|
||||||
|
|
||||||
|
export *
|
||||||
|
module * { export * }
|
||||||
|
}
|
||||||
16
Pods/Target Support Files/PopupDialog/PopupDialog.release.xcconfig
generated
Normal file
16
Pods/Target Support Files/PopupDialog/PopupDialog.release.xcconfig
generated
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
|
||||||
|
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/PopupDialog
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||||
|
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public"
|
||||||
|
OTHER_CFLAGS = $(inherited) -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DynamicBlurView/DynamicBlurView.modulemap"
|
||||||
|
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -Xcc -fmodule-map-file="${PODS_CONFIGURATION_BUILD_DIR}/DynamicBlurView/DynamicBlurView.modulemap" -import-underlying-module -Xcc -fmodule-map-file="${SRCROOT}/${MODULEMAP_FILE}"
|
||||||
|
PODS_BUILD_DIR = ${BUILD_DIR}
|
||||||
|
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||||
|
PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE}
|
||||||
|
PODS_ROOT = ${SRCROOT}
|
||||||
|
PODS_TARGET_SRCROOT = ${PODS_ROOT}/PopupDialog
|
||||||
|
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
|
||||||
|
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||||
|
SKIP_INSTALL = YES
|
||||||
|
SWIFT_INCLUDE_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/DynamicBlurView"
|
||||||
|
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
|
||||||
@@ -5,17 +5,17 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<testcase classname="fastlane.lanes" name="0: default_platform" time="0.000189">
|
<testcase classname="fastlane.lanes" name="0: default_platform" time="0.00018">
|
||||||
|
|
||||||
</testcase>
|
</testcase>
|
||||||
|
|
||||||
|
|
||||||
<testcase classname="fastlane.lanes" name="1: gym" time="114.388129">
|
<testcase classname="fastlane.lanes" name="1: gym" time="117.026451">
|
||||||
|
|
||||||
</testcase>
|
</testcase>
|
||||||
|
|
||||||
|
|
||||||
<testcase classname="fastlane.lanes" name="2: pgyer" time="9.716928">
|
<testcase classname="fastlane.lanes" name="2: pgyer" time="23.061235">
|
||||||
|
|
||||||
</testcase>
|
</testcase>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user