Commit e1837f3a authored by jzhang's avatar jzhang

移除cocoapods

parent 4798268a
......@@ -40,7 +40,6 @@
697B07ED284F2E5C0051FC23 /* CompleteVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 697B07EC284F2E5C0051FC23 /* CompleteVC.swift */; };
6989B7B72852EAB90014BB5B /* wakelock.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6989B7B52852EAA20014BB5B /* wakelock.xcframework */; };
6989B7B82852EAB90014BB5B /* wakelock.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 6989B7B52852EAA20014BB5B /* wakelock.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
8DE79EDB672D5394BDEB806E /* Pods_BreastFeedingDemo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 39043640BDC7A50986C47129 /* Pods_BreastFeedingDemo.framework */; };
EA14360528E0BF1900FFBE72 /* DemoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA14360428E0BF1900FFBE72 /* DemoViewController.swift */; };
EA14360828E0CA3100FFBE72 /* LanguageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA14360628E0CA3100FFBE72 /* LanguageCell.swift */; };
EA14360928E0CA3100FFBE72 /* LanguageCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = EA14360728E0CA3100FFBE72 /* LanguageCell.xib */; };
......@@ -53,6 +52,13 @@
EA8F42CD28EE99D900983014 /* string_spanish.json in Resources */ = {isa = PBXBuildFile; fileRef = EA8F42CA28EE99D900983014 /* string_spanish.json */; };
EA8F42CF28EEA85200983014 /* CradleHoldLandingVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA8F42CE28EEA85200983014 /* CradleHoldLandingVC.swift */; };
EA8F42D128EEA87A00983014 /* SideLyingLandingVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA8F42D028EEA87A00983014 /* SideLyingLandingVC.swift */; };
EA8F430128EF3DCA00983014 /* ZJDefaultCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA8F42F328EF3DC900983014 /* ZJDefaultCell.swift */; };
EA8F430228EF3DCA00983014 /* ZJTableViewSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA8F42F428EF3DC900983014 /* ZJTableViewSection.swift */; };
EA8F430328EF3DCA00983014 /* ZJProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA8F42F528EF3DC900983014 /* ZJProtocol.swift */; };
EA8F430428EF3DCA00983014 /* ZJTableViewItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA8F42F628EF3DCA00983014 /* ZJTableViewItem.swift */; };
EA8F430528EF3DCA00983014 /* ZJTableViewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA8F42F728EF3DCA00983014 /* ZJTableViewManager.swift */; };
EA8F430628EF3DCA00983014 /* ZJExpandTreeCellItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA8F42F928EF3DCA00983014 /* ZJExpandTreeCellItem.swift */; };
EA8F430828EF3DCA00983014 /* Popover.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA8F42FD28EF3DCA00983014 /* Popover.swift */; };
EAD8102728E207A4002A86C9 /* MyTools.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD8102628E207A4002A86C9 /* MyTools.swift */; };
EAD8102D28E20A54002A86C9 /* PermissionAlertVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAD8102C28E20A54002A86C9 /* PermissionAlertVC.swift */; };
/* End PBXBuildFile section */
......@@ -81,7 +87,6 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
39043640BDC7A50986C47129 /* Pods_BreastFeedingDemo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BreastFeedingDemo.framework; sourceTree = BUILT_PRODUCTS_DIR; };
690F28872852317500EB63F1 /* yuvtransform.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = yuvtransform.xcframework; sourceTree = "<group>"; };
692EC419284C81700043E3EA /* ViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewModel.swift; sourceTree = "<group>"; };
692EC41D284C8D6F0043E3EA /* french.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = french.json; sourceTree = "<group>"; };
......@@ -107,8 +112,6 @@
694B85D92848EBB2009BEDE1 /* fluttertoast.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = fluttertoast.xcframework; sourceTree = "<group>"; };
697B07EC284F2E5C0051FC23 /* CompleteVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompleteVC.swift; sourceTree = "<group>"; };
6989B7B52852EAA20014BB5B /* wakelock.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = wakelock.xcframework; sourceTree = "<group>"; };
8C76E81CF245C7C738786086 /* Pods-BreastFeedingDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BreastFeedingDemo.debug.xcconfig"; path = "Target Support Files/Pods-BreastFeedingDemo/Pods-BreastFeedingDemo.debug.xcconfig"; sourceTree = "<group>"; };
A4415E51DE97A1784932289A /* Pods-BreastFeedingDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BreastFeedingDemo.release.xcconfig"; path = "Target Support Files/Pods-BreastFeedingDemo/Pods-BreastFeedingDemo.release.xcconfig"; sourceTree = "<group>"; };
EA14360428E0BF1900FFBE72 /* DemoViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemoViewController.swift; sourceTree = "<group>"; };
EA14360628E0CA3100FFBE72 /* LanguageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageCell.swift; sourceTree = "<group>"; };
EA14360728E0CA3100FFBE72 /* LanguageCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LanguageCell.xib; sourceTree = "<group>"; };
......@@ -121,6 +124,13 @@
EA8F42CA28EE99D900983014 /* string_spanish.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = string_spanish.json; sourceTree = "<group>"; };
EA8F42CE28EEA85200983014 /* CradleHoldLandingVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CradleHoldLandingVC.swift; sourceTree = "<group>"; };
EA8F42D028EEA87A00983014 /* SideLyingLandingVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SideLyingLandingVC.swift; sourceTree = "<group>"; };
EA8F42F328EF3DC900983014 /* ZJDefaultCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZJDefaultCell.swift; sourceTree = "<group>"; };
EA8F42F428EF3DC900983014 /* ZJTableViewSection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZJTableViewSection.swift; sourceTree = "<group>"; };
EA8F42F528EF3DC900983014 /* ZJProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZJProtocol.swift; sourceTree = "<group>"; };
EA8F42F628EF3DCA00983014 /* ZJTableViewItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZJTableViewItem.swift; sourceTree = "<group>"; };
EA8F42F728EF3DCA00983014 /* ZJTableViewManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZJTableViewManager.swift; sourceTree = "<group>"; };
EA8F42F928EF3DCA00983014 /* ZJExpandTreeCellItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZJExpandTreeCellItem.swift; sourceTree = "<group>"; };
EA8F42FD28EF3DCA00983014 /* Popover.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Popover.swift; sourceTree = "<group>"; };
EAD8102628E207A4002A86C9 /* MyTools.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyTools.swift; sourceTree = "<group>"; };
EAD8102C28E20A54002A86C9 /* PermissionAlertVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionAlertVC.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
......@@ -142,7 +152,6 @@
694B85EB2848ECF2009BEDE1 /* App.xcframework in Frameworks */,
694B85F92848EDC4009BEDE1 /* FlutterPluginRegistrant.xcframework in Frameworks */,
694B85ED2848ECF4009BEDE1 /* camera.xcframework in Frameworks */,
8DE79EDB672D5394BDEB806E /* Pods_BreastFeedingDemo.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
......@@ -166,8 +175,6 @@
694B85CF2848EB68009BEDE1 /* Flutter */,
694B85BA2848EB4C009BEDE1 /* BreastFeedingDemo */,
694B85B92848EB4C009BEDE1 /* Products */,
D05A496FA0D336E799F2B4F4 /* Pods */,
BBF0AD3D93533A3DA0258A2D /* Frameworks */,
);
sourceTree = "<group>";
};
......@@ -217,26 +224,11 @@
path = Flutter;
sourceTree = "<group>";
};
BBF0AD3D93533A3DA0258A2D /* Frameworks */ = {
isa = PBXGroup;
children = (
39043640BDC7A50986C47129 /* Pods_BreastFeedingDemo.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
D05A496FA0D336E799F2B4F4 /* Pods */ = {
isa = PBXGroup;
children = (
8C76E81CF245C7C738786086 /* Pods-BreastFeedingDemo.debug.xcconfig */,
A4415E51DE97A1784932289A /* Pods-BreastFeedingDemo.release.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
};
EA8F42BD28EE98A000983014 /* Utilities */ = {
isa = PBXGroup;
children = (
EA8F42FA28EF3DCA00983014 /* Popover */,
EA8F42EE28EF3DC900983014 /* ZJTableViewManager */,
EA8F42C728EE99D900983014 /* StringFiles */,
EA8F42BE28EE998000983014 /* StringModel */,
EAD8102628E207A4002A86C9 /* MyTools.swift */,
......@@ -265,6 +257,61 @@
path = StringFiles;
sourceTree = "<group>";
};
EA8F42EE28EF3DC900983014 /* ZJTableViewManager */ = {
isa = PBXGroup;
children = (
EA8F42F128EF3DC900983014 /* ZJTableViewManager */,
);
name = ZJTableViewManager;
path = Pods/ZJTableViewManager;
sourceTree = SOURCE_ROOT;
};
EA8F42F128EF3DC900983014 /* ZJTableViewManager */ = {
isa = PBXGroup;
children = (
EA8F42F228EF3DC900983014 /* Core */,
EA8F42F828EF3DCA00983014 /* Other */,
);
path = ZJTableViewManager;
sourceTree = "<group>";
};
EA8F42F228EF3DC900983014 /* Core */ = {
isa = PBXGroup;
children = (
EA8F42F328EF3DC900983014 /* ZJDefaultCell.swift */,
EA8F42F428EF3DC900983014 /* ZJTableViewSection.swift */,
EA8F42F528EF3DC900983014 /* ZJProtocol.swift */,
EA8F42F628EF3DCA00983014 /* ZJTableViewItem.swift */,
EA8F42F728EF3DCA00983014 /* ZJTableViewManager.swift */,
);
path = Core;
sourceTree = "<group>";
};
EA8F42F828EF3DCA00983014 /* Other */ = {
isa = PBXGroup;
children = (
EA8F42F928EF3DCA00983014 /* ZJExpandTreeCellItem.swift */,
);
path = Other;
sourceTree = "<group>";
};
EA8F42FA28EF3DCA00983014 /* Popover */ = {
isa = PBXGroup;
children = (
EA8F42FC28EF3DCA00983014 /* Classes */,
);
name = Popover;
path = Pods/Popover;
sourceTree = SOURCE_ROOT;
};
EA8F42FC28EF3DCA00983014 /* Classes */ = {
isa = PBXGroup;
children = (
EA8F42FD28EF3DCA00983014 /* Popover.swift */,
);
path = Classes;
sourceTree = "<group>";
};
EAFC261B28E2144600F802FE /* ViewController */ = {
isa = PBXGroup;
children = (
......@@ -284,12 +331,10 @@
isa = PBXNativeTarget;
buildConfigurationList = 694B85CC2848EB4E009BEDE1 /* Build configuration list for PBXNativeTarget "BreastFeedingDemo" */;
buildPhases = (
8AF6361FD6EF23190F10D3B6 /* [CP] Check Pods Manifest.lock */,
694B85B42848EB4C009BEDE1 /* Sources */,
694B85B52848EB4C009BEDE1 /* Frameworks */,
694B85B62848EB4C009BEDE1 /* Resources */,
694B85E62848EC8C009BEDE1 /* Embed Frameworks */,
5DA61345C58EE2716C01BA2C /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
......@@ -353,66 +398,31 @@
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
5DA61345C58EE2716C01BA2C /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-BreastFeedingDemo/Pods-BreastFeedingDemo-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-BreastFeedingDemo/Pods-BreastFeedingDemo-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-BreastFeedingDemo/Pods-BreastFeedingDemo-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
8AF6361FD6EF23190F10D3B6 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-BreastFeedingDemo-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
694B85B42848EB4C009BEDE1 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
EA8F430628EF3DCA00983014 /* ZJExpandTreeCellItem.swift in Sources */,
EA8F42C528EE998000983014 /* StringModel.swift in Sources */,
EA8F430428EF3DCA00983014 /* ZJTableViewItem.swift in Sources */,
694B85C02848EB4C009BEDE1 /* ViewController.swift in Sources */,
EA8F42D128EEA87A00983014 /* SideLyingLandingVC.swift in Sources */,
694B85BC2848EB4C009BEDE1 /* AppDelegate.swift in Sources */,
EA8F42C328EE998000983014 /* StringLyingGestureIntroduce.swift in Sources */,
697B07ED284F2E5C0051FC23 /* CompleteVC.swift in Sources */,
EA8F42C628EE998000983014 /* StringLyingGesture.swift in Sources */,
EA8F430228EF3DCA00983014 /* ZJTableViewSection.swift in Sources */,
EA8F430128EF3DCA00983014 /* ZJDefaultCell.swift in Sources */,
EA8F42CF28EEA85200983014 /* CradleHoldLandingVC.swift in Sources */,
EA14360528E0BF1900FFBE72 /* DemoViewController.swift in Sources */,
692EC41A284C81700043E3EA /* ViewModel.swift in Sources */,
EA8F430528EF3DCA00983014 /* ZJTableViewManager.swift in Sources */,
EA8F430828EF3DCA00983014 /* Popover.swift in Sources */,
EAD8102D28E20A54002A86C9 /* PermissionAlertVC.swift in Sources */,
EA8F42C428EE998000983014 /* StringSittingGestureIntroduce.swift in Sources */,
EA14360828E0CA3100FFBE72 /* LanguageCell.swift in Sources */,
EA8F430328EF3DCA00983014 /* ZJProtocol.swift in Sources */,
694B85BE2848EB4C009BEDE1 /* SceneDelegate.swift in Sources */,
EAD8102728E207A4002A86C9 /* MyTools.swift in Sources */,
);
......@@ -556,7 +566,6 @@
};
694B85CD2848EB4E009BEDE1 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 8C76E81CF245C7C738786086 /* Pods-BreastFeedingDemo.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
......@@ -593,7 +602,6 @@
};
694B85CE2848EB4E009BEDE1 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = A4415E51DE97A1784932289A /* Pods-BreastFeedingDemo.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
......
......@@ -7,7 +7,7 @@
<key>BreastFeedingDemo.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>3</integer>
<integer>0</integer>
</dict>
</dict>
</dict>
......
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "group:BreastFeedingDemo.xcodeproj">
</FileRef>
<FileRef
location = "group:Pods/Pods.xcodeproj">
</FileRef>
</Workspace>
......@@ -6,7 +6,7 @@
//
import UIKit
import ZJTableViewManager
//import ZJTableViewManager
class LanguageCellItem: ZJTableViewItem {
var language: ViewModel.Language!
......
......@@ -7,9 +7,9 @@
import AVFoundation
import Flutter
import Popover
//import Popover
import UIKit
import ZJTableViewManager
//import ZJTableViewManager
class DemoViewController: UIViewController {
fileprivate var popover: Popover!
......
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
source 'https://github.com/CocoaPods/Specs.git'
target 'BreastFeedingDemo' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
pod 'ZJTableViewManager', '~> 1.0.8'
pod 'Popover', '~> 1.3.0'
# Pods for BreastFeedingDemo
end
PODS:
- Popover (1.3.0)
- ZJTableViewManager (1.0.8):
- ZJTableViewManager/Core (= 1.0.8)
- ZJTableViewManager/Other (= 1.0.8)
- ZJTableViewManager/Core (1.0.8)
- ZJTableViewManager/Other (1.0.8):
- ZJTableViewManager/Core
DEPENDENCIES:
- Popover (~> 1.3.0)
- ZJTableViewManager (~> 1.0.8)
SPEC REPOS:
https://github.com/CocoaPods/Specs.git:
- Popover
- ZJTableViewManager
SPEC CHECKSUMS:
Popover: 10e1d9528f81d9504df984b7b3f491292bc1822d
ZJTableViewManager: 670f0805009b4a2680f20412c9c7be6f41ba7595
PODFILE CHECKSUM: 6a55778ec27acc11a2018147be40d7ee909e78c5
COCOAPODS: 1.11.2
PODS:
- Popover (1.3.0)
- ZJTableViewManager (1.0.8):
- ZJTableViewManager/Core (= 1.0.8)
- ZJTableViewManager/Other (= 1.0.8)
- ZJTableViewManager/Core (1.0.8)
- ZJTableViewManager/Other (1.0.8):
- ZJTableViewManager/Core
DEPENDENCIES:
- Popover (~> 1.3.0)
- ZJTableViewManager (~> 1.0.8)
SPEC REPOS:
https://github.com/CocoaPods/Specs.git:
- Popover
- ZJTableViewManager
SPEC CHECKSUMS:
Popover: 10e1d9528f81d9504df984b7b3f491292bc1822d
ZJTableViewManager: 670f0805009b4a2680f20412c9c7be6f41ba7595
PODFILE CHECKSUM: 6a55778ec27acc11a2018147be40d7ee909e78c5
COCOAPODS: 1.11.2
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 55;
objects = {
/* Begin PBXBuildFile section */
19F8D436ECE585D420E30B3D464A7339 /* ZJTableViewItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5D04D844D9B6ADA7C7FB3C0A9D48761 /* ZJTableViewItem.swift */; };
50968D0C5AA944A777535F6E8C758FBD /* ZJTableViewManager-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 60137F1603FB9AFBAECC15CDBE791657 /* ZJTableViewManager-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
59226B73389AC742CC399C84C9B984E2 /* ZJProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5616737D3ED58E111CA1B93AB4C6CC2A /* ZJProtocol.swift */; };
6F7CB932BD20A01C26325651C7995725 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; };
7860FA2DFD21A7AC9966CC48EA4AEA12 /* Popover.swift in Sources */ = {isa = PBXBuildFile; fileRef = F33BCB546090A21A165464E36EA63E0B /* Popover.swift */; };
99470FAAC710C90198626270C4C8633F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; };
A0A5A2FB43F9E76E0C30C2BA93AEA5B2 /* ZJExpandTreeCellItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DDE5AEBF6D58E0A48C1BD664290D195 /* ZJExpandTreeCellItem.swift */; };
A2D783F95AF9CAD09F2B278C22CC2BB3 /* ZJTableViewManager-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7536A91AA4935687489C51D67C875781 /* ZJTableViewManager-dummy.m */; };
A454FDE721C693A7455E425F500973B1 /* Popover-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CAA970AAC11ABA920E1A511D765BF9FA /* Popover-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
AEA75FB1504FD18971565D28E7734600 /* Pods-BreastFeedingDemo-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8669227266088AAD1B7292780A65F6C6 /* Pods-BreastFeedingDemo-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
BF71DA50130FF7925BC8E53CB51022CC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */; };
C016403C62A6AC02ACA9D2D5463815BE /* Pods-BreastFeedingDemo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 96D83C89E46066FB3243BAB31441C909 /* Pods-BreastFeedingDemo-dummy.m */; };
CA1A83D7E36AAA68CA7D60964371B075 /* Popover-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 710EB20C935508FE54891378D15F2A4D /* Popover-dummy.m */; };
CB05E4BC2B9338C16ACCC1EE21805D53 /* ZJTableViewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4296EF36B85A894A60EE81DBFB98FBE7 /* ZJTableViewManager.swift */; };
DF21B940E324C200E6F2FEC87F1F3A94 /* ZJTableViewSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 688B6E90BBEB6C3840E5607EA0C2B0E1 /* ZJTableViewSection.swift */; };
FA66E6E73050716F760CA2A53A21316E /* ZJDefaultCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96FFD80C6A2B03BCE8F82D00022870CF /* ZJDefaultCell.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
6CF2DB9F83088532B314D2C6B209D805 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
remoteGlobalIDString = F366DD389362A47A0707FE45D5503886;
remoteInfo = ZJTableViewManager;
};
DF3525CB539C59B991A65E7287C1E69E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 89ADB0D61D0BE9648E9853F5F8BDA717;
remoteInfo = Popover;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
0BC1DC472EB417AC3509AF249B5E0453 /* ZJTableViewManager.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ZJTableViewManager.release.xcconfig; sourceTree = "<group>"; };
10DD7736AF333FDD8D4473F7CDCFC87D /* Pods-BreastFeedingDemo-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-BreastFeedingDemo-Info.plist"; sourceTree = "<group>"; };
134C52C599B8DC66E4F472335AEDC479 /* Pods-BreastFeedingDemo */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = "Pods-BreastFeedingDemo"; path = Pods_BreastFeedingDemo.framework; sourceTree = BUILT_PRODUCTS_DIR; };
16D579916A50B78B163B61F740CB19B9 /* Pods-BreastFeedingDemo.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-BreastFeedingDemo.modulemap"; sourceTree = "<group>"; };
1DDE5AEBF6D58E0A48C1BD664290D195 /* ZJExpandTreeCellItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ZJExpandTreeCellItem.swift; path = ZJTableViewManager/Other/ZJExpandTreeCellItem.swift; sourceTree = "<group>"; };
29A42C062AD3D8788EE4B920B3B47358 /* Pods-BreastFeedingDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-BreastFeedingDemo.release.xcconfig"; sourceTree = "<group>"; };
370EDD0BA4D1DBFA7D1957F45C7FBC24 /* ZJTableViewManager.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ZJTableViewManager.debug.xcconfig; sourceTree = "<group>"; };
41BAD1C23B351EDCECA15FFFB3706BB6 /* Popover.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Popover.release.xcconfig; sourceTree = "<group>"; };
4296EF36B85A894A60EE81DBFB98FBE7 /* ZJTableViewManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ZJTableViewManager.swift; path = ZJTableViewManager/Core/ZJTableViewManager.swift; sourceTree = "<group>"; };
5358F9AE8183B7EB6595CCF771F892BE /* ZJTableViewManager-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ZJTableViewManager-prefix.pch"; sourceTree = "<group>"; };
5616737D3ED58E111CA1B93AB4C6CC2A /* ZJProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ZJProtocol.swift; path = ZJTableViewManager/Core/ZJProtocol.swift; sourceTree = "<group>"; };
56E053A96D2E034079AC4383CD84FCFB /* Popover-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Popover-Info.plist"; sourceTree = "<group>"; };
5AB9E77538524898FA243D4AD3D228C4 /* Popover.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Popover.debug.xcconfig; sourceTree = "<group>"; };
60137F1603FB9AFBAECC15CDBE791657 /* ZJTableViewManager-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ZJTableViewManager-umbrella.h"; sourceTree = "<group>"; };
6471F0E3CD3708E8C00778717A81BF66 /* ZJTableViewManager */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = ZJTableViewManager; path = ZJTableViewManager.framework; sourceTree = BUILT_PRODUCTS_DIR; };
688B6E90BBEB6C3840E5607EA0C2B0E1 /* ZJTableViewSection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ZJTableViewSection.swift; path = ZJTableViewManager/Core/ZJTableViewSection.swift; sourceTree = "<group>"; };
6F5665DB399CDAC0DCF6C6AB6047C138 /* Pods-BreastFeedingDemo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-BreastFeedingDemo-acknowledgements.markdown"; sourceTree = "<group>"; };
710EB20C935508FE54891378D15F2A4D /* Popover-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Popover-dummy.m"; sourceTree = "<group>"; };
73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
7536A91AA4935687489C51D67C875781 /* ZJTableViewManager-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ZJTableViewManager-dummy.m"; sourceTree = "<group>"; };
7D08EE56BAE631F60F2B9D7F988CDAB5 /* Popover-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Popover-prefix.pch"; sourceTree = "<group>"; };
8669227266088AAD1B7292780A65F6C6 /* Pods-BreastFeedingDemo-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-BreastFeedingDemo-umbrella.h"; sourceTree = "<group>"; };
8FED0B46C7C100F3B9B92C70B8D79E4E /* Popover.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Popover.modulemap; sourceTree = "<group>"; };
93833EDDB1450F1F8199940CF64275A1 /* Pods-BreastFeedingDemo-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-BreastFeedingDemo-frameworks.sh"; sourceTree = "<group>"; };
96D83C89E46066FB3243BAB31441C909 /* Pods-BreastFeedingDemo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-BreastFeedingDemo-dummy.m"; sourceTree = "<group>"; };
96FFD80C6A2B03BCE8F82D00022870CF /* ZJDefaultCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ZJDefaultCell.swift; path = ZJTableViewManager/Core/ZJDefaultCell.swift; sourceTree = "<group>"; };
9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
B72A389B0E6A6DD2F3D61F4DC7F84D83 /* Popover */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Popover; path = Popover.framework; sourceTree = BUILT_PRODUCTS_DIR; };
CAA970AAC11ABA920E1A511D765BF9FA /* Popover-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Popover-umbrella.h"; sourceTree = "<group>"; };
DA953EF94FA5BA35040AE1ADF9B32442 /* ZJTableViewManager.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = ZJTableViewManager.modulemap; sourceTree = "<group>"; };
E5766C029525F2B97A6E67B8FFFCB9C7 /* Pods-BreastFeedingDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-BreastFeedingDemo.debug.xcconfig"; sourceTree = "<group>"; };
E5D04D844D9B6ADA7C7FB3C0A9D48761 /* ZJTableViewItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ZJTableViewItem.swift; path = ZJTableViewManager/Core/ZJTableViewItem.swift; sourceTree = "<group>"; };
E7914853362D9BC9B6A4DCD3EA0B9F06 /* ZJTableViewManager-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ZJTableViewManager-Info.plist"; sourceTree = "<group>"; };
EED35B2BED30227694003D072877C5C5 /* Pods-BreastFeedingDemo-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-BreastFeedingDemo-acknowledgements.plist"; sourceTree = "<group>"; };
F33BCB546090A21A165464E36EA63E0B /* Popover.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Popover.swift; path = Classes/Popover.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
684A7061972DBB8F3700AAA42C1138DA /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
BF71DA50130FF7925BC8E53CB51022CC /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
8DBE49CD76D977D13ED67C2ED4A3BEAC /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
99470FAAC710C90198626270C4C8633F /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
AC7C854E4B821FFBD025829200D41F4A /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
6F7CB932BD20A01C26325651C7995725 /* Foundation.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
049AAE4553E08049961A271DD483C6ED /* Core */ = {
isa = PBXGroup;
children = (
96FFD80C6A2B03BCE8F82D00022870CF /* ZJDefaultCell.swift */,
5616737D3ED58E111CA1B93AB4C6CC2A /* ZJProtocol.swift */,
E5D04D844D9B6ADA7C7FB3C0A9D48761 /* ZJTableViewItem.swift */,
4296EF36B85A894A60EE81DBFB98FBE7 /* ZJTableViewManager.swift */,
688B6E90BBEB6C3840E5607EA0C2B0E1 /* ZJTableViewSection.swift */,
);
name = Core;
sourceTree = "<group>";
};
12B40B9DFB17900C665BD18A9C865B66 /* Pods-BreastFeedingDemo */ = {
isa = PBXGroup;
children = (
16D579916A50B78B163B61F740CB19B9 /* Pods-BreastFeedingDemo.modulemap */,
6F5665DB399CDAC0DCF6C6AB6047C138 /* Pods-BreastFeedingDemo-acknowledgements.markdown */,
EED35B2BED30227694003D072877C5C5 /* Pods-BreastFeedingDemo-acknowledgements.plist */,
96D83C89E46066FB3243BAB31441C909 /* Pods-BreastFeedingDemo-dummy.m */,
93833EDDB1450F1F8199940CF64275A1 /* Pods-BreastFeedingDemo-frameworks.sh */,
10DD7736AF333FDD8D4473F7CDCFC87D /* Pods-BreastFeedingDemo-Info.plist */,
8669227266088AAD1B7292780A65F6C6 /* Pods-BreastFeedingDemo-umbrella.h */,
E5766C029525F2B97A6E67B8FFFCB9C7 /* Pods-BreastFeedingDemo.debug.xcconfig */,
29A42C062AD3D8788EE4B920B3B47358 /* Pods-BreastFeedingDemo.release.xcconfig */,
);
name = "Pods-BreastFeedingDemo";
path = "Target Support Files/Pods-BreastFeedingDemo";
sourceTree = "<group>";
};
20A5B1B1D38D316B59738CE4750CE626 /* Popover */ = {
isa = PBXGroup;
children = (
F33BCB546090A21A165464E36EA63E0B /* Popover.swift */,
99094AB316CEE6F1D8E2C32E935620F2 /* Support Files */,
);
name = Popover;
path = Popover;
sourceTree = "<group>";
};
4CAFD81C5D07F38ED1CAD4FD033BE621 /* ZJTableViewManager */ = {
isa = PBXGroup;
children = (
049AAE4553E08049961A271DD483C6ED /* Core */,
E7C00D2717A04106E2269CE066C2E97A /* Other */,
B38E3B2D5D2AD0F49ECC86AF3FE028A9 /* Support Files */,
);
name = ZJTableViewManager;
path = ZJTableViewManager;
sourceTree = "<group>";
};
578452D2E740E91742655AC8F1636D1F /* iOS */ = {
isa = PBXGroup;
children = (
73010CC983E3809BECEE5348DA1BB8C6 /* Foundation.framework */,
);
name = iOS;
sourceTree = "<group>";
};
7DAA47C158D83B2327EDDB59BC7DCCAF /* Pods */ = {
isa = PBXGroup;
children = (
20A5B1B1D38D316B59738CE4750CE626 /* Popover */,
4CAFD81C5D07F38ED1CAD4FD033BE621 /* ZJTableViewManager */,
);
name = Pods;
sourceTree = "<group>";
};
99094AB316CEE6F1D8E2C32E935620F2 /* Support Files */ = {
isa = PBXGroup;
children = (
8FED0B46C7C100F3B9B92C70B8D79E4E /* Popover.modulemap */,
710EB20C935508FE54891378D15F2A4D /* Popover-dummy.m */,
56E053A96D2E034079AC4383CD84FCFB /* Popover-Info.plist */,
7D08EE56BAE631F60F2B9D7F988CDAB5 /* Popover-prefix.pch */,
CAA970AAC11ABA920E1A511D765BF9FA /* Popover-umbrella.h */,
5AB9E77538524898FA243D4AD3D228C4 /* Popover.debug.xcconfig */,
41BAD1C23B351EDCECA15FFFB3706BB6 /* Popover.release.xcconfig */,
);
name = "Support Files";
path = "../Target Support Files/Popover";
sourceTree = "<group>";
};
A9DD64D337AEA6D283F1317BB2683248 /* Products */ = {
isa = PBXGroup;
children = (
134C52C599B8DC66E4F472335AEDC479 /* Pods-BreastFeedingDemo */,
B72A389B0E6A6DD2F3D61F4DC7F84D83 /* Popover */,
6471F0E3CD3708E8C00778717A81BF66 /* ZJTableViewManager */,
);
name = Products;
sourceTree = "<group>";
};
B38E3B2D5D2AD0F49ECC86AF3FE028A9 /* Support Files */ = {
isa = PBXGroup;
children = (
DA953EF94FA5BA35040AE1ADF9B32442 /* ZJTableViewManager.modulemap */,
7536A91AA4935687489C51D67C875781 /* ZJTableViewManager-dummy.m */,
E7914853362D9BC9B6A4DCD3EA0B9F06 /* ZJTableViewManager-Info.plist */,
5358F9AE8183B7EB6595CCF771F892BE /* ZJTableViewManager-prefix.pch */,
60137F1603FB9AFBAECC15CDBE791657 /* ZJTableViewManager-umbrella.h */,
370EDD0BA4D1DBFA7D1957F45C7FBC24 /* ZJTableViewManager.debug.xcconfig */,
0BC1DC472EB417AC3509AF249B5E0453 /* ZJTableViewManager.release.xcconfig */,
);
name = "Support Files";
path = "../Target Support Files/ZJTableViewManager";
sourceTree = "<group>";
};
CF1408CF629C7361332E53B88F7BD30C = {
isa = PBXGroup;
children = (
9D940727FF8FB9C785EB98E56350EF41 /* Podfile */,
D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */,
7DAA47C158D83B2327EDDB59BC7DCCAF /* Pods */,
A9DD64D337AEA6D283F1317BB2683248 /* Products */,
E8CEBAD4D2A41275633E5B8CA4D6FCD0 /* Targets Support Files */,
);
sourceTree = "<group>";
};
D210D550F4EA176C3123ED886F8F87F5 /* Frameworks */ = {
isa = PBXGroup;
children = (
578452D2E740E91742655AC8F1636D1F /* iOS */,
);
name = Frameworks;
sourceTree = "<group>";
};
E7C00D2717A04106E2269CE066C2E97A /* Other */ = {
isa = PBXGroup;
children = (
1DDE5AEBF6D58E0A48C1BD664290D195 /* ZJExpandTreeCellItem.swift */,
);
name = Other;
sourceTree = "<group>";
};
E8CEBAD4D2A41275633E5B8CA4D6FCD0 /* Targets Support Files */ = {
isa = PBXGroup;
children = (
12B40B9DFB17900C665BD18A9C865B66 /* Pods-BreastFeedingDemo */,
);
name = "Targets Support Files";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
4D91606A98E3D48B4882EE0224EC7097 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
50968D0C5AA944A777535F6E8C758FBD /* ZJTableViewManager-umbrella.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
7E14BF9B53FE33B5739898C1F45D414B /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
A454FDE721C693A7455E425F500973B1 /* Popover-umbrella.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
86EEA7E809B4B0B9BBDC6731483D6C4F /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
AEA75FB1504FD18971565D28E7734600 /* Pods-BreastFeedingDemo-umbrella.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
89ADB0D61D0BE9648E9853F5F8BDA717 /* Popover */ = {
isa = PBXNativeTarget;
buildConfigurationList = 13A3C4471CADE0420F8ED9C07C700C48 /* Build configuration list for PBXNativeTarget "Popover" */;
buildPhases = (
7E14BF9B53FE33B5739898C1F45D414B /* Headers */,
A53CC1FC6F2B27375D35087BE1A7FB24 /* Sources */,
AC7C854E4B821FFBD025829200D41F4A /* Frameworks */,
0C37D8CC78066139CEAC63D4BB605A0F /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = Popover;
productName = Popover;
productReference = B72A389B0E6A6DD2F3D61F4DC7F84D83 /* Popover */;
productType = "com.apple.product-type.framework";
};
B5C990C062A5766D35C8D9B8A6A9B6D2 /* Pods-BreastFeedingDemo */ = {
isa = PBXNativeTarget;
buildConfigurationList = F6FA406264AE7C05EFF7D895FCD50AE7 /* Build configuration list for PBXNativeTarget "Pods-BreastFeedingDemo" */;
buildPhases = (
86EEA7E809B4B0B9BBDC6731483D6C4F /* Headers */,
53D9BD4A9A82B4BDA15A3430F8CC20E5 /* Sources */,
8DBE49CD76D977D13ED67C2ED4A3BEAC /* Frameworks */,
B323571974B3DB26D9FF0BE7576678D4 /* Resources */,
);
buildRules = (
);
dependencies = (
0E2D62565B5ACCFD28621414A86D6136 /* PBXTargetDependency */,
67EE8D4B5803822E3EAFE224AE91DEE4 /* PBXTargetDependency */,
);
name = "Pods-BreastFeedingDemo";
productName = Pods_BreastFeedingDemo;
productReference = 134C52C599B8DC66E4F472335AEDC479 /* Pods-BreastFeedingDemo */;
productType = "com.apple.product-type.framework";
};
F366DD389362A47A0707FE45D5503886 /* ZJTableViewManager */ = {
isa = PBXNativeTarget;
buildConfigurationList = 711CFE090C36D5D7769933BAAAF6463F /* Build configuration list for PBXNativeTarget "ZJTableViewManager" */;
buildPhases = (
4D91606A98E3D48B4882EE0224EC7097 /* Headers */,
55576056B7C78305A1C1AFCCDE0E2D5C /* Sources */,
684A7061972DBB8F3700AAA42C1138DA /* Frameworks */,
BD7BD937390F1FD85389119BF0BDA860 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = ZJTableViewManager;
productName = ZJTableViewManager;
productReference = 6471F0E3CD3708E8C00778717A81BF66 /* ZJTableViewManager */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
BFDFE7DC352907FC980B868725387E98 /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 1240;
LastUpgradeCheck = 1240;
};
buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */;
compatibilityVersion = "Xcode 13.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
Base,
en,
);
mainGroup = CF1408CF629C7361332E53B88F7BD30C;
productRefGroup = A9DD64D337AEA6D283F1317BB2683248 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
B5C990C062A5766D35C8D9B8A6A9B6D2 /* Pods-BreastFeedingDemo */,
89ADB0D61D0BE9648E9853F5F8BDA717 /* Popover */,
F366DD389362A47A0707FE45D5503886 /* ZJTableViewManager */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
0C37D8CC78066139CEAC63D4BB605A0F /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
B323571974B3DB26D9FF0BE7576678D4 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
BD7BD937390F1FD85389119BF0BDA860 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
53D9BD4A9A82B4BDA15A3430F8CC20E5 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
C016403C62A6AC02ACA9D2D5463815BE /* Pods-BreastFeedingDemo-dummy.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
55576056B7C78305A1C1AFCCDE0E2D5C /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
FA66E6E73050716F760CA2A53A21316E /* ZJDefaultCell.swift in Sources */,
A0A5A2FB43F9E76E0C30C2BA93AEA5B2 /* ZJExpandTreeCellItem.swift in Sources */,
59226B73389AC742CC399C84C9B984E2 /* ZJProtocol.swift in Sources */,
19F8D436ECE585D420E30B3D464A7339 /* ZJTableViewItem.swift in Sources */,
CB05E4BC2B9338C16ACCC1EE21805D53 /* ZJTableViewManager.swift in Sources */,
A2D783F95AF9CAD09F2B278C22CC2BB3 /* ZJTableViewManager-dummy.m in Sources */,
DF21B940E324C200E6F2FEC87F1F3A94 /* ZJTableViewSection.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
A53CC1FC6F2B27375D35087BE1A7FB24 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7860FA2DFD21A7AC9966CC48EA4AEA12 /* Popover.swift in Sources */,
CA1A83D7E36AAA68CA7D60964371B075 /* Popover-dummy.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
0E2D62565B5ACCFD28621414A86D6136 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = Popover;
target = 89ADB0D61D0BE9648E9853F5F8BDA717 /* Popover */;
targetProxy = DF3525CB539C59B991A65E7287C1E69E /* PBXContainerItemProxy */;
};
67EE8D4B5803822E3EAFE224AE91DEE4 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
name = ZJTableViewManager;
target = F366DD389362A47A0707FE45D5503886 /* ZJTableViewManager */;
targetProxy = 6CF2DB9F83088532B314D2C6B209D805 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
74EE4C3DDBFA63E05A71C3141F568788 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 41BAD1C23B351EDCECA15FFFB3706BB6 /* Popover.release.xcconfig */;
buildSettings = {
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_PREFIX_HEADER = "Target Support Files/Popover/Popover-prefix.pch";
INFOPLIST_FILE = "Target Support Files/Popover/Popover-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MODULEMAP_FILE = "Target Support Files/Popover/Popover.modulemap";
PRODUCT_MODULE_NAME = Popover;
PRODUCT_NAME = Popover;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
SWIFT_VERSION = 5.1;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
82B54D90228F940D928955B8F3AA8AA2 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 0BC1DC472EB417AC3509AF249B5E0453 /* ZJTableViewManager.release.xcconfig */;
buildSettings = {
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_PREFIX_HEADER = "Target Support Files/ZJTableViewManager/ZJTableViewManager-prefix.pch";
INFOPLIST_FILE = "Target Support Files/ZJTableViewManager/ZJTableViewManager-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MODULEMAP_FILE = "Target Support Files/ZJTableViewManager/ZJTableViewManager.modulemap";
PRODUCT_MODULE_NAME = ZJTableViewManager;
PRODUCT_NAME = ZJTableViewManager;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
SWIFT_VERSION = 5.2;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
8DE5143C03248BB6CD542DE3963D6F3A /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"POD_CONFIGURATION_DEBUG=1",
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
STRIP_INSTALLED_PRODUCT = NO;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
SYMROOT = "${SRCROOT}/../build";
};
name = Debug;
};
9E406C6AAF85E580207CD97B0044DEAB /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
"POD_CONFIGURATION_RELEASE=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
STRIP_INSTALLED_PRODUCT = NO;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_VERSION = 5.0;
SYMROOT = "${SRCROOT}/../build";
};
name = Release;
};
BC8A37680771BFB16ACC8D8F3A448D92 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 370EDD0BA4D1DBFA7D1957F45C7FBC24 /* ZJTableViewManager.debug.xcconfig */;
buildSettings = {
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_PREFIX_HEADER = "Target Support Files/ZJTableViewManager/ZJTableViewManager-prefix.pch";
INFOPLIST_FILE = "Target Support Files/ZJTableViewManager/ZJTableViewManager-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MODULEMAP_FILE = "Target Support Files/ZJTableViewManager/ZJTableViewManager.modulemap";
PRODUCT_MODULE_NAME = ZJTableViewManager;
PRODUCT_NAME = ZJTableViewManager;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
SWIFT_VERSION = 5.2;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
C1BBCFB003C2A36F869D6B2363392459 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = E5766C029525F2B97A6E67B8FFFCB9C7 /* Pods-BreastFeedingDemo.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
CLANG_ENABLE_OBJC_WEAK = NO;
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "Target Support Files/Pods-BreastFeedingDemo/Pods-BreastFeedingDemo-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-BreastFeedingDemo/Pods-BreastFeedingDemo.modulemap";
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
C7B32E906567C873279F810F540EE593 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 5AB9E77538524898FA243D4AD3D228C4 /* Popover.debug.xcconfig */;
buildSettings = {
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
GCC_PREFIX_HEADER = "Target Support Files/Popover/Popover-prefix.pch";
INFOPLIST_FILE = "Target Support Files/Popover/Popover-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MODULEMAP_FILE = "Target Support Files/Popover/Popover.modulemap";
PRODUCT_MODULE_NAME = Popover;
PRODUCT_NAME = Popover;
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) ";
SWIFT_VERSION = 5.1;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
D35FCC27369D6ABFA1D3B89BA296E7E9 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 29A42C062AD3D8788EE4B920B3B47358 /* Pods-BreastFeedingDemo.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO;
CLANG_ENABLE_OBJC_WEAK = NO;
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
"CODE_SIGN_IDENTITY[sdk=watchos*]" = "";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = "Target Support Files/Pods-BreastFeedingDemo/Pods-BreastFeedingDemo-Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
MACH_O_TYPE = staticlib;
MODULEMAP_FILE = "Target Support Files/Pods-BreastFeedingDemo/Pods-BreastFeedingDemo.modulemap";
OTHER_LDFLAGS = "";
OTHER_LIBTOOLFLAGS = "";
PODS_ROOT = "$(SRCROOT)";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
SDKROOT = iphoneos;
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
13A3C4471CADE0420F8ED9C07C700C48 /* Build configuration list for PBXNativeTarget "Popover" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C7B32E906567C873279F810F540EE593 /* Debug */,
74EE4C3DDBFA63E05A71C3141F568788 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = {
isa = XCConfigurationList;
buildConfigurations = (
8DE5143C03248BB6CD542DE3963D6F3A /* Debug */,
9E406C6AAF85E580207CD97B0044DEAB /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
711CFE090C36D5D7769933BAAAF6463F /* Build configuration list for PBXNativeTarget "ZJTableViewManager" */ = {
isa = XCConfigurationList;
buildConfigurations = (
BC8A37680771BFB16ACC8D8F3A448D92 /* Debug */,
82B54D90228F940D928955B8F3AA8AA2 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
F6FA406264AE7C05EFF7D895FCD50AE7 /* Build configuration list for PBXNativeTarget "Pods-BreastFeedingDemo" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C1BBCFB003C2A36F869D6B2363392459 /* Debug */,
D35FCC27369D6ABFA1D3B89BA296E7E9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = BFDFE7DC352907FC980B868725387E98 /* Project object */;
}
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1240"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "B5C990C062A5766D35C8D9B8A6A9B6D2"
BuildableName = "Pods_BreastFeedingDemo.framework"
BlueprintName = "Pods-BreastFeedingDemo"
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>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>Pods-BreastFeedingDemo.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>0</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict/>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1240"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "B5C990C062A5766D35C8D9B8A6A9B6D2"
BuildableName = "Pods_BreastFeedingDemo.framework"
BlueprintName = "Pods-BreastFeedingDemo"
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>
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1240"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "89ADB0D61D0BE9648E9853F5F8BDA717"
BuildableName = "Popover.framework"
BlueprintName = "Popover"
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>
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1240"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "F366DD389362A47A0707FE45D5503886"
BuildableName = "ZJTableViewManager.framework"
BlueprintName = "ZJTableViewManager"
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>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>Pods-BreastFeedingDemo.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>0</integer>
</dict>
<key>Popover.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>1</integer>
</dict>
<key>ZJTableViewManager.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>2</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict/>
</dict>
</plist>
Copyright (c) 2020 corin8823 <yusuke_takahashi@cyberagent.co.jp>
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.
# Popover
[![CI Status](http://img.shields.io/travis/corin8823/Popover.svg?style=flat)](https://travis-ci.org/corin8823/Popover)
[![Version](https://img.shields.io/cocoapods/v/Popover.svg?style=flat)](http://cocoapods.org/pods/Popover)
[![License](https://img.shields.io/cocoapods/l/Popover.svg?style=flat)](http://cocoapods.org/pods/Popover)
[![Platform](https://img.shields.io/cocoapods/p/Popover.svg?style=flat)](http://cocoapods.org/pods/Popover)
## Description and [appetize.io`s DEMO](https://appetize.io/app/q4n81yf0aakkx20x2cejh107b4)
![](https://github.com/corin8823/Popover/blob/master/ScreenShots/Screenshot.gif)
## Usage
To run the example project, clone the repo, and run `pod install` from the Example directory first.
### Simple
```swift
let startPoint = CGPoint(x: self.view.frame.width - 60, y: 55)
let aView = UIView(frame: CGRect(x: 0, y: 0, width: self.view.frame.width, height: 180))
let popover = Popover()
popover.show(aView, point: startPoint)
```
### Custom
```swift
@IBOutlet weak var leftBottomButton: UIButton!
let width = self.view.frame.width / 4
let aView = UIView(frame: CGRect(x: 0, y: 0, width: width, height: width))
let options = [
.type(.up),
.cornerRadius(width / 2),
.animationIn(0.3),
.blackOverlayColor(UIColor.red),
.arrowSize(CGSize.zero)
] as [PopoverOption]
let popover = Popover(options: options, showHandler: nil, dismissHandler: nil)
popover.show(aView, fromView: self.leftBottomButton)
```
## Requirements
- iOS 9.0+
- Swift 5
## Installation
### CocoaPods (iOS 8+)
Popover is available through [CocoaPods](http://cocoapods.org). To install
it, simply add the following line to your `Podfile`:
```ruby
use_frameworks!
pod "Popover"
```
### Carthage (iOS 8+)
You can use [Carthage](https://github.com/Carthage/Carthage) to install `Popover` by adding it to your `Cartfile`:
```ruby
github "corin8823/Popover"
```
### Manual Installation
The class file required for Popover is located in the Classes folder in the root of this repository as listed below:
```
Popover.swift
```
## Customization
### Enum
- ``case arrowSize(CGSize)``
- ``case animationIn(NSTimeInterval)``
- ``case animationOut(NSTimeInterval)``
- ``case cornerRadius(CGFloat)``
- ``case sideEdge(CGFloat)``
- ``case blackOverlayColor(UIColor)``
- ``case overlayBlur(UIBlurEffectStyle)``
- ``case type(Popover.PopoverType)``
- ``case color(UIColor)``
- ``case dismissOnBlackOverlayTap(Bool)``
- ``case showBlackOverlay(Bool)``
### Property
- ``arrowSize: CGSize = CGSize(width: 16.0, height: 10.0)``
- ``animationIn: NSTimeInterval = 0.6``
- ``animationOut: NSTimeInterval = 0.3``
- ``cornerRadius: CGFloat = 6.0``
- ``sideEdge: CGFloat = 20.0``
- ``popoverType: PopoverType = .down``
- ``blackOverlayColor: UIColor = UIColor(white: 0.0, alpha: 0.2)``
- ``overlayBlur: UIBlurEffect?``
- ``popoverColor: UIColor = UIColor.white``
## Acknowledgments
Inspired by [DXPopover](https://github.com/xiekw2010/DXPopover) in [xiekw2010](https://github.com/xiekw2010)
## License
Popover is available under the MIT license. See the LICENSE file for more info.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${CURRENT_PROJECT_VERSION}</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
# Acknowledgements
This application makes use of the following third party libraries:
## Popover
Copyright (c) 2020 corin8823 <yusuke_takahashi@cyberagent.co.jp>
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.
## ZJTableViewManager
Copyright (c) 2018 Javen (https://github.com/JavenZ).
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Generated by CocoaPods - https://cocoapods.org
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PreferenceSpecifiers</key>
<array>
<dict>
<key>FooterText</key>
<string>This application makes use of the following third party libraries:</string>
<key>Title</key>
<string>Acknowledgements</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Copyright (c) 2020 corin8823 &lt;yusuke_takahashi@cyberagent.co.jp&gt;
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>Popover</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Copyright (c) 2018 Javen (https://github.com/JavenZ).
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>ZJTableViewManager</string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
<dict>
<key>FooterText</key>
<string>Generated by CocoaPods - https://cocoapods.org</string>
<key>Title</key>
<string></string>
<key>Type</key>
<string>PSGroupSpecifier</string>
</dict>
</array>
<key>StringsTable</key>
<string>Acknowledgements</string>
<key>Title</key>
<string>Acknowledgements</string>
</dict>
</plist>
#import <Foundation/Foundation.h>
@interface PodsDummy_Pods_BreastFeedingDemo : NSObject
@end
@implementation PodsDummy_Pods_BreastFeedingDemo
@end
${PODS_ROOT}/Target Support Files/Pods-BreastFeedingDemo/Pods-BreastFeedingDemo-frameworks.sh
${BUILT_PRODUCTS_DIR}/Popover/Popover.framework
${BUILT_PRODUCTS_DIR}/ZJTableViewManager/ZJTableViewManager.framework
\ No newline at end of file
${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Popover.framework
${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ZJTableViewManager.framework
\ No newline at end of file
${PODS_ROOT}/Target Support Files/Pods-BreastFeedingDemo/Pods-BreastFeedingDemo-frameworks.sh
${BUILT_PRODUCTS_DIR}/Popover/Popover.framework
${BUILT_PRODUCTS_DIR}/ZJTableViewManager/ZJTableViewManager.framework
\ No newline at end of file
${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Popover.framework
${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ZJTableViewManager.framework
\ No newline at end of file
#!/bin/sh
set -e
set -u
set -o pipefail
function on_error {
echo "$(realpath -mq "${0}"):$1: error: Unexpected failure"
}
trap 'on_error $LINENO' ERR
if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then
# If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy
# frameworks to, so exit 0 (signalling the script phase was successful).
exit 0
fi
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}"
SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
BCSYMBOLMAP_DIR="BCSymbolMaps"
# This protects against multiple targets copying the same framework dependency at the same time. The solution
# was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html
RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????")
# Copies and strips a vendored framework
install_framework()
{
if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then
local source="${BUILT_PRODUCTS_DIR}/$1"
elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then
local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")"
elif [ -r "$1" ]; then
local source="$1"
fi
local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
if [ -L "${source}" ]; then
echo "Symlinked..."
source="$(readlink "${source}")"
fi
if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then
# Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied
find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do
echo "Installing $f"
install_bcsymbolmap "$f" "$destination"
rm "$f"
done
rmdir "${source}/${BCSYMBOLMAP_DIR}"
fi
# Use filter instead of exclude so missing patterns don't throw errors.
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
local basename
basename="$(basename -s .framework "$1")"
binary="${destination}/${basename}.framework/${basename}"
if ! [ -r "$binary" ]; then
binary="${destination}/${basename}"
elif [ -L "${binary}" ]; then
echo "Destination binary is symlinked..."
dirname="$(dirname "${binary}")"
binary="${dirname}/$(readlink "${binary}")"
fi
# Strip invalid architectures so "fat" simulator / device frameworks work on device
if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
strip_invalid_archs "$binary"
fi
# Resign the code if required by the build settings to avoid unstable apps
code_sign_if_enabled "${destination}/$(basename "$1")"
# Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.
if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then
local swift_runtime_libs
swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u)
for lib in $swift_runtime_libs; do
echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
code_sign_if_enabled "${destination}/${lib}"
done
fi
}
# Copies and strips a vendored dSYM
install_dsym() {
local source="$1"
warn_missing_arch=${2:-true}
if [ -r "$source" ]; then
# Copy the dSYM into the targets temp dir.
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}"
local basename
basename="$(basename -s .dSYM "$source")"
binary_name="$(ls "$source/Contents/Resources/DWARF")"
binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}"
# Strip invalid architectures from the dSYM.
if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then
strip_invalid_archs "$binary" "$warn_missing_arch"
fi
if [[ $STRIP_BINARY_RETVAL == 0 ]]; then
# Move the stripped file into its final destination.
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}"
else
# The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.
mkdir -p "${DWARF_DSYM_FOLDER_PATH}"
touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM"
fi
fi
}
# Used as a return value for each invocation of `strip_invalid_archs` function.
STRIP_BINARY_RETVAL=0
# Strip invalid architectures
strip_invalid_archs() {
binary="$1"
warn_missing_arch=${2:-true}
# Get architectures for current target binary
binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)"
# Intersect them with the architectures we are building for
intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)"
# If there are no archs supported by this binary then warn the user
if [[ -z "$intersected_archs" ]]; then
if [[ "$warn_missing_arch" == "true" ]]; then
echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)."
fi
STRIP_BINARY_RETVAL=1
return
fi
stripped=""
for arch in $binary_archs; do
if ! [[ "${ARCHS}" == *"$arch"* ]]; then
# Strip non-valid architectures in-place
lipo -remove "$arch" -output "$binary" "$binary"
stripped="$stripped $arch"
fi
done
if [[ "$stripped" ]]; then
echo "Stripped $binary of architectures:$stripped"
fi
STRIP_BINARY_RETVAL=0
}
# Copies the bcsymbolmap files of a vendored framework
install_bcsymbolmap() {
local bcsymbolmap_path="$1"
local destination="${BUILT_PRODUCTS_DIR}"
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"
}
# Signs a framework with the provided identity
code_sign_if_enabled() {
if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then
# Use the current code_sign_identity
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'"
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
code_sign_cmd="$code_sign_cmd &"
fi
echo "$code_sign_cmd"
eval "$code_sign_cmd"
fi
}
if [[ "$CONFIGURATION" == "Debug" ]]; then
install_framework "${BUILT_PRODUCTS_DIR}/Popover/Popover.framework"
install_framework "${BUILT_PRODUCTS_DIR}/ZJTableViewManager/ZJTableViewManager.framework"
fi
if [[ "$CONFIGURATION" == "Release" ]]; then
install_framework "${BUILT_PRODUCTS_DIR}/Popover/Popover.framework"
install_framework "${BUILT_PRODUCTS_DIR}/ZJTableViewManager/ZJTableViewManager.framework"
fi
if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then
wait
fi
#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 Pods_BreastFeedingDemoVersionNumber;
FOUNDATION_EXPORT const unsigned char Pods_BreastFeedingDemoVersionString[];
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Popover" "${PODS_CONFIGURATION_BUILD_DIR}/ZJTableViewManager"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Popover/Popover.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ZJTableViewManager/ZJTableViewManager.framework/Headers"
LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks'
LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
OTHER_LDFLAGS = $(inherited) -framework "Popover" -framework "ZJTableViewManager"
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
framework module Pods_BreastFeedingDemo {
umbrella header "Pods-BreastFeedingDemo-umbrella.h"
export *
module * { export * }
}
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Popover" "${PODS_CONFIGURATION_BUILD_DIR}/ZJTableViewManager"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Popover/Popover.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ZJTableViewManager/ZJTableViewManager.framework/Headers"
LD_RUNPATH_SEARCH_PATHS = $(inherited) /usr/lib/swift '@executable_path/Frameworks' '@loader_path/Frameworks'
LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
OTHER_LDFLAGS = $(inherited) -framework "Popover" -framework "ZJTableViewManager"
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_PODFILE_DIR_PATH = ${SRCROOT}/.
PODS_ROOT = ${SRCROOT}/Pods
PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates
USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.3.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${CURRENT_PROJECT_VERSION}</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
#import <Foundation/Foundation.h>
@interface PodsDummy_Popover : NSObject
@end
@implementation PodsDummy_Popover
@end
#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
#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 PopoverVersionNumber;
FOUNDATION_EXPORT const unsigned char PopoverVersionString[];
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Popover
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/Popover
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
framework module Popover {
umbrella header "Popover-umbrella.h"
export *
module * { export * }
}
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Popover
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/Popover
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
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
<string>${PRODUCT_BUNDLE_IDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0.8</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>${CURRENT_PROJECT_VERSION}</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
#import <Foundation/Foundation.h>
@interface PodsDummy_ZJTableViewManager : NSObject
@end
@implementation PodsDummy_ZJTableViewManager
@end
#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
#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 ZJTableViewManagerVersionNumber;
FOUNDATION_EXPORT const unsigned char ZJTableViewManagerVersionString[];
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/ZJTableViewManager
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/ZJTableViewManager
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
framework module ZJTableViewManager {
umbrella header "ZJTableViewManager-umbrella.h"
export *
module * { export * }
}
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/ZJTableViewManager
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift
OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}
PODS_TARGET_SRCROOT = ${PODS_ROOT}/ZJTableViewManager
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
Copyright (c) 2018 Javen (https://github.com/JavenZ).
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.
\ No newline at end of file
[English introduction](https://github.com/JavenZ/ZJTableViewManager/blob/master/README_EN.md)
### 关于ZJTableViewManager
强大的数据驱动的TableView,构建复杂TableView从未如此轻松。
### 使用
直接拖入ZJTableViewManager文件夹里面的文件,或者用cocoapods
`pod 'ZJTableViewManager', '~> 1.0.7'`
### 适配
| Version | Swift | Xcode |
| -------------- | --------- | ------------------ |
| 0.2.7 | 4.0 / 4.2 | Xcode10 or later |
| 1.0.3 or later | 4.0 ~ 5.2 | Xcode10.2 or later |
### 简介
[ZJTableViewManager](https://github.com/JavenZ/ZJTableViewManager) 基于数据驱动页面的理念,接管了`UITableView``delegate``dataSource`的逻辑,开发者只需要关心数据的处理,避免了冗长的判断,让代码更加易于维护。
比如一个页面里面是UITableView,有5种不同的Cell。按照传统的写法,`tableView(_:cellForRowAt:)`代理方法里会是这样:
```swift
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if condition1 {
return SimpleStringCell
}else if condition2 {
return FullLengthTextFieldCell
}else if condition3 {
return TextCell
}else if condition4 {
return PasswordCell
}else if condition5 {
return SwitchCell
}else {
return DefaultCell
}
}
```
同时下面两个方法里面也很可能需要写上这一串判断条件。显而易见的缺点:代码冗长
```swift
tableView(_:, heightForRowAt:)
tableView(_:, didSelectRowAt:)
```
其次,实际项目中,很多人直接用`IndexPath`作为判断条件,大量`if else`,且当需要对`Cell`显示顺序做调整时,基于`IndexPath`的判断就会出问题,改起来特别容易出现Bug。
当然有经验的程序员会抽象出一个`type`,通过`type`来判断`Cell`类型,避免`IndexPath`的缺陷。这其实已经算是一种数据驱动的思想了,相比用`IndexPath`判断,更加不容易出问题。但是这还不够,这些方法里面依然会有很多`if else`,影响观感也影响逻辑理解。
**所以[ZJTableViewManager](https://github.com/JavenZ/ZJTableViewManager) 在以上的基础上进一步做了封装,效果如下:**
![](https://upload-images.jianshu.io/upload_images/1653855-235590ab7042ec24.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
**就如示例代码所示,不需要处理TableView的delegate和dataSource,不需要那些`if else`,Item控制Cell处理Cell的事件,我们只要专心用代码描述这个TableView长什么样子,它就会按照我们描述的样子搭建出来。**
### 使用方式
#### 1.系统默认Cell
创建系统默认的cell,使用ZJTableViewItem类,创建之后加入section即可
```swift
let item = ZJTableViewItem(title: "测试cell 1")
section.add(item: item)
```
根据需要可以修改样式为`subtitle`
```swift
item.style = .subtitle
item.detailLabelText = "detail label text"
```
运行结果:
![](https://upload-images.jianshu.io/upload_images/1653855-d5dd7f7890aae7e4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
**总结一下系统默认Cell的使用步骤:**
1. 页面上创建一个TableView(StoryBoard拖或者纯代码创建都可以)
2. 通过这个TableView初始化一个manager
3. 创建一个Section,加入到manager里
4. 创建Cell对应的Item,赋值之后加入到section里
5. `manager.reload()`
具体不展开说了,系统cell就那几个样式,平时也很少用到,自己尝试吧。
#### 2.自定义Cell
自定义Cell才是我们实际项目中用到最多的,所以这一块需要详细说一下。
我们来尝试自定义这样一个Cell
![](https://upload-images.jianshu.io/upload_images/1653855-127f15ffb418928d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
左边是一个UILabel,右边一个UISwitch,功能是在UISwitch开关时会发出回调,在VC中处理。
首先,新建一个ZJSwitchCell类,继承自UITableViewCell,勾选上Also create XIB file(当然不用XIB,纯代码布局也可以)
![](https://upload-images.jianshu.io/upload_images/1653855-b483247676b353fa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
在xib文件里面拖上控件,并且把控件和UISwitch的value change事件拖线到Cell文件里面:
![](https://upload-images.jianshu.io/upload_images/1653855-dd3722b4e90e93a4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](https://upload-images.jianshu.io/upload_images/1653855-0319d60626b755c5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
**下面是重点:**
在ZJSwitchCell.swift文件里面写一个ZJSwitchCellItem类,继承自ZJTableViewItem,有三个属性,标题title,开关状态isOn,回调闭包didChanged。
![](https://upload-images.jianshu.io/upload_images/1653855-987d09829c0c8c46.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
让ZJSwitchCell遵循ZJCellProtocol协议,如图所示,Xcode会弹出提示,点击fix,会自动加上需要的方法和类型
![](https://upload-images.jianshu.io/upload_images/1653855-7a180aa4b0738837.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
ZJCelltemClass这里填写上前面写好的ZJSwitchCellItem类名
![](https://upload-images.jianshu.io/upload_images/1653855-77c0c7dddde5d25b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
然后Xcode还会有个错误提示,继续点fix,就好了。
![](https://upload-images.jianshu.io/upload_images/1653855-d8cbf7d997086d67.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
**可能有时候Xcode自动fix补全的代码有问题,比如说`typealias ZJCelltemClass = `出现两遍或者根本没有fix按钮,不要慌,cmd+b编译一下,再试试就好了**
**然后在`cellWillAppear()`方法里面写上赋值操作,它等价于`tableView(_:, cellForRowAt:)`方法。再到`valueChanged(:)`方法里面,记录UISwitch的状态,并把当前这个item通过回调传出去。Cell部分的自定义就完成了。**
![](https://upload-images.jianshu.io/upload_images/1653855-0cb0f5ae02200802.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
最后,在VC里面使用,使用之前需要`manager.register(ZJSwitchCell.self, ZJSwitchItem.self)`注册一下,这和之前使用系统默认的Cell有区别,自定义的Cell都需要注册一下才可以使用。
```swift
class FormViewController: UIViewController {
var tableView: UITableView!
var manager: ZJTableViewManager!
override func viewDidLoad() {
super.viewDidLoad()
tableView = UITableView(frame: view.bounds, style: .plain)
view.addSubview(tableView)
manager = ZJTableViewManager(tableView: tableView)
manager.register(ZJSwitchCell.self, ZJSwitchItem.self)
let section = ZJTableViewSection()
manager.add(section: section)
// Switch Item
section.add(item: ZJSwitchItem(title: "Switch Item", isOn: false, didChanged: { item in
zj_log(item.isOn)
}))
manager.reload()
}
}
```
**总结一下自定义Cell的步骤:**
1. 新建Cell(XIB或者纯代码都可以)
2. 创建Cell对应的Item,通过Item给Cell传值(**实际项目中一般是用Item持有Model,在`cellWillAppear()`中通过item.model取值并赋值到控件里面**
3. 在VC中给把Cell向TableViewManager注册。
其余使用方式参考上面系统默认Cell的使用。
#### 3.Cell固定高度及动态计算高度处理
前面示例的两种Cell高度都是系统默认的44,我们实际项目中需要不同高度的Cell,怎么处理呢?
**固定高度:**
聪明的同学可能已经发现了,Item控制了Cell的所有表现,所以肯定是通过Item来控制的。Item中有个cellHeight属性,只要给它赋值,就能够控制Cell的高度。
我们可以重写Item对象的init()方法,在里面给一个固定的高度
```swift
override init() {
super.init()
cellHeight = 100
}
```
或者在VC里面初始化Item之后,再给cellHeight赋值,都是可以的。
**动态高度:**
动态高度的前提是使用AutoLayout布局,约束没有缺失,然后在Item赋值好了之后,调用一下autoHeight(:)方法,高度就算好了。
```swift
let item = AutomaticHeightCellItem()
item.feed = feed
//计算高度
item.autoHeight(manager)
//把cell加入进section
section.add(item: item)
```
具体可以看下面的文章,里面说的更详细,这里不展开说了。
[Swift UITableViewCell高性能动态计算高度](https://www.jianshu.com/p/34c495942ed4)
#### 4.TableView相关事件(如点击事件)
设置点击事件回调:
```swift
item.setSelectionHandler { (callBackItem: LevelCellItem) in
//Do some thing
}
```
其他事件同理,包括section的一些事件(比如section即将出现之类的回调),具体看Demo。
#### 5.Scroll事件的代理
我们在使用TableView的同时,有时还需要处理Scroll事件,比如说判断滚动已经停止,或者监听滚动事件等,可以通过设置`manager.scrollDelegate = self`并遵循`ZJTableViewScrollDelegate `的方式,获取所有滚动事件的回调,使用方式和`UIScrollViewDelegate`一样。
### Demo:
电商项目的评价、打星评分、添加评论图片,
![image](https://github.com/JavenZ/ZJTableViewManager/blob/master/ScreenShot/pictureitem_edit.gif?raw=true) ![image](https://github.com/JavenZ/ZJTableViewManager/blob/master/ScreenShot/pictrue_item_read.gif?raw=true)
这里主要有3个cell,一个打星的cell,一个评论的cell,一个添加图片的cell。viewController里只有20行代码,耦合性低。
```swift
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Demo"
self.manager = ZJTableViewManager(tableView: self.tableView)
//register cell
self.manager?.register(OrderEvaluateCell.self, OrderEvaluateItem.self)
self.manager?.register(ZJPictureTableCell.self, ZJPictureTableItem.self)
//add section
let section = ZJTableViewSection(headerHeight: 10, color: UIColor.init(white: 0.9, alpha: 1))
self.manager?.add(section: section)
//add cells
for i in 0...10 {
i //评价cell
section.add(item: OrderEvaluateItem(title: "评价"))
let textItem = ZJTextItem(text: nil, placeHolder: "请在此输入您的评价~", ddChanged: nil)
textItem.isHideSeparator = true
section.add(item: textItem)
//图片cell
if i%2 == 1 {
//只展示图片
let pictureItem = ZJPictureTableItem(maxNumber: 5, column: 4, space: 15, width: self.view.frame.size.width, superVC: self, pictures: [image])
pictureItem.type = .read
section.add(item: pictureItem)
}else{
//添加图片
let pictureItem = ZJPictureTableItem(maxNumber: 5, column: 4, space: 15, width: self.view.frame.size.width, superVC: self)
pictureItem.type = .edit
section.add(item: pictureItem)
}
}
}
```
### 注:
TableView可以storyboard、xib、纯代码初始化,cell可以xib或者纯代码构建
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment