Pod fo SWCells
This commit is contained in:
parent
1abf1a0c2a
commit
3628451317
@ -7,6 +7,8 @@
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
538D4E6DD1FC94B931B43D52 /* libPods-FMC Planner 2UITests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 168D3CE5E84BDA0F157A7CF7 /* libPods-FMC Planner 2UITests.a */; };
|
||||
7724A561D957642263D75813 /* libPods-FMC Planner 2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 02FB9097A522461BE8F904D4 /* libPods-FMC Planner 2.a */; };
|
||||
E227C7831C9F42AB00DE0CA4 /* ViewControllerKeyboard.m in Sources */ = {isa = PBXBuildFile; fileRef = E227C7821C9F42AB00DE0CA4 /* ViewControllerKeyboard.m */; };
|
||||
E227C7861C9F474100DE0CA4 /* ViewControllerScreen.m in Sources */ = {isa = PBXBuildFile; fileRef = E227C7851C9F474100DE0CA4 /* ViewControllerScreen.m */; };
|
||||
E22EE9D11C9DB7B3001F5BC0 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = E22EE9D01C9DB7B3001F5BC0 /* main.m */; };
|
||||
@ -27,6 +29,7 @@
|
||||
E2A927161CA30CEE00606E07 /* SharedDeclerations.m in Sources */ = {isa = PBXBuildFile; fileRef = E2A927151CA30CEE00606E07 /* SharedDeclerations.m */; };
|
||||
E2B694BC1CAC0C56007B28EF /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E2B694BB1CAC0C56007B28EF /* Security.framework */; };
|
||||
E2CC73E31CA2B7C7005B786E /* PERF INIT.plist in Resources */ = {isa = PBXBuildFile; fileRef = E2CC73E21CA2B7C7005B786E /* PERF INIT.plist */; };
|
||||
FBF6796DA6BFEFE056737798 /* libPods-FMC Planner 2Tests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = EAA5BF6A3B18A12DDBE49807 /* libPods-FMC Planner 2Tests.a */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
@ -47,6 +50,14 @@
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
02FB9097A522461BE8F904D4 /* libPods-FMC Planner 2.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-FMC Planner 2.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
168D3CE5E84BDA0F157A7CF7 /* libPods-FMC Planner 2UITests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-FMC Planner 2UITests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
3A4DEEC164570A675464527C /* Pods-FMC Planner 2UITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FMC Planner 2UITests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-FMC Planner 2UITests/Pods-FMC Planner 2UITests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
49ECBB2A9C708150C7EF0B6D /* Pods-FMC Planner 2.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FMC Planner 2.release.xcconfig"; path = "Pods/Target Support Files/Pods-FMC Planner 2/Pods-FMC Planner 2.release.xcconfig"; sourceTree = "<group>"; };
|
||||
64A5F6E611B5803249E6DC1F /* Pods-FMC Planner 2Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FMC Planner 2Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-FMC Planner 2Tests/Pods-FMC Planner 2Tests.release.xcconfig"; sourceTree = "<group>"; };
|
||||
7001889F24BA85C99E7B33D5 /* Pods-FMC Planner 2Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FMC Planner 2Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-FMC Planner 2Tests/Pods-FMC Planner 2Tests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
7D8EFDFEC3DAB0323BA29ECE /* Pods-FMC Planner 2.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FMC Planner 2.debug.xcconfig"; path = "Pods/Target Support Files/Pods-FMC Planner 2/Pods-FMC Planner 2.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
C9A81E1FC84665AB5255ECFC /* Pods-FMC Planner 2UITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FMC Planner 2UITests.release.xcconfig"; path = "Pods/Target Support Files/Pods-FMC Planner 2UITests/Pods-FMC Planner 2UITests.release.xcconfig"; sourceTree = "<group>"; };
|
||||
E227C7811C9F42AB00DE0CA4 /* ViewControllerKeyboard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewControllerKeyboard.h; sourceTree = "<group>"; };
|
||||
E227C7821C9F42AB00DE0CA4 /* ViewControllerKeyboard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewControllerKeyboard.m; sourceTree = "<group>"; };
|
||||
E227C7841C9F474100DE0CA4 /* ViewControllerScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewControllerScreen.h; sourceTree = "<group>"; };
|
||||
@ -81,6 +92,7 @@
|
||||
E2A927151CA30CEE00606E07 /* SharedDeclerations.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SharedDeclerations.m; sourceTree = "<group>"; };
|
||||
E2B694BB1CAC0C56007B28EF /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
|
||||
E2CC73E21CA2B7C7005B786E /* PERF INIT.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "PERF INIT.plist"; sourceTree = "<group>"; };
|
||||
EAA5BF6A3B18A12DDBE49807 /* libPods-FMC Planner 2Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-FMC Planner 2Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@ -90,6 +102,7 @@
|
||||
files = (
|
||||
E2B694BC1CAC0C56007B28EF /* Security.framework in Frameworks */,
|
||||
E28E106D1C9FF93D006E2C6B /* QuartzCore.framework in Frameworks */,
|
||||
7724A561D957642263D75813 /* libPods-FMC Planner 2.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -97,6 +110,7 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
FBF6796DA6BFEFE056737798 /* libPods-FMC Planner 2Tests.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@ -104,12 +118,36 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
538D4E6DD1FC94B931B43D52 /* libPods-FMC Planner 2UITests.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
2338144182E40F03C71AEF59 /* Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7D8EFDFEC3DAB0323BA29ECE /* Pods-FMC Planner 2.debug.xcconfig */,
|
||||
49ECBB2A9C708150C7EF0B6D /* Pods-FMC Planner 2.release.xcconfig */,
|
||||
7001889F24BA85C99E7B33D5 /* Pods-FMC Planner 2Tests.debug.xcconfig */,
|
||||
64A5F6E611B5803249E6DC1F /* Pods-FMC Planner 2Tests.release.xcconfig */,
|
||||
3A4DEEC164570A675464527C /* Pods-FMC Planner 2UITests.debug.xcconfig */,
|
||||
C9A81E1FC84665AB5255ECFC /* Pods-FMC Planner 2UITests.release.xcconfig */,
|
||||
);
|
||||
name = Pods;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
C605C480B46761595F28A6B2 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
02FB9097A522461BE8F904D4 /* libPods-FMC Planner 2.a */,
|
||||
EAA5BF6A3B18A12DDBE49807 /* libPods-FMC Planner 2Tests.a */,
|
||||
168D3CE5E84BDA0F157A7CF7 /* libPods-FMC Planner 2UITests.a */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E22EE9C31C9DB7B3001F5BC0 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@ -119,6 +157,8 @@
|
||||
E22EE9E81C9DB7B4001F5BC0 /* FMC Planner 2Tests */,
|
||||
E22EE9F31C9DB7B4001F5BC0 /* FMC Planner 2UITests */,
|
||||
E22EE9CD1C9DB7B3001F5BC0 /* Products */,
|
||||
2338144182E40F03C71AEF59 /* Pods */,
|
||||
C605C480B46761595F28A6B2 /* Frameworks */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
@ -253,9 +293,12 @@
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = E22EE9F91C9DB7B4001F5BC0 /* Build configuration list for PBXNativeTarget "FMC Planner 2" */;
|
||||
buildPhases = (
|
||||
A45AE008DC914A0DD8E49556 /* 📦 Check Pods Manifest.lock */,
|
||||
E22EE9C81C9DB7B3001F5BC0 /* Sources */,
|
||||
E22EE9C91C9DB7B3001F5BC0 /* Frameworks */,
|
||||
E22EE9CA1C9DB7B3001F5BC0 /* Resources */,
|
||||
C4BCF4BAE0DF3CCF767E6336 /* 📦 Embed Pods Frameworks */,
|
||||
4236BEFE32D5BB5C84CB19EE /* 📦 Copy Pods Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@ -270,9 +313,12 @@
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = E22EE9FC1C9DB7B4001F5BC0 /* Build configuration list for PBXNativeTarget "FMC Planner 2Tests" */;
|
||||
buildPhases = (
|
||||
4C1D11C59129656F83231E2A /* 📦 Check Pods Manifest.lock */,
|
||||
E22EE9E11C9DB7B4001F5BC0 /* Sources */,
|
||||
E22EE9E21C9DB7B4001F5BC0 /* Frameworks */,
|
||||
E22EE9E31C9DB7B4001F5BC0 /* Resources */,
|
||||
B6AFDBC83D653B4D67894169 /* 📦 Embed Pods Frameworks */,
|
||||
3FE66136809CE877DF71EB4C /* 📦 Copy Pods Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@ -288,9 +334,11 @@
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = E22EE9FF1C9DB7B4001F5BC0 /* Build configuration list for PBXNativeTarget "FMC Planner 2UITests" */;
|
||||
buildPhases = (
|
||||
62FE5C867DB58ECE2E58D08D /* 📦 Check Pods Manifest.lock */,
|
||||
E22EE9EC1C9DB7B4001F5BC0 /* Sources */,
|
||||
E22EE9ED1C9DB7B4001F5BC0 /* Frameworks */,
|
||||
E22EE9EE1C9DB7B4001F5BC0 /* Resources */,
|
||||
84BE43924B2E17F94479CDE2 /* 📦 Copy Pods Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
@ -378,6 +426,129 @@
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
3FE66136809CE877DF71EB4C /* 📦 Copy Pods Resources */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "📦 Copy Pods Resources";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FMC Planner 2Tests/Pods-FMC Planner 2Tests-resources.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
4236BEFE32D5BB5C84CB19EE /* 📦 Copy Pods Resources */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "📦 Copy Pods Resources";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FMC Planner 2/Pods-FMC Planner 2-resources.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
4C1D11C59129656F83231E2A /* 📦 Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "📦 Check Pods Manifest.lock";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
62FE5C867DB58ECE2E58D08D /* 📦 Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "📦 Check Pods Manifest.lock";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
84BE43924B2E17F94479CDE2 /* 📦 Copy Pods Resources */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "📦 Copy Pods Resources";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FMC Planner 2UITests/Pods-FMC Planner 2UITests-resources.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
A45AE008DC914A0DD8E49556 /* 📦 Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "📦 Check Pods Manifest.lock";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
B6AFDBC83D653B4D67894169 /* 📦 Embed Pods Frameworks */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "📦 Embed Pods Frameworks";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FMC Planner 2Tests/Pods-FMC Planner 2Tests-frameworks.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
C4BCF4BAE0DF3CCF767E6336 /* 📦 Embed Pods Frameworks */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = "📦 Embed Pods Frameworks";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FMC Planner 2/Pods-FMC Planner 2-frameworks.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
E22EE9C81C9DB7B3001F5BC0 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
@ -522,6 +693,7 @@
|
||||
};
|
||||
E22EE9FA1C9DB7B4001F5BC0 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 7D8EFDFEC3DAB0323BA29ECE /* Pods-FMC Planner 2.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
|
||||
@ -537,6 +709,7 @@
|
||||
};
|
||||
E22EE9FB1C9DB7B4001F5BC0 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 49ECBB2A9C708150C7EF0B6D /* Pods-FMC Planner 2.release.xcconfig */;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
|
||||
@ -552,6 +725,7 @@
|
||||
};
|
||||
E22EE9FD1C9DB7B4001F5BC0 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 7001889F24BA85C99E7B33D5 /* Pods-FMC Planner 2Tests.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
INFOPLIST_FILE = "FMC Planner 2Tests/Info.plist";
|
||||
@ -564,6 +738,7 @@
|
||||
};
|
||||
E22EE9FE1C9DB7B4001F5BC0 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 64A5F6E611B5803249E6DC1F /* Pods-FMC Planner 2Tests.release.xcconfig */;
|
||||
buildSettings = {
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
INFOPLIST_FILE = "FMC Planner 2Tests/Info.plist";
|
||||
@ -576,6 +751,7 @@
|
||||
};
|
||||
E22EEA001C9DB7B4001F5BC0 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 3A4DEEC164570A675464527C /* Pods-FMC Planner 2UITests.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
INFOPLIST_FILE = "FMC Planner 2UITests/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
@ -588,6 +764,7 @@
|
||||
};
|
||||
E22EEA011C9DB7B4001F5BC0 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = C9A81E1FC84665AB5255ECFC /* Pods-FMC Planner 2UITests.release.xcconfig */;
|
||||
buildSettings = {
|
||||
INFOPLIST_FILE = "FMC Planner 2UITests/Info.plist";
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
|
||||
@ -29,7 +29,8 @@
|
||||
|
||||
- (void)downloadFromDropbox:(NSArray *)files;
|
||||
- (void)uploadToDropbox:(NSArray *)files;
|
||||
- (NSArray *)contentsOfPath:(NSString *)path;
|
||||
- (void)contentsOfPath:(NSString *)path
|
||||
completion:(void (^)(NSArray *data))handler;
|
||||
|
||||
#pragma mark - Other methods
|
||||
|
||||
|
||||
@ -96,11 +96,11 @@
|
||||
#pragma mark - File and directory operations
|
||||
/**
|
||||
* Pass nil as path for root dir
|
||||
* @return Content of directory at path or nil if error
|
||||
* @param completion executed after completion
|
||||
*/
|
||||
// !!!: Cannot be asynchronous
|
||||
// TODO: Alert on error
|
||||
- (NSArray *)contentsOfPath:(NSString *)path
|
||||
- (void)contentsOfPath:(NSString *)path
|
||||
completion:(void (^)(NSArray *data))handler
|
||||
{
|
||||
|
||||
if (path == nil) {
|
||||
@ -132,18 +132,19 @@
|
||||
[[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
|
||||
temp = [temp stringByReplacingOccurrencesOfString:@"\\/" withString:@"/"];
|
||||
request.HTTPBody = [temp dataUsingEncoding:NSASCIIStringEncoding];
|
||||
NSURLResponse *response = nil;
|
||||
NSError *error = nil;
|
||||
id dataOut =
|
||||
[self parseJSON:[NSURLConnection sendSynchronousRequest:request
|
||||
returningResponse:&response
|
||||
error:&error]];
|
||||
if ([dataOut isKindOfClass:[NSDictionary class]]) {
|
||||
return [dataOut valueForKey:@"entries"];
|
||||
}
|
||||
else {
|
||||
return nil;
|
||||
|
||||
[NSURLConnection sendAsynchronousRequest:request
|
||||
queue:[NSOperationQueue mainQueue]
|
||||
completionHandler:^(NSURLResponse *response,
|
||||
NSData *data, NSError *error) {
|
||||
data =
|
||||
[NSJSONSerialization JSONObjectWithData:data
|
||||
options:0
|
||||
error:nil];
|
||||
if ([data isKindOfClass:[NSDictionary class]]) {
|
||||
handler([data valueForKey:@"entries"]);
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
||||
// TODO: Alert on error
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
// Copyright © 2016 Kilian Hofmann. All rights reserved.
|
||||
//
|
||||
|
||||
#import "AppDelegate.h"
|
||||
#import "SharedDeclerations.h"
|
||||
#import "ViewController.h"
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@ -32,6 +32,27 @@
|
||||
[NSPredicate predicateWithFormat:@"NOT (SELF BEGINSWITH %@)",
|
||||
@"."]] mutableCopy];
|
||||
}
|
||||
if ([self.title isEqualToString:@"Download"]) {
|
||||
DropboxV2ObjC *dbClient =
|
||||
((AppDelegate *)[UIApplication sharedApplication].delegate)
|
||||
.dbClient;
|
||||
[dbClient
|
||||
contentsOfPath:nil
|
||||
completion:^(NSArray *data) {
|
||||
NSMutableArray *temp = [[NSMutableArray alloc] init];
|
||||
|
||||
for (NSDictionary *dict in data) {
|
||||
[temp addObject:[dict valueForKey:@"name"]];
|
||||
}
|
||||
|
||||
_dataSource = [[temp
|
||||
filteredArrayUsingPredicate:
|
||||
[NSPredicate
|
||||
predicateWithFormat:@"NOT (SELF BEGINSWITH %@)",
|
||||
@"."]] mutableCopy];
|
||||
[self.tableView reloadData];
|
||||
}];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Table view data source
|
||||
@ -61,11 +82,25 @@
|
||||
.row]]];
|
||||
cell.textLabel.text = [data valueForKey:@"MENU@LSKR1"];
|
||||
}
|
||||
if ([self.title isEqualToString:@"Download"]) {
|
||||
cell.textLabel.text = _dataSource[indexPath.row];
|
||||
}
|
||||
return cell;
|
||||
}
|
||||
|
||||
#pragma mark - Table view editing action
|
||||
|
||||
- (UITableViewCellEditingStyle)tableView:(UITableView *)aTableView
|
||||
editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
// Detemine if it's in editing mode
|
||||
if ([self.title isEqualToString:@"Manage"]) {
|
||||
return UITableViewCellEditingStyleDelete;
|
||||
}
|
||||
|
||||
return UITableViewCellEditingStyleNone;
|
||||
}
|
||||
|
||||
// Override to support editing the table view.
|
||||
- (void)tableView:(UITableView *)tableView
|
||||
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle
|
||||
@ -82,7 +117,8 @@
|
||||
withRowAnimation:UITableViewRowAnimationFade];
|
||||
}
|
||||
else if (editingStyle == UITableViewCellEditingStyleInsert) {
|
||||
// Create a new instance of the appropriate class, insert it into the
|
||||
// Create a new instance of the appropriate class, insert it into
|
||||
// the
|
||||
// array, and add a new row to the table view
|
||||
}
|
||||
}
|
||||
|
||||
@ -93,7 +93,10 @@
|
||||
{
|
||||
DropboxV2ObjC *dbClient =
|
||||
((AppDelegate *)[UIApplication sharedApplication].delegate).dbClient;
|
||||
NSLog(@"%@", [dbClient contentsOfPath:nil]);
|
||||
[dbClient contentsOfPath:nil
|
||||
completion:^(NSArray *data) {
|
||||
NSLog(@"%@", data);
|
||||
}];
|
||||
[dbClient uploadToDropbox:@[ @"EDDFEDDM001" ]];
|
||||
}
|
||||
|
||||
|
||||
17
Podfile
Normal file
17
Podfile
Normal file
@ -0,0 +1,17 @@
|
||||
# Uncomment this line to define a global platform for your project
|
||||
#platform :ios, '7.0'
|
||||
# Uncomment this line if you're using Swift
|
||||
# use_frameworks!
|
||||
|
||||
target 'FMC Planner 2' do
|
||||
pod 'SWTableViewCell', '~> 0.3.7'
|
||||
end
|
||||
|
||||
target 'FMC Planner 2Tests' do
|
||||
pod 'SWTableViewCell', '~> 0.3.7'
|
||||
end
|
||||
|
||||
target 'FMC Planner 2UITests' do
|
||||
pod 'SWTableViewCell', '~> 0.3.7'
|
||||
end
|
||||
|
||||
12
Podfile.lock
Normal file
12
Podfile.lock
Normal file
@ -0,0 +1,12 @@
|
||||
PODS:
|
||||
- SWTableViewCell (0.3.7)
|
||||
|
||||
DEPENDENCIES:
|
||||
- SWTableViewCell (~> 0.3.7)
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
SWTableViewCell: 2a94aadc9d47b2b611fa064566bf57948b95b579
|
||||
|
||||
PODFILE CHECKSUM: 4082bf26c4771d38d75ae63fd284178a48954fc5
|
||||
|
||||
COCOAPODS: 1.0.0.beta.5
|
||||
1
Pods/Headers/Private/SWTableViewCell/NSMutableArray+SWUtilityButtons.h
generated
Symbolic link
1
Pods/Headers/Private/SWTableViewCell/NSMutableArray+SWUtilityButtons.h
generated
Symbolic link
@ -0,0 +1 @@
|
||||
../../../SWTableViewCell/SWTableViewCell/PodFiles/NSMutableArray+SWUtilityButtons.h
|
||||
1
Pods/Headers/Private/SWTableViewCell/SWCellScrollView.h
generated
Symbolic link
1
Pods/Headers/Private/SWTableViewCell/SWCellScrollView.h
generated
Symbolic link
@ -0,0 +1 @@
|
||||
../../../SWTableViewCell/SWTableViewCell/PodFiles/SWCellScrollView.h
|
||||
1
Pods/Headers/Private/SWTableViewCell/SWLongPressGestureRecognizer.h
generated
Symbolic link
1
Pods/Headers/Private/SWTableViewCell/SWLongPressGestureRecognizer.h
generated
Symbolic link
@ -0,0 +1 @@
|
||||
../../../SWTableViewCell/SWTableViewCell/PodFiles/SWLongPressGestureRecognizer.h
|
||||
1
Pods/Headers/Private/SWTableViewCell/SWTableViewCell.h
generated
Symbolic link
1
Pods/Headers/Private/SWTableViewCell/SWTableViewCell.h
generated
Symbolic link
@ -0,0 +1 @@
|
||||
../../../SWTableViewCell/SWTableViewCell/PodFiles/SWTableViewCell.h
|
||||
1
Pods/Headers/Private/SWTableViewCell/SWUtilityButtonTapGestureRecognizer.h
generated
Symbolic link
1
Pods/Headers/Private/SWTableViewCell/SWUtilityButtonTapGestureRecognizer.h
generated
Symbolic link
@ -0,0 +1 @@
|
||||
../../../SWTableViewCell/SWTableViewCell/PodFiles/SWUtilityButtonTapGestureRecognizer.h
|
||||
1
Pods/Headers/Private/SWTableViewCell/SWUtilityButtonView.h
generated
Symbolic link
1
Pods/Headers/Private/SWTableViewCell/SWUtilityButtonView.h
generated
Symbolic link
@ -0,0 +1 @@
|
||||
../../../SWTableViewCell/SWTableViewCell/PodFiles/SWUtilityButtonView.h
|
||||
1
Pods/Headers/Public/SWTableViewCell/NSMutableArray+SWUtilityButtons.h
generated
Symbolic link
1
Pods/Headers/Public/SWTableViewCell/NSMutableArray+SWUtilityButtons.h
generated
Symbolic link
@ -0,0 +1 @@
|
||||
../../../SWTableViewCell/SWTableViewCell/PodFiles/NSMutableArray+SWUtilityButtons.h
|
||||
1
Pods/Headers/Public/SWTableViewCell/SWCellScrollView.h
generated
Symbolic link
1
Pods/Headers/Public/SWTableViewCell/SWCellScrollView.h
generated
Symbolic link
@ -0,0 +1 @@
|
||||
../../../SWTableViewCell/SWTableViewCell/PodFiles/SWCellScrollView.h
|
||||
1
Pods/Headers/Public/SWTableViewCell/SWLongPressGestureRecognizer.h
generated
Symbolic link
1
Pods/Headers/Public/SWTableViewCell/SWLongPressGestureRecognizer.h
generated
Symbolic link
@ -0,0 +1 @@
|
||||
../../../SWTableViewCell/SWTableViewCell/PodFiles/SWLongPressGestureRecognizer.h
|
||||
1
Pods/Headers/Public/SWTableViewCell/SWTableViewCell.h
generated
Symbolic link
1
Pods/Headers/Public/SWTableViewCell/SWTableViewCell.h
generated
Symbolic link
@ -0,0 +1 @@
|
||||
../../../SWTableViewCell/SWTableViewCell/PodFiles/SWTableViewCell.h
|
||||
1
Pods/Headers/Public/SWTableViewCell/SWUtilityButtonTapGestureRecognizer.h
generated
Symbolic link
1
Pods/Headers/Public/SWTableViewCell/SWUtilityButtonTapGestureRecognizer.h
generated
Symbolic link
@ -0,0 +1 @@
|
||||
../../../SWTableViewCell/SWTableViewCell/PodFiles/SWUtilityButtonTapGestureRecognizer.h
|
||||
1
Pods/Headers/Public/SWTableViewCell/SWUtilityButtonView.h
generated
Symbolic link
1
Pods/Headers/Public/SWTableViewCell/SWUtilityButtonView.h
generated
Symbolic link
@ -0,0 +1 @@
|
||||
../../../SWTableViewCell/SWTableViewCell/PodFiles/SWUtilityButtonView.h
|
||||
12
Pods/Manifest.lock
generated
Normal file
12
Pods/Manifest.lock
generated
Normal file
@ -0,0 +1,12 @@
|
||||
PODS:
|
||||
- SWTableViewCell (0.3.7)
|
||||
|
||||
DEPENDENCIES:
|
||||
- SWTableViewCell (~> 0.3.7)
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
SWTableViewCell: 2a94aadc9d47b2b611fa064566bf57948b95b579
|
||||
|
||||
PODFILE CHECKSUM: 4082bf26c4771d38d75ae63fd284178a48954fc5
|
||||
|
||||
COCOAPODS: 1.0.0.beta.5
|
||||
745
Pods/Pods.xcodeproj/project.pbxproj
generated
Normal file
745
Pods/Pods.xcodeproj/project.pbxproj
generated
Normal file
@ -0,0 +1,745 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
0D583A47668EFC54505930A5C036D773 /* Pods-FMC Planner 2Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C15AB81FFFEBCF6BEE5B468BD0B5545E /* Pods-FMC Planner 2Tests-dummy.m */; };
|
||||
1CBBD30A7EA8B42D87C8D498C8DD5B1E /* Pods-FMC Planner 2UITests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B23E67A0C064C377FC3EABA48EF0E292 /* Pods-FMC Planner 2UITests-dummy.m */; };
|
||||
218B380511204541755D85931C14B790 /* Pods-FMC Planner 2-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD190B9D3A6AD2A5BBA4B3A24FC90CF /* Pods-FMC Planner 2-dummy.m */; };
|
||||
3C2D8EEEE704D53AF92DE53D67928F8C /* SWLongPressGestureRecognizer.h in Headers */ = {isa = PBXBuildFile; fileRef = F69700723796AC56ED899E2B84397373 /* SWLongPressGestureRecognizer.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
3D615A6ABC9F95435B9FBD4EFAEAEB2F /* SWUtilityButtonTapGestureRecognizer.m in Sources */ = {isa = PBXBuildFile; fileRef = DE43F14217DC3957124418763F1E2303 /* SWUtilityButtonTapGestureRecognizer.m */; };
|
||||
54C87302200A21472E14FA050BAD4701 /* SWTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 4004AD560CAEE5F30E25FAF8F40CEC99 /* SWTableViewCell.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
5B320AA762C224E3AC5907500FA770F7 /* SWUtilityButtonView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B394B361B751CEFD895BD0D4EB41B3A /* SWUtilityButtonView.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
5D3407A8FD8A83787CD22CF6129DB994 /* SWCellScrollView.h in Headers */ = {isa = PBXBuildFile; fileRef = 47A3C86FE92C53623FBF0B71111303E7 /* SWCellScrollView.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
8B702B89CA7F94E66CBA3B8D88FAA485 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3997E5D2953ECDF377B85B234FDF550D /* Foundation.framework */; };
|
||||
8CE1802677A71BFBDB517BE9B8FD004A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3997E5D2953ECDF377B85B234FDF550D /* Foundation.framework */; };
|
||||
91864345D470F07866DBFC96F73CD0A6 /* NSMutableArray+SWUtilityButtons.h in Headers */ = {isa = PBXBuildFile; fileRef = 56C44C32AF6F23E45CF2375CDC8C1F08 /* NSMutableArray+SWUtilityButtons.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
966CD35AE94A2B392D2315494538A08E /* NSMutableArray+SWUtilityButtons.m in Sources */ = {isa = PBXBuildFile; fileRef = E4CDF94181AF733F3D89ACC2646F127C /* NSMutableArray+SWUtilityButtons.m */; };
|
||||
A16E1C19BC7C1491711F142CC25F31C4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3997E5D2953ECDF377B85B234FDF550D /* Foundation.framework */; };
|
||||
AE8CE2F68DA8D6153E1B80A30FBA07DC /* SWTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BC444C36365AE1CAFA385D879DCD196 /* SWTableViewCell.m */; };
|
||||
B0A0C942BE1400DCE21619D7E322CE3E /* SWLongPressGestureRecognizer.m in Sources */ = {isa = PBXBuildFile; fileRef = B70E0C536338B8A0482BA3B7D3D43E74 /* SWLongPressGestureRecognizer.m */; };
|
||||
C16A9D4AE16C7425F5F0CA37CFA94E1D /* SWUtilityButtonView.m in Sources */ = {isa = PBXBuildFile; fileRef = B1DAFEBC42C43D6E01A649CC0C135A83 /* SWUtilityButtonView.m */; };
|
||||
CC72E579349C08E1B8836BD77FDC136B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3997E5D2953ECDF377B85B234FDF550D /* Foundation.framework */; };
|
||||
D6AD049981C6CFEE0FA15B1DADC4C6AA /* SWCellScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FC0F6070C287B388F931494A00A3442 /* SWCellScrollView.m */; };
|
||||
E9BC64649E8DC370DED1DF6946E68CDE /* SWTableViewCell-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 76F45DDF8AA71299C511160FF6D1AF7F /* SWTableViewCell-dummy.m */; };
|
||||
E9E2A40A1751FDE2EC35BA186B79B170 /* SWUtilityButtonTapGestureRecognizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 50DDD137E72812F840B69A0BFB8468C2 /* SWUtilityButtonTapGestureRecognizer.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
2A6EC8E33046F2508691E5B5812E539A /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = B289BAE6977CD9DE587ADE66B9DC2E86;
|
||||
remoteInfo = SWTableViewCell;
|
||||
};
|
||||
519477173C358C28C8591A867D330B1D /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = B289BAE6977CD9DE587ADE66B9DC2E86;
|
||||
remoteInfo = SWTableViewCell;
|
||||
};
|
||||
55117BCA4A299CCD9AFA7FD9F324DBAF /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = B289BAE6977CD9DE587ADE66B9DC2E86;
|
||||
remoteInfo = SWTableViewCell;
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
039158F967BD6AD4DF0A24BF72585328 /* Pods-FMC Planner 2-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-FMC Planner 2-frameworks.sh"; sourceTree = "<group>"; };
|
||||
0615E57A556FFBFF066BEA93BC6B5DD1 /* libPods-FMC Planner 2Tests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-FMC Planner 2Tests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
0A1A1F3FFBBC7563C1CD6631EC29D187 /* Pods-FMC Planner 2UITests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-FMC Planner 2UITests-resources.sh"; sourceTree = "<group>"; };
|
||||
18F4C72F03168705E732E5085CCC91B2 /* libSWTableViewCell.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libSWTableViewCell.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
1E3EA84E959744DAE93043D9282F66D8 /* Pods-FMC Planner 2Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-FMC Planner 2Tests-acknowledgements.markdown"; sourceTree = "<group>"; };
|
||||
203C403E5C4AFC7F903F094AB510BCF5 /* Pods-FMC Planner 2-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-FMC Planner 2-acknowledgements.plist"; sourceTree = "<group>"; };
|
||||
2F741F2A675ABE3336A251F5212FEE79 /* Pods-FMC Planner 2UITests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-FMC Planner 2UITests-frameworks.sh"; sourceTree = "<group>"; };
|
||||
3997E5D2953ECDF377B85B234FDF550D /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
|
||||
4004AD560CAEE5F30E25FAF8F40CEC99 /* SWTableViewCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SWTableViewCell.h; path = SWTableViewCell/PodFiles/SWTableViewCell.h; sourceTree = "<group>"; };
|
||||
47A3C86FE92C53623FBF0B71111303E7 /* SWCellScrollView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SWCellScrollView.h; path = SWTableViewCell/PodFiles/SWCellScrollView.h; sourceTree = "<group>"; };
|
||||
50DDD137E72812F840B69A0BFB8468C2 /* SWUtilityButtonTapGestureRecognizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SWUtilityButtonTapGestureRecognizer.h; path = SWTableViewCell/PodFiles/SWUtilityButtonTapGestureRecognizer.h; sourceTree = "<group>"; };
|
||||
56C44C32AF6F23E45CF2375CDC8C1F08 /* NSMutableArray+SWUtilityButtons.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableArray+SWUtilityButtons.h"; path = "SWTableViewCell/PodFiles/NSMutableArray+SWUtilityButtons.h"; sourceTree = "<group>"; };
|
||||
594C4B00293311EA7BDAAFA296C74E7D /* Pods-FMC Planner 2-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-FMC Planner 2-acknowledgements.markdown"; sourceTree = "<group>"; };
|
||||
61000D21732146DCA321A1F30AF4E6F0 /* Pods-FMC Planner 2UITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-FMC Planner 2UITests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
612C8DBA65BC4D4DE5ACFBC8A3D7C58F /* Pods-FMC Planner 2Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-FMC Planner 2Tests.release.xcconfig"; sourceTree = "<group>"; };
|
||||
676CBA979F6CF38ECE927B8CEB877D02 /* Pods-FMC Planner 2Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-FMC Planner 2Tests-resources.sh"; sourceTree = "<group>"; };
|
||||
699394B77A5C46F79F1DC3DB9E1B7503 /* Pods-FMC Planner 2Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-FMC Planner 2Tests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
6CDC5661E8CCBC5BF0B10539C26DF803 /* SWTableViewCell.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SWTableViewCell.xcconfig; sourceTree = "<group>"; };
|
||||
76F45DDF8AA71299C511160FF6D1AF7F /* SWTableViewCell-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SWTableViewCell-dummy.m"; sourceTree = "<group>"; };
|
||||
7B394B361B751CEFD895BD0D4EB41B3A /* SWUtilityButtonView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SWUtilityButtonView.h; path = SWTableViewCell/PodFiles/SWUtilityButtonView.h; sourceTree = "<group>"; };
|
||||
7BC444C36365AE1CAFA385D879DCD196 /* SWTableViewCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SWTableViewCell.m; path = SWTableViewCell/PodFiles/SWTableViewCell.m; sourceTree = "<group>"; };
|
||||
7C02643E3F5D4E0C04F0561CC346824C /* Pods-FMC Planner 2UITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-FMC Planner 2UITests.release.xcconfig"; sourceTree = "<group>"; };
|
||||
7F2B6FA9487432B26C1928D76CE45D6E /* Pods-FMC Planner 2-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-FMC Planner 2-resources.sh"; sourceTree = "<group>"; };
|
||||
83E103BB392F4B5E6866353E5097A76B /* SWTableViewCell-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SWTableViewCell-prefix.pch"; sourceTree = "<group>"; };
|
||||
93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
|
||||
9BD190B9D3A6AD2A5BBA4B3A24FC90CF /* Pods-FMC Planner 2-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-FMC Planner 2-dummy.m"; sourceTree = "<group>"; };
|
||||
9D2C32CFC39045CBFACD0FBC431F4B81 /* Pods-FMC Planner 2Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-FMC Planner 2Tests-frameworks.sh"; sourceTree = "<group>"; };
|
||||
9FC0F6070C287B388F931494A00A3442 /* SWCellScrollView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SWCellScrollView.m; path = SWTableViewCell/PodFiles/SWCellScrollView.m; sourceTree = "<group>"; };
|
||||
AAD52EDE81FD13FD48311C50954E5D74 /* Pods-FMC Planner 2.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-FMC Planner 2.release.xcconfig"; sourceTree = "<group>"; };
|
||||
AD2105FAD93193C087F77CB165EC657C /* Pods-FMC Planner 2.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-FMC Planner 2.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
B15525212B036F73517E70BA1A9B83FB /* Pods-FMC Planner 2UITests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-FMC Planner 2UITests-acknowledgements.markdown"; sourceTree = "<group>"; };
|
||||
B1DAFEBC42C43D6E01A649CC0C135A83 /* SWUtilityButtonView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SWUtilityButtonView.m; path = SWTableViewCell/PodFiles/SWUtilityButtonView.m; sourceTree = "<group>"; };
|
||||
B23E67A0C064C377FC3EABA48EF0E292 /* Pods-FMC Planner 2UITests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-FMC Planner 2UITests-dummy.m"; sourceTree = "<group>"; };
|
||||
B70E0C536338B8A0482BA3B7D3D43E74 /* SWLongPressGestureRecognizer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SWLongPressGestureRecognizer.m; path = SWTableViewCell/PodFiles/SWLongPressGestureRecognizer.m; sourceTree = "<group>"; };
|
||||
C15AB81FFFEBCF6BEE5B468BD0B5545E /* Pods-FMC Planner 2Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-FMC Planner 2Tests-dummy.m"; sourceTree = "<group>"; };
|
||||
CC2235FFFB9140F64C651A6FB5C37ADF /* Pods-FMC Planner 2UITests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-FMC Planner 2UITests-acknowledgements.plist"; sourceTree = "<group>"; };
|
||||
D12E887FF3DB4CD40EB3F0A812802813 /* Pods-FMC Planner 2Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-FMC Planner 2Tests-acknowledgements.plist"; sourceTree = "<group>"; };
|
||||
DA616B247ED232D249A2888BC48CB15D /* libPods-FMC Planner 2.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-FMC Planner 2.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
DE43F14217DC3957124418763F1E2303 /* SWUtilityButtonTapGestureRecognizer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SWUtilityButtonTapGestureRecognizer.m; path = SWTableViewCell/PodFiles/SWUtilityButtonTapGestureRecognizer.m; sourceTree = "<group>"; };
|
||||
E4CDF94181AF733F3D89ACC2646F127C /* NSMutableArray+SWUtilityButtons.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableArray+SWUtilityButtons.m"; path = "SWTableViewCell/PodFiles/NSMutableArray+SWUtilityButtons.m"; sourceTree = "<group>"; };
|
||||
E7BC0AF51E039F4C639BF3FB5FD2CB16 /* libPods-FMC Planner 2UITests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-FMC Planner 2UITests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
F69700723796AC56ED899E2B84397373 /* SWLongPressGestureRecognizer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SWLongPressGestureRecognizer.h; path = SWTableViewCell/PodFiles/SWLongPressGestureRecognizer.h; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
10888D93A81B9859F15964C576FE5A36 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
A16E1C19BC7C1491711F142CC25F31C4 /* Foundation.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
A3A1A022C80BCC4F8B26053586E02298 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
CC72E579349C08E1B8836BD77FDC136B /* Foundation.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
C8CB436A9B2D87177A22C2260F24FA17 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8CE1802677A71BFBDB517BE9B8FD004A /* Foundation.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
FAB489F796F5B4B0F93972900155F316 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8B702B89CA7F94E66CBA3B8D88FAA485 /* Foundation.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
112C7921E3A497328D11F4930CBBC9CA /* iOS */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
3997E5D2953ECDF377B85B234FDF550D /* Foundation.framework */,
|
||||
);
|
||||
name = iOS;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
23E07552EBDF89C3C97554B76466A1A4 /* Support Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6CDC5661E8CCBC5BF0B10539C26DF803 /* SWTableViewCell.xcconfig */,
|
||||
76F45DDF8AA71299C511160FF6D1AF7F /* SWTableViewCell-dummy.m */,
|
||||
83E103BB392F4B5E6866353E5097A76B /* SWTableViewCell-prefix.pch */,
|
||||
);
|
||||
name = "Support Files";
|
||||
path = "../Target Support Files/SWTableViewCell";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
48B4F47E013FDDABA82FB136BA594E3E /* Pods-FMC Planner 2UITests */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B15525212B036F73517E70BA1A9B83FB /* Pods-FMC Planner 2UITests-acknowledgements.markdown */,
|
||||
CC2235FFFB9140F64C651A6FB5C37ADF /* Pods-FMC Planner 2UITests-acknowledgements.plist */,
|
||||
B23E67A0C064C377FC3EABA48EF0E292 /* Pods-FMC Planner 2UITests-dummy.m */,
|
||||
2F741F2A675ABE3336A251F5212FEE79 /* Pods-FMC Planner 2UITests-frameworks.sh */,
|
||||
0A1A1F3FFBBC7563C1CD6631EC29D187 /* Pods-FMC Planner 2UITests-resources.sh */,
|
||||
61000D21732146DCA321A1F30AF4E6F0 /* Pods-FMC Planner 2UITests.debug.xcconfig */,
|
||||
7C02643E3F5D4E0C04F0561CC346824C /* Pods-FMC Planner 2UITests.release.xcconfig */,
|
||||
);
|
||||
name = "Pods-FMC Planner 2UITests";
|
||||
path = "Target Support Files/Pods-FMC Planner 2UITests";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
730250F58758EB24A031D11645DFB713 /* Pods-FMC Planner 2 */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
594C4B00293311EA7BDAAFA296C74E7D /* Pods-FMC Planner 2-acknowledgements.markdown */,
|
||||
203C403E5C4AFC7F903F094AB510BCF5 /* Pods-FMC Planner 2-acknowledgements.plist */,
|
||||
9BD190B9D3A6AD2A5BBA4B3A24FC90CF /* Pods-FMC Planner 2-dummy.m */,
|
||||
039158F967BD6AD4DF0A24BF72585328 /* Pods-FMC Planner 2-frameworks.sh */,
|
||||
7F2B6FA9487432B26C1928D76CE45D6E /* Pods-FMC Planner 2-resources.sh */,
|
||||
AD2105FAD93193C087F77CB165EC657C /* Pods-FMC Planner 2.debug.xcconfig */,
|
||||
AAD52EDE81FD13FD48311C50954E5D74 /* Pods-FMC Planner 2.release.xcconfig */,
|
||||
);
|
||||
name = "Pods-FMC Planner 2";
|
||||
path = "Target Support Files/Pods-FMC Planner 2";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7523D91959F5B2C6AC17DDAC2AA63CFD /* Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
E5AB4BB2207F114CDCBC6DBB31D24346 /* SWTableViewCell */,
|
||||
);
|
||||
name = Pods;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
7DB346D0F39D3F0E887471402A8071AB = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */,
|
||||
BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */,
|
||||
7523D91959F5B2C6AC17DDAC2AA63CFD /* Pods */,
|
||||
9A23EB46ACA488CD4497CDDE5C43B39E /* Products */,
|
||||
F906BB080A63C3A049CC316BCA5D0867 /* Targets Support Files */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
9A23EB46ACA488CD4497CDDE5C43B39E /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
DA616B247ED232D249A2888BC48CB15D /* libPods-FMC Planner 2.a */,
|
||||
0615E57A556FFBFF066BEA93BC6B5DD1 /* libPods-FMC Planner 2Tests.a */,
|
||||
E7BC0AF51E039F4C639BF3FB5FD2CB16 /* libPods-FMC Planner 2UITests.a */,
|
||||
18F4C72F03168705E732E5085CCC91B2 /* libSWTableViewCell.a */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
9A631C0FF8CCA38E4ADC9F602F12EE9B /* Pods-FMC Planner 2Tests */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
1E3EA84E959744DAE93043D9282F66D8 /* Pods-FMC Planner 2Tests-acknowledgements.markdown */,
|
||||
D12E887FF3DB4CD40EB3F0A812802813 /* Pods-FMC Planner 2Tests-acknowledgements.plist */,
|
||||
C15AB81FFFEBCF6BEE5B468BD0B5545E /* Pods-FMC Planner 2Tests-dummy.m */,
|
||||
9D2C32CFC39045CBFACD0FBC431F4B81 /* Pods-FMC Planner 2Tests-frameworks.sh */,
|
||||
676CBA979F6CF38ECE927B8CEB877D02 /* Pods-FMC Planner 2Tests-resources.sh */,
|
||||
699394B77A5C46F79F1DC3DB9E1B7503 /* Pods-FMC Planner 2Tests.debug.xcconfig */,
|
||||
612C8DBA65BC4D4DE5ACFBC8A3D7C58F /* Pods-FMC Planner 2Tests.release.xcconfig */,
|
||||
);
|
||||
name = "Pods-FMC Planner 2Tests";
|
||||
path = "Target Support Files/Pods-FMC Planner 2Tests";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
112C7921E3A497328D11F4930CBBC9CA /* iOS */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
E5AB4BB2207F114CDCBC6DBB31D24346 /* SWTableViewCell */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
56C44C32AF6F23E45CF2375CDC8C1F08 /* NSMutableArray+SWUtilityButtons.h */,
|
||||
E4CDF94181AF733F3D89ACC2646F127C /* NSMutableArray+SWUtilityButtons.m */,
|
||||
47A3C86FE92C53623FBF0B71111303E7 /* SWCellScrollView.h */,
|
||||
9FC0F6070C287B388F931494A00A3442 /* SWCellScrollView.m */,
|
||||
F69700723796AC56ED899E2B84397373 /* SWLongPressGestureRecognizer.h */,
|
||||
B70E0C536338B8A0482BA3B7D3D43E74 /* SWLongPressGestureRecognizer.m */,
|
||||
4004AD560CAEE5F30E25FAF8F40CEC99 /* SWTableViewCell.h */,
|
||||
7BC444C36365AE1CAFA385D879DCD196 /* SWTableViewCell.m */,
|
||||
50DDD137E72812F840B69A0BFB8468C2 /* SWUtilityButtonTapGestureRecognizer.h */,
|
||||
DE43F14217DC3957124418763F1E2303 /* SWUtilityButtonTapGestureRecognizer.m */,
|
||||
7B394B361B751CEFD895BD0D4EB41B3A /* SWUtilityButtonView.h */,
|
||||
B1DAFEBC42C43D6E01A649CC0C135A83 /* SWUtilityButtonView.m */,
|
||||
23E07552EBDF89C3C97554B76466A1A4 /* Support Files */,
|
||||
);
|
||||
path = SWTableViewCell;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F906BB080A63C3A049CC316BCA5D0867 /* Targets Support Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
730250F58758EB24A031D11645DFB713 /* Pods-FMC Planner 2 */,
|
||||
9A631C0FF8CCA38E4ADC9F602F12EE9B /* Pods-FMC Planner 2Tests */,
|
||||
48B4F47E013FDDABA82FB136BA594E3E /* Pods-FMC Planner 2UITests */,
|
||||
);
|
||||
name = "Targets Support Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
930ECD1BF8DA802D63D8E2E3AC415DCE /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
91864345D470F07866DBFC96F73CD0A6 /* NSMutableArray+SWUtilityButtons.h in Headers */,
|
||||
5D3407A8FD8A83787CD22CF6129DB994 /* SWCellScrollView.h in Headers */,
|
||||
3C2D8EEEE704D53AF92DE53D67928F8C /* SWLongPressGestureRecognizer.h in Headers */,
|
||||
54C87302200A21472E14FA050BAD4701 /* SWTableViewCell.h in Headers */,
|
||||
E9E2A40A1751FDE2EC35BA186B79B170 /* SWUtilityButtonTapGestureRecognizer.h in Headers */,
|
||||
5B320AA762C224E3AC5907500FA770F7 /* SWUtilityButtonView.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
0E3766CB8C93AC8CD7CD27149189AE41 /* Pods-FMC Planner 2UITests */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 60829E66A79D1FBDC45B076F4F041544 /* Build configuration list for PBXNativeTarget "Pods-FMC Planner 2UITests" */;
|
||||
buildPhases = (
|
||||
CF9E83EB5C4A6F5A7A1AFF81488AFDE3 /* Sources */,
|
||||
A3A1A022C80BCC4F8B26053586E02298 /* Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
3A46373003E0A96B5031897E336E0EB1 /* PBXTargetDependency */,
|
||||
);
|
||||
name = "Pods-FMC Planner 2UITests";
|
||||
productName = "Pods-FMC Planner 2UITests";
|
||||
productReference = E7BC0AF51E039F4C639BF3FB5FD2CB16 /* libPods-FMC Planner 2UITests.a */;
|
||||
productType = "com.apple.product-type.library.static";
|
||||
};
|
||||
1C6854321D9441EFB37874387E26ABC6 /* Pods-FMC Planner 2 */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 30043A53303934EAF3DF5C0D073D87B0 /* Build configuration list for PBXNativeTarget "Pods-FMC Planner 2" */;
|
||||
buildPhases = (
|
||||
1A33075FAA6A411D54D84C1E074D56D4 /* Sources */,
|
||||
10888D93A81B9859F15964C576FE5A36 /* Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
8916C0958B016F5BC99D1951672C8E45 /* PBXTargetDependency */,
|
||||
);
|
||||
name = "Pods-FMC Planner 2";
|
||||
productName = "Pods-FMC Planner 2";
|
||||
productReference = DA616B247ED232D249A2888BC48CB15D /* libPods-FMC Planner 2.a */;
|
||||
productType = "com.apple.product-type.library.static";
|
||||
};
|
||||
B289BAE6977CD9DE587ADE66B9DC2E86 /* SWTableViewCell */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = A72EFDE958E96AF273B1FF6FB3F85628 /* Build configuration list for PBXNativeTarget "SWTableViewCell" */;
|
||||
buildPhases = (
|
||||
FAD4BA4CB534AB584B9947B50FF94EE6 /* Sources */,
|
||||
FAB489F796F5B4B0F93972900155F316 /* Frameworks */,
|
||||
930ECD1BF8DA802D63D8E2E3AC415DCE /* Headers */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = SWTableViewCell;
|
||||
productName = SWTableViewCell;
|
||||
productReference = 18F4C72F03168705E732E5085CCC91B2 /* libSWTableViewCell.a */;
|
||||
productType = "com.apple.product-type.library.static";
|
||||
};
|
||||
D272184DAAB09E3423A58CD7E5055D4D /* Pods-FMC Planner 2Tests */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 2A73A89DFAE4FB03D62C0D8C1BDC7E96 /* Build configuration list for PBXNativeTarget "Pods-FMC Planner 2Tests" */;
|
||||
buildPhases = (
|
||||
E8962F9A50F0D60FD242FB075A32BDF3 /* Sources */,
|
||||
C8CB436A9B2D87177A22C2260F24FA17 /* Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
B4FC62ADB4D99C07FBD97733BE672B9B /* PBXTargetDependency */,
|
||||
);
|
||||
name = "Pods-FMC Planner 2Tests";
|
||||
productName = "Pods-FMC Planner 2Tests";
|
||||
productReference = 0615E57A556FFBFF066BEA93BC6B5DD1 /* libPods-FMC Planner 2Tests.a */;
|
||||
productType = "com.apple.product-type.library.static";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
D41D8CD98F00B204E9800998ECF8427E /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastSwiftUpdateCheck = 0720;
|
||||
LastUpgradeCheck = 0700;
|
||||
};
|
||||
buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
);
|
||||
mainGroup = 7DB346D0F39D3F0E887471402A8071AB;
|
||||
productRefGroup = 9A23EB46ACA488CD4497CDDE5C43B39E /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
1C6854321D9441EFB37874387E26ABC6 /* Pods-FMC Planner 2 */,
|
||||
D272184DAAB09E3423A58CD7E5055D4D /* Pods-FMC Planner 2Tests */,
|
||||
0E3766CB8C93AC8CD7CD27149189AE41 /* Pods-FMC Planner 2UITests */,
|
||||
B289BAE6977CD9DE587ADE66B9DC2E86 /* SWTableViewCell */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
1A33075FAA6A411D54D84C1E074D56D4 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
218B380511204541755D85931C14B790 /* Pods-FMC Planner 2-dummy.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
CF9E83EB5C4A6F5A7A1AFF81488AFDE3 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
1CBBD30A7EA8B42D87C8D498C8DD5B1E /* Pods-FMC Planner 2UITests-dummy.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
E8962F9A50F0D60FD242FB075A32BDF3 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
0D583A47668EFC54505930A5C036D773 /* Pods-FMC Planner 2Tests-dummy.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
FAD4BA4CB534AB584B9947B50FF94EE6 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
966CD35AE94A2B392D2315494538A08E /* NSMutableArray+SWUtilityButtons.m in Sources */,
|
||||
D6AD049981C6CFEE0FA15B1DADC4C6AA /* SWCellScrollView.m in Sources */,
|
||||
B0A0C942BE1400DCE21619D7E322CE3E /* SWLongPressGestureRecognizer.m in Sources */,
|
||||
E9BC64649E8DC370DED1DF6946E68CDE /* SWTableViewCell-dummy.m in Sources */,
|
||||
AE8CE2F68DA8D6153E1B80A30FBA07DC /* SWTableViewCell.m in Sources */,
|
||||
3D615A6ABC9F95435B9FBD4EFAEAEB2F /* SWUtilityButtonTapGestureRecognizer.m in Sources */,
|
||||
C16A9D4AE16C7425F5F0CA37CFA94E1D /* SWUtilityButtonView.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXTargetDependency section */
|
||||
3A46373003E0A96B5031897E336E0EB1 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
name = SWTableViewCell;
|
||||
target = B289BAE6977CD9DE587ADE66B9DC2E86 /* SWTableViewCell */;
|
||||
targetProxy = 55117BCA4A299CCD9AFA7FD9F324DBAF /* PBXContainerItemProxy */;
|
||||
};
|
||||
8916C0958B016F5BC99D1951672C8E45 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
name = SWTableViewCell;
|
||||
target = B289BAE6977CD9DE587ADE66B9DC2E86 /* SWTableViewCell */;
|
||||
targetProxy = 519477173C358C28C8591A867D330B1D /* PBXContainerItemProxy */;
|
||||
};
|
||||
B4FC62ADB4D99C07FBD97733BE672B9B /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
name = SWTableViewCell;
|
||||
target = B289BAE6977CD9DE587ADE66B9DC2E86 /* SWTableViewCell */;
|
||||
targetProxy = 2A6EC8E33046F2508691E5B5812E539A /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
86D4C3B8AF2B8F235B051C896C509289 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = AAD52EDE81FD13FD48311C50954E5D74 /* Pods-FMC Planner 2.release.xcconfig */;
|
||||
buildSettings = {
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||
MACH_O_TYPE = staticlib;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PODS_ROOT = "$(SRCROOT)";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
936A324D7A163F2BB7D92727DD193DAC /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = AD2105FAD93193C087F77CB165EC657C /* Pods-FMC Planner 2.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||
MACH_O_TYPE = staticlib;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PODS_ROOT = "$(SRCROOT)";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
A2744BE561A0CD0F4083C58709B9529A /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"POD_CONFIGURATION_DEBUG=1",
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
STRIP_INSTALLED_PRODUCT = NO;
|
||||
SYMROOT = "${SRCROOT}/../build";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
BEDB8ED94D9AF98E73C0E33DD270DFC3 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 612C8DBA65BC4D4DE5ACFBC8A3D7C58F /* Pods-FMC Planner 2Tests.release.xcconfig */;
|
||||
buildSettings = {
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||
MACH_O_TYPE = staticlib;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PODS_ROOT = "$(SRCROOT)";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
E441FF090176A1DA92CACB59D82429C5 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 61000D21732146DCA321A1F30AF4E6F0 /* Pods-FMC Planner 2UITests.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||
MACH_O_TYPE = staticlib;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PODS_ROOT = "$(SRCROOT)";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
E732ABB2917760AA5D452B5BEC5D9BFD /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 699394B77A5C46F79F1DC3DB9E1B7503 /* Pods-FMC Planner 2Tests.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||
MACH_O_TYPE = staticlib;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PODS_ROOT = "$(SRCROOT)";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
EC31DFA9ED78A0EECED16A4037FDB2C4 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 6CDC5661E8CCBC5BF0B10539C26DF803 /* SWTableViewCell.xcconfig */;
|
||||
buildSettings = {
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_PREFIX_HEADER = "Target Support Files/SWTableViewCell/SWTableViewCell-prefix.pch";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PRIVATE_HEADERS_FOLDER_PATH = "";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
EF415C5C7AAB01F64D8715E670FB89F7 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 7C02643E3F5D4E0C04F0561CC346824C /* Pods-FMC Planner 2UITests.release.xcconfig */;
|
||||
buildSettings = {
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||
MACH_O_TYPE = staticlib;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PODS_ROOT = "$(SRCROOT)";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
F24A8E2465A7C10A54BE3E33D1A368A8 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
COPY_PHASE_STRIP = YES;
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"POD_CONFIGURATION_RELEASE=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||
STRIP_INSTALLED_PRODUCT = NO;
|
||||
SYMROOT = "${SRCROOT}/../build";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
F96B28ADF93E518F95F3FC1E426FB47A /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 6CDC5661E8CCBC5BF0B10539C26DF803 /* SWTableViewCell.xcconfig */;
|
||||
buildSettings = {
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_PREFIX_HEADER = "Target Support Files/SWTableViewCell/SWTableViewCell-prefix.pch";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
OTHER_LDFLAGS = "";
|
||||
OTHER_LIBTOOLFLAGS = "";
|
||||
PRIVATE_HEADERS_FOLDER_PATH = "";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PUBLIC_HEADERS_FOLDER_PATH = "";
|
||||
SDKROOT = iphoneos;
|
||||
SKIP_INSTALL = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
2A73A89DFAE4FB03D62C0D8C1BDC7E96 /* Build configuration list for PBXNativeTarget "Pods-FMC Planner 2Tests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
E732ABB2917760AA5D452B5BEC5D9BFD /* Debug */,
|
||||
BEDB8ED94D9AF98E73C0E33DD270DFC3 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
A2744BE561A0CD0F4083C58709B9529A /* Debug */,
|
||||
F24A8E2465A7C10A54BE3E33D1A368A8 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
30043A53303934EAF3DF5C0D073D87B0 /* Build configuration list for PBXNativeTarget "Pods-FMC Planner 2" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
936A324D7A163F2BB7D92727DD193DAC /* Debug */,
|
||||
86D4C3B8AF2B8F235B051C896C509289 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
60829E66A79D1FBDC45B076F4F041544 /* Build configuration list for PBXNativeTarget "Pods-FMC Planner 2UITests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
E441FF090176A1DA92CACB59D82429C5 /* Debug */,
|
||||
EF415C5C7AAB01F64D8715E670FB89F7 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
A72EFDE958E96AF273B1FF6FB3F85628 /* Build configuration list for PBXNativeTarget "SWTableViewCell" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
EC31DFA9ED78A0EECED16A4037FDB2C4 /* Debug */,
|
||||
F96B28ADF93E518F95F3FC1E426FB47A /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
|
||||
}
|
||||
60
Pods/Pods.xcodeproj/xcuserdata/.xcuserdatad/xcschemes/Pods-FMC Planner 2.xcscheme
generated
Normal file
60
Pods/Pods.xcodeproj/xcuserdata/.xcuserdatad/xcschemes/Pods-FMC Planner 2.xcscheme
generated
Normal file
@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0700"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForAnalyzing = "YES"
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = 'primary'
|
||||
BlueprintIdentifier = '1C6854321D9441EFB37874387E26ABC6'
|
||||
BlueprintName = 'Pods-FMC Planner 2'
|
||||
ReferencedContainer = 'container:Pods.xcodeproj'
|
||||
BuildableName = 'libPods-FMC Planner 2.a'>
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
buildConfiguration = "Debug"
|
||||
allowLocationSimulation = "YES">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
60
Pods/Pods.xcodeproj/xcuserdata/.xcuserdatad/xcschemes/Pods-FMC Planner 2Tests.xcscheme
generated
Normal file
60
Pods/Pods.xcodeproj/xcuserdata/.xcuserdatad/xcschemes/Pods-FMC Planner 2Tests.xcscheme
generated
Normal file
@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0700"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForAnalyzing = "YES"
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = 'primary'
|
||||
BlueprintIdentifier = 'D272184DAAB09E3423A58CD7E5055D4D'
|
||||
BlueprintName = 'Pods-FMC Planner 2Tests'
|
||||
ReferencedContainer = 'container:Pods.xcodeproj'
|
||||
BuildableName = 'libPods-FMC Planner 2Tests.a'>
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
buildConfiguration = "Debug"
|
||||
allowLocationSimulation = "YES">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
60
Pods/Pods.xcodeproj/xcuserdata/.xcuserdatad/xcschemes/Pods-FMC Planner 2UITests.xcscheme
generated
Normal file
60
Pods/Pods.xcodeproj/xcuserdata/.xcuserdatad/xcschemes/Pods-FMC Planner 2UITests.xcscheme
generated
Normal file
@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0700"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForAnalyzing = "YES"
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = 'primary'
|
||||
BlueprintIdentifier = '0E3766CB8C93AC8CD7CD27149189AE41'
|
||||
BlueprintName = 'Pods-FMC Planner 2UITests'
|
||||
ReferencedContainer = 'container:Pods.xcodeproj'
|
||||
BuildableName = 'libPods-FMC Planner 2UITests.a'>
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
buildConfiguration = "Debug"
|
||||
allowLocationSimulation = "YES">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
60
Pods/Pods.xcodeproj/xcuserdata/.xcuserdatad/xcschemes/SWTableViewCell.xcscheme
generated
Normal file
60
Pods/Pods.xcodeproj/xcuserdata/.xcuserdatad/xcschemes/SWTableViewCell.xcscheme
generated
Normal file
@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0700"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForAnalyzing = "YES"
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = 'primary'
|
||||
BlueprintIdentifier = 'B289BAE6977CD9DE587ADE66B9DC2E86'
|
||||
BlueprintName = 'SWTableViewCell'
|
||||
ReferencedContainer = 'container:Pods.xcodeproj'
|
||||
BuildableName = 'libSWTableViewCell.a'>
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
buildConfiguration = "Debug"
|
||||
allowLocationSimulation = "YES">
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
31
Pods/Pods.xcodeproj/xcuserdata/.xcuserdatad/xcschemes/xcschememanagement.plist
generated
Normal file
31
Pods/Pods.xcodeproj/xcuserdata/.xcuserdatad/xcschemes/xcschememanagement.plist
generated
Normal file
@ -0,0 +1,31 @@
|
||||
<?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-FMC Planner 2.xcscheme</key>
|
||||
<dict>
|
||||
<key>isShown</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>Pods-FMC Planner 2Tests.xcscheme</key>
|
||||
<dict>
|
||||
<key>isShown</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>Pods-FMC Planner 2UITests.xcscheme</key>
|
||||
<dict>
|
||||
<key>isShown</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>SWTableViewCell.xcscheme</key>
|
||||
<dict>
|
||||
<key>isShown</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
</plist>
|
||||
80
Pods/Pods.xcodeproj/xcuserdata/Kili2.xcuserdatad/xcschemes/Pods-FMC Planner 2.xcscheme
generated
Normal file
80
Pods/Pods.xcodeproj/xcuserdata/Kili2.xcuserdatad/xcschemes/Pods-FMC Planner 2.xcscheme
generated
Normal file
@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "5850271B473744A0C7598CCFD756CE9C"
|
||||
BuildableName = "libPods-FMC Planner 2.a"
|
||||
BlueprintName = "Pods-FMC Planner 2"
|
||||
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>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</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">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "5850271B473744A0C7598CCFD756CE9C"
|
||||
BuildableName = "libPods-FMC Planner 2.a"
|
||||
BlueprintName = "Pods-FMC Planner 2"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "5850271B473744A0C7598CCFD756CE9C"
|
||||
BuildableName = "libPods-FMC Planner 2.a"
|
||||
BlueprintName = "Pods-FMC Planner 2"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
80
Pods/Pods.xcodeproj/xcuserdata/Kili2.xcuserdatad/xcschemes/Pods-FMC Planner 2Tests.xcscheme
generated
Normal file
80
Pods/Pods.xcodeproj/xcuserdata/Kili2.xcuserdatad/xcschemes/Pods-FMC Planner 2Tests.xcscheme
generated
Normal file
@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "FADF9E114894F7C6BDA424E4F40A914A"
|
||||
BuildableName = "libPods-FMC Planner 2Tests.a"
|
||||
BlueprintName = "Pods-FMC Planner 2Tests"
|
||||
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>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</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">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "FADF9E114894F7C6BDA424E4F40A914A"
|
||||
BuildableName = "libPods-FMC Planner 2Tests.a"
|
||||
BlueprintName = "Pods-FMC Planner 2Tests"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "FADF9E114894F7C6BDA424E4F40A914A"
|
||||
BuildableName = "libPods-FMC Planner 2Tests.a"
|
||||
BlueprintName = "Pods-FMC Planner 2Tests"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
80
Pods/Pods.xcodeproj/xcuserdata/Kili2.xcuserdatad/xcschemes/Pods-FMC Planner 2UITests.xcscheme
generated
Normal file
80
Pods/Pods.xcodeproj/xcuserdata/Kili2.xcuserdatad/xcschemes/Pods-FMC Planner 2UITests.xcscheme
generated
Normal file
@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "54E2B2308DD1E05AFFD06A7D5A9CA99B"
|
||||
BuildableName = "libPods-FMC Planner 2UITests.a"
|
||||
BlueprintName = "Pods-FMC Planner 2UITests"
|
||||
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>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</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">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "54E2B2308DD1E05AFFD06A7D5A9CA99B"
|
||||
BuildableName = "libPods-FMC Planner 2UITests.a"
|
||||
BlueprintName = "Pods-FMC Planner 2UITests"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "54E2B2308DD1E05AFFD06A7D5A9CA99B"
|
||||
BuildableName = "libPods-FMC Planner 2UITests.a"
|
||||
BlueprintName = "Pods-FMC Planner 2UITests"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
80
Pods/Pods.xcodeproj/xcuserdata/Kili2.xcuserdatad/xcschemes/SWTableViewCell.xcscheme
generated
Normal file
80
Pods/Pods.xcodeproj/xcuserdata/Kili2.xcuserdatad/xcschemes/SWTableViewCell.xcscheme
generated
Normal file
@ -0,0 +1,80 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0730"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "B289BAE6977CD9DE587ADE66B9DC2E86"
|
||||
BuildableName = "libSWTableViewCell.a"
|
||||
BlueprintName = "SWTableViewCell"
|
||||
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>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</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">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "B289BAE6977CD9DE587ADE66B9DC2E86"
|
||||
BuildableName = "libSWTableViewCell.a"
|
||||
BlueprintName = "SWTableViewCell"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "B289BAE6977CD9DE587ADE66B9DC2E86"
|
||||
BuildableName = "libSWTableViewCell.a"
|
||||
BlueprintName = "SWTableViewCell"
|
||||
ReferencedContainer = "container:Pods.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
67
Pods/Pods.xcodeproj/xcuserdata/Kili2.xcuserdatad/xcschemes/xcschememanagement.plist
generated
Normal file
67
Pods/Pods.xcodeproj/xcuserdata/Kili2.xcuserdatad/xcschemes/xcschememanagement.plist
generated
Normal file
@ -0,0 +1,67 @@
|
||||
<?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-FMC Planner 2.xcscheme</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
<key>Pods-FMC Planner 2Tests.xcscheme</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
<key>Pods-FMC Planner 2UITests.xcscheme</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>3</integer>
|
||||
</dict>
|
||||
<key>SWTableViewCell.xcscheme</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>4</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>0E3766CB8C93AC8CD7CD27149189AE41</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>1C6854321D9441EFB37874387E26ABC6</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>54E2B2308DD1E05AFFD06A7D5A9CA99B</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>5850271B473744A0C7598CCFD756CE9C</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>B289BAE6977CD9DE587ADE66B9DC2E86</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>D272184DAAB09E3423A58CD7E5055D4D</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>FADF9E114894F7C6BDA424E4F40A914A</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
19
Pods/SWTableViewCell/LICENCE
generated
Normal file
19
Pods/SWTableViewCell/LICENCE
generated
Normal file
@ -0,0 +1,19 @@
|
||||
Copyright (c) 2013 Christopher Wendel
|
||||
|
||||
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.
|
||||
249
Pods/SWTableViewCell/README.md
generated
Normal file
249
Pods/SWTableViewCell/README.md
generated
Normal file
@ -0,0 +1,249 @@
|
||||
SWTableViewCell
|
||||
===============
|
||||
|
||||
<p align="center"><img src="http://i.imgur.com/njKCjK8.gif"/></p>
|
||||
|
||||
An easy-to-use UITableViewCell subclass that implements a swipeable content view which exposes utility buttons (similar to iOS 7 Mail Application)
|
||||
|
||||
##Usage
|
||||
In your Podfile:
|
||||
<pre>pod 'SWTableViewCell', '~> 0.3.7'</pre>
|
||||
|
||||
Or just clone this repo and manually add source to project
|
||||
|
||||
##Functionality
|
||||
###Right Utility Buttons
|
||||
Utility buttons that become visible on the right side of the Table View Cell when the user swipes left. This behavior is similar to that seen in the iOS apps Mail and Reminders.
|
||||
|
||||
<p align="center"><img src="http://i.imgur.com/gDZFRpr.gif"/></p>
|
||||
|
||||
###Left Utility Buttons
|
||||
Utility buttons that become visible on the left side of the Table View Cell when the user swipes right.
|
||||
|
||||
<p align="center"><img src="http://i.imgur.com/qt6aISz.gif"/></p>
|
||||
|
||||
###Features
|
||||
* Dynamic utility button scalling. As you add more buttons to a cell, the other buttons on that side get smaller to make room
|
||||
* Smart selection: The cell will pick up touch events and either scroll the cell back to center or fire the delegate method `- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath`
|
||||
<p align="center"><img src="http://i.imgur.com/TYGx9h8.gif"/></p>
|
||||
So the cell will not be considered selected when the user touches the cell while utility buttons are visible, instead the cell will slide back into place (same as iOS 7 Mail App functionality)
|
||||
* Create utilty buttons with either a title or an icon along with a RGB color
|
||||
* Tested on iOS 6.1 and above, including iOS 7
|
||||
|
||||
##Usage
|
||||
|
||||
###Standard Table View Cells
|
||||
|
||||
In your `tableView:cellForRowAtIndexPath:` method you set up the SWTableView cell and add an arbitrary amount of utility buttons to it using the included `NSMutableArray+SWUtilityButtons` category.
|
||||
|
||||
```objc
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
static NSString *cellIdentifier = @"Cell";
|
||||
|
||||
SWTableViewCell *cell = (SWTableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
|
||||
|
||||
if (cell == nil) {
|
||||
cell = [[SWTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
|
||||
cell.leftUtilityButtons = [self leftButtons];
|
||||
cell.rightUtilityButtons = [self rightButtons];
|
||||
cell.delegate = self;
|
||||
}
|
||||
|
||||
NSDate *dateObject = _testArray[indexPath.row];
|
||||
cell.textLabel.text = [dateObject description];
|
||||
cell.detailTextLabel.text = @"Some detail text";
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
||||
- (NSArray *)rightButtons
|
||||
{
|
||||
NSMutableArray *rightUtilityButtons = [NSMutableArray new];
|
||||
[rightUtilityButtons sw_addUtilityButtonWithColor:
|
||||
[UIColor colorWithRed:0.78f green:0.78f blue:0.8f alpha:1.0]
|
||||
title:@"More"];
|
||||
[rightUtilityButtons sw_addUtilityButtonWithColor:
|
||||
[UIColor colorWithRed:1.0f green:0.231f blue:0.188 alpha:1.0f]
|
||||
title:@"Delete"];
|
||||
|
||||
return rightUtilityButtons;
|
||||
}
|
||||
|
||||
- (NSArray *)leftButtons
|
||||
{
|
||||
NSMutableArray *leftUtilityButtons = [NSMutableArray new];
|
||||
|
||||
[leftUtilityButtons sw_addUtilityButtonWithColor:
|
||||
[UIColor colorWithRed:0.07 green:0.75f blue:0.16f alpha:1.0]
|
||||
icon:[UIImage imageNamed:@"check.png"]];
|
||||
[leftUtilityButtons sw_addUtilityButtonWithColor:
|
||||
[UIColor colorWithRed:1.0f green:1.0f blue:0.35f alpha:1.0]
|
||||
icon:[UIImage imageNamed:@"clock.png"]];
|
||||
[leftUtilityButtons sw_addUtilityButtonWithColor:
|
||||
[UIColor colorWithRed:1.0f green:0.231f blue:0.188f alpha:1.0]
|
||||
icon:[UIImage imageNamed:@"cross.png"]];
|
||||
[leftUtilityButtons sw_addUtilityButtonWithColor:
|
||||
[UIColor colorWithRed:0.55f green:0.27f blue:0.07f alpha:1.0]
|
||||
icon:[UIImage imageNamed:@"list.png"]];
|
||||
|
||||
return leftUtilityButtons;
|
||||
}
|
||||
```
|
||||
|
||||
###Custom Table View Cells
|
||||
|
||||
Thanks to [Matt Bowman](https://github.com/MattCBowman) you can now create custom table view cells using Interface Builder that have the capabilities of an SWTableViewCell
|
||||
|
||||
The first step is to design your cell either in a standalone nib or inside of a
|
||||
table view using prototype cells. Make sure to set the custom class on the
|
||||
cell in interface builder to the subclass you made for it:
|
||||
|
||||
<p align="center"><img src="http://i.imgur.com/mfrT1Ex.png"/></p>
|
||||
|
||||
Then set the cell reuse identifier:
|
||||
|
||||
<p align="center"><img src="http://i.imgur.com/dlmArZ1.png"/></p>
|
||||
|
||||
When writing your custom table view cell's code, make sure your cell is a
|
||||
subclass of SWTableViewCell:
|
||||
|
||||
```objc
|
||||
|
||||
#import <SWTableViewCell.h>
|
||||
|
||||
@interface MyCustomTableViewCell : SWTableViewCell
|
||||
|
||||
@property (weak, nonatomic) UILabel *customLabel;
|
||||
@property (weak, nonatomic) UIImageView *customImageView;
|
||||
|
||||
@end
|
||||
|
||||
```
|
||||
|
||||
If you are using a separate nib and not a prototype cell, you'll need to be sure to register the nib in your table view:
|
||||
|
||||
```objc
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
|
||||
[self.tableView registerNib:[UINib nibWithNibName:@"MyCustomTableViewCellNibFileName" bundle:nil] forCellReuseIdentifier:@"MyCustomCell"];
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
Then, in the `tableView:cellForRowAtIndexPath:` method of your `UITableViewDelegate` (usually your view controller), initialize your custom cell:
|
||||
|
||||
```objc
|
||||
- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
|
||||
{
|
||||
static NSString *cellIdentifier = @"MyCustomCell";
|
||||
|
||||
MyCustomTableViewCell *cell = (MyCustomTableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier
|
||||
forIndexPath:indexPath];
|
||||
|
||||
cell.leftUtilityButtons = [self leftButtons];
|
||||
cell.rightUtilityButtons = [self rightButtons];
|
||||
cell.delegate = self;
|
||||
|
||||
cell.customLabel.text = @"Some Text";
|
||||
cell.customImageView.image = [UIImage imageNamed:@"MyAwesomeTableCellImage"];
|
||||
[cell setCellHeight:cell.frame.size.height];
|
||||
return cell;
|
||||
}
|
||||
```
|
||||
|
||||
###Delegate
|
||||
|
||||
The delegate `SWTableViewCellDelegate` is used by the developer to find out which button was pressed. There are five methods:
|
||||
|
||||
```objc
|
||||
// click event on left utility button
|
||||
- (void)swipeableTableViewCell:(SWTableViewCell *)cell didTriggerLeftUtilityButtonWithIndex:(NSInteger)index;
|
||||
|
||||
// click event on right utility button
|
||||
- (void)swipeableTableViewCell:(SWTableViewCell *)cell didTriggerRightUtilityButtonWithIndex:(NSInteger)index;
|
||||
|
||||
// utility button open/close event
|
||||
- (void)swipeableTableViewCell:(SWTableViewCell *)cell scrollingToState:(SWCellState)state;
|
||||
|
||||
// prevent multiple cells from showing utilty buttons simultaneously
|
||||
- (BOOL)swipeableTableViewCellShouldHideUtilityButtonsOnSwipe:(SWTableViewCell *)cell;
|
||||
|
||||
// prevent cell(s) from displaying left/right utility buttons
|
||||
- (BOOL)swipeableTableViewCell:(SWTableViewCell *)cell canSwipeToState:(SWCellState)state;
|
||||
```
|
||||
|
||||
The index signifies which utility button the user pressed, for each side the button indices are ordered from right to left 0...n
|
||||
|
||||
####Example
|
||||
|
||||
```objc
|
||||
#pragma mark - SWTableViewDelegate
|
||||
|
||||
- (void)swipeableTableViewCell:(SWTableViewCell *)cell didTriggerLeftUtilityButtonWithIndex:(NSInteger)index {
|
||||
switch (index) {
|
||||
case 0:
|
||||
NSLog(@"check button was pressed");
|
||||
break;
|
||||
case 1:
|
||||
NSLog(@"clock button was pressed");
|
||||
break;
|
||||
case 2:
|
||||
NSLog(@"cross button was pressed");
|
||||
break;
|
||||
case 3:
|
||||
NSLog(@"list button was pressed");
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)swipeableTableViewCell:(SWTableViewCell *)cell didTriggerRightUtilityButtonWithIndex:(NSInteger)index {
|
||||
switch (index) {
|
||||
case 0:
|
||||
NSLog(@"More button was pressed");
|
||||
break;
|
||||
case 1:
|
||||
{
|
||||
// Delete button was pressed
|
||||
NSIndexPath *cellIndexPath = [self.tableView indexPathForCell:cell];
|
||||
|
||||
[_testArray removeObjectAtIndex:cellIndexPath.row];
|
||||
[self.tableView deleteRowsAtIndexPaths:@[cellIndexPath]
|
||||
withRowAnimation:UITableViewRowAnimationAutomatic];
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
(This is all code from the included example project)
|
||||
|
||||
###Gotchas
|
||||
|
||||
#### Seperator Insets
|
||||
* If you have left utility button on iOS 7, I recommend changing your Table View's seperatorInset so the seperator stretches the length of the screen
|
||||
<pre> tableView.separatorInset = UIEdgeInsetsMake(0, 0, 0, 0); </pre>
|
||||
|
||||
|
||||
##Contributing
|
||||
Use [Github issues](https://github.com/cewendel/SWTableViewCell/issues) to track bugs and feature requests.
|
||||
|
||||
##Contact
|
||||
|
||||
Chris Wendel
|
||||
|
||||
- http://twitter.com/CEWendel
|
||||
|
||||
## Licence
|
||||
|
||||
MIT
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
25
Pods/SWTableViewCell/SWTableViewCell/PodFiles/NSMutableArray+SWUtilityButtons.h
generated
Normal file
25
Pods/SWTableViewCell/SWTableViewCell/PodFiles/NSMutableArray+SWUtilityButtons.h
generated
Normal file
@ -0,0 +1,25 @@
|
||||
//
|
||||
// NSMutableArray+SWUtilityButtons.h
|
||||
// SWTableViewCell
|
||||
//
|
||||
// Created by Matt Bowman on 11/27/13.
|
||||
// Copyright (c) 2013 Chris Wendel. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
@interface NSMutableArray (SWUtilityButtons)
|
||||
|
||||
- (void)sw_addUtilityButtonWithColor:(UIColor *)color title:(NSString *)title;
|
||||
- (void)sw_addUtilityButtonWithColor:(UIColor *)color attributedTitle:(NSAttributedString *)title;
|
||||
- (void)sw_addUtilityButtonWithColor:(UIColor *)color icon:(UIImage *)icon;
|
||||
- (void)sw_addUtilityButtonWithColor:(UIColor *)color normalIcon:(UIImage *)normalIcon selectedIcon:(UIImage *)selectedIcon;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@interface NSArray (SWUtilityButtons)
|
||||
|
||||
- (BOOL)sw_isEqualToButtons:(NSArray *)buttons;
|
||||
|
||||
@end
|
||||
92
Pods/SWTableViewCell/SWTableViewCell/PodFiles/NSMutableArray+SWUtilityButtons.m
generated
Normal file
92
Pods/SWTableViewCell/SWTableViewCell/PodFiles/NSMutableArray+SWUtilityButtons.m
generated
Normal file
@ -0,0 +1,92 @@
|
||||
//
|
||||
// NSMutableArray+SWUtilityButtons.m
|
||||
// SWTableViewCell
|
||||
//
|
||||
// Created by Matt Bowman on 11/27/13.
|
||||
// Copyright (c) 2013 Chris Wendel. All rights reserved.
|
||||
//
|
||||
|
||||
#import "NSMutableArray+SWUtilityButtons.h"
|
||||
|
||||
@implementation NSMutableArray (SWUtilityButtons)
|
||||
|
||||
- (void)sw_addUtilityButtonWithColor:(UIColor *)color title:(NSString *)title
|
||||
{
|
||||
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
button.backgroundColor = color;
|
||||
[button setTitle:title forState:UIControlStateNormal];
|
||||
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
||||
[button.titleLabel setAdjustsFontSizeToFitWidth:YES];
|
||||
[self addObject:button];
|
||||
}
|
||||
|
||||
- (void)sw_addUtilityButtonWithColor:(UIColor *)color attributedTitle:(NSAttributedString *)title
|
||||
{
|
||||
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
button.backgroundColor = color;
|
||||
[button setAttributedTitle:title forState:UIControlStateNormal];
|
||||
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
||||
[self addObject:button];
|
||||
}
|
||||
|
||||
- (void)sw_addUtilityButtonWithColor:(UIColor *)color icon:(UIImage *)icon
|
||||
{
|
||||
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
button.backgroundColor = color;
|
||||
[button setImage:icon forState:UIControlStateNormal];
|
||||
[self addObject:button];
|
||||
}
|
||||
|
||||
- (void)sw_addUtilityButtonWithColor:(UIColor *)color normalIcon:(UIImage *)normalIcon selectedIcon:(UIImage *)selectedIcon {
|
||||
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
button.backgroundColor = color;
|
||||
[button setImage:normalIcon forState:UIControlStateNormal];
|
||||
[button setImage:selectedIcon forState:UIControlStateHighlighted];
|
||||
[button setImage:selectedIcon forState:UIControlStateSelected];
|
||||
[self addObject:button];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@implementation NSArray (SWUtilityButtons)
|
||||
|
||||
- (BOOL)sw_isEqualToButtons:(NSArray *)buttons
|
||||
{
|
||||
buttons = [buttons copy];
|
||||
if (!buttons || self.count != buttons.count) return NO;
|
||||
|
||||
for (NSUInteger idx = 0; idx < self.count; idx++) {
|
||||
id buttonA = self[idx];
|
||||
id buttonB = buttons[idx];
|
||||
if (![buttonA isKindOfClass:[UIButton class]] || ![buttonB isKindOfClass:[UIButton class]]) return NO;
|
||||
if (![[self class] sw_button:buttonA isEqualToButton:buttonB]) return NO;
|
||||
}
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
+ (BOOL)sw_button:(UIButton *)buttonA isEqualToButton:(UIButton *)buttonB
|
||||
{
|
||||
if (!buttonA || !buttonB) return NO;
|
||||
|
||||
UIColor *backgroundColorA = buttonA.backgroundColor;
|
||||
UIColor *backgroundColorB = buttonB.backgroundColor;
|
||||
BOOL haveEqualBackgroundColors = (!backgroundColorA && !backgroundColorB) || [backgroundColorA isEqual:backgroundColorB];
|
||||
|
||||
NSString *titleA = [buttonA titleForState:UIControlStateNormal];
|
||||
NSString *titleB = [buttonB titleForState:UIControlStateNormal];
|
||||
BOOL haveEqualTitles = (!titleA && !titleB) || [titleA isEqualToString:titleB];
|
||||
|
||||
UIImage *normalIconA = [buttonA imageForState:UIControlStateNormal];
|
||||
UIImage *normalIconB = [buttonB imageForState:UIControlStateNormal];
|
||||
BOOL haveEqualNormalIcons = (!normalIconA && !normalIconB) || [normalIconA isEqual:normalIconB];
|
||||
|
||||
UIImage *selectedIconA = [buttonA imageForState:UIControlStateSelected];
|
||||
UIImage *selectedIconB = [buttonB imageForState:UIControlStateSelected];
|
||||
BOOL haveEqualSelectedIcons = (!selectedIconA && !selectedIconB) || [selectedIconA isEqual:selectedIconB];
|
||||
|
||||
return haveEqualBackgroundColors && haveEqualTitles && haveEqualNormalIcons && haveEqualSelectedIcons;
|
||||
}
|
||||
|
||||
@end
|
||||
13
Pods/SWTableViewCell/SWTableViewCell/PodFiles/SWCellScrollView.h
generated
Normal file
13
Pods/SWTableViewCell/SWTableViewCell/PodFiles/SWCellScrollView.h
generated
Normal file
@ -0,0 +1,13 @@
|
||||
//
|
||||
// SWCellScrollView.h
|
||||
// SWTableViewCell
|
||||
//
|
||||
// Created by Matt Bowman on 11/27/13.
|
||||
// Copyright (c) 2013 Chris Wendel. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface SWCellScrollView : UIScrollView <UIGestureRecognizerDelegate>
|
||||
|
||||
@end
|
||||
42
Pods/SWTableViewCell/SWTableViewCell/PodFiles/SWCellScrollView.m
generated
Normal file
42
Pods/SWTableViewCell/SWTableViewCell/PodFiles/SWCellScrollView.m
generated
Normal file
@ -0,0 +1,42 @@
|
||||
//
|
||||
// SWCellScrollView.m
|
||||
// SWTableViewCell
|
||||
//
|
||||
// Created by Matt Bowman on 11/27/13.
|
||||
// Copyright (c) 2013 Chris Wendel. All rights reserved.
|
||||
//
|
||||
|
||||
#import "SWCellScrollView.h"
|
||||
|
||||
@implementation SWCellScrollView
|
||||
|
||||
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
|
||||
{
|
||||
if (gestureRecognizer == self.panGestureRecognizer) {
|
||||
CGPoint translation = [(UIPanGestureRecognizer*)gestureRecognizer translationInView:gestureRecognizer.view];
|
||||
return fabs(translation.y) <= fabs(translation.x);
|
||||
} else {
|
||||
return YES;
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
|
||||
// Find out if the user is actively scrolling the tableView of which this is a member.
|
||||
// If they are, return NO, and don't let the gesture recognizers work simultaneously.
|
||||
//
|
||||
// This works very well in maintaining user expectations while still allowing for the user to
|
||||
// scroll the cell sideways when that is their true intent.
|
||||
if ([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
|
||||
|
||||
// Find the current scrolling velocity in that view, in the Y direction.
|
||||
CGFloat yVelocity = [(UIPanGestureRecognizer*)gestureRecognizer velocityInView:gestureRecognizer.view].y;
|
||||
|
||||
// Return YES iff the user is not actively scrolling up.
|
||||
return fabs(yVelocity) <= 0.25;
|
||||
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
15
Pods/SWTableViewCell/SWTableViewCell/PodFiles/SWLongPressGestureRecognizer.h
generated
Normal file
15
Pods/SWTableViewCell/SWTableViewCell/PodFiles/SWLongPressGestureRecognizer.h
generated
Normal file
@ -0,0 +1,15 @@
|
||||
//
|
||||
// SWLongPressGestureRecognizer.h
|
||||
// SWTableViewCell
|
||||
//
|
||||
// Created by Matt Bowman on 11/27/13.
|
||||
// Copyright (c) 2013 Chris Wendel. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <UIKit/UIGestureRecognizerSubclass.h>
|
||||
|
||||
@interface SWLongPressGestureRecognizer : UILongPressGestureRecognizer
|
||||
|
||||
@end
|
||||
|
||||
33
Pods/SWTableViewCell/SWTableViewCell/PodFiles/SWLongPressGestureRecognizer.m
generated
Normal file
33
Pods/SWTableViewCell/SWTableViewCell/PodFiles/SWLongPressGestureRecognizer.m
generated
Normal file
@ -0,0 +1,33 @@
|
||||
//
|
||||
// SWLongPressGestureRecognizer.m
|
||||
// SWTableViewCell
|
||||
//
|
||||
// Created by Matt Bowman on 11/27/13.
|
||||
// Copyright (c) 2013 Chris Wendel. All rights reserved.
|
||||
//
|
||||
|
||||
#import "SWLongPressGestureRecognizer.h"
|
||||
|
||||
@implementation SWLongPressGestureRecognizer
|
||||
|
||||
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
|
||||
{
|
||||
[super touchesBegan:touches withEvent:event];
|
||||
}
|
||||
|
||||
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
|
||||
{
|
||||
[super touchesMoved:touches withEvent:event];
|
||||
|
||||
self.state = UIGestureRecognizerStateFailed;
|
||||
}
|
||||
|
||||
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
|
||||
{
|
||||
[super touchesEnded:touches withEvent:event];
|
||||
|
||||
self.state = UIGestureRecognizerStateFailed;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
52
Pods/SWTableViewCell/SWTableViewCell/PodFiles/SWTableViewCell.h
generated
Normal file
52
Pods/SWTableViewCell/SWTableViewCell/PodFiles/SWTableViewCell.h
generated
Normal file
@ -0,0 +1,52 @@
|
||||
//
|
||||
// SWTableViewCell.h
|
||||
// SWTableViewCell
|
||||
//
|
||||
// Created by Chris Wendel on 9/10/13.
|
||||
// Copyright (c) 2013 Chris Wendel. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <UIKit/UIGestureRecognizerSubclass.h>
|
||||
#import "SWCellScrollView.h"
|
||||
#import "SWLongPressGestureRecognizer.h"
|
||||
#import "SWUtilityButtonTapGestureRecognizer.h"
|
||||
#import "NSMutableArray+SWUtilityButtons.h"
|
||||
|
||||
@class SWTableViewCell;
|
||||
|
||||
typedef NS_ENUM(NSInteger, SWCellState)
|
||||
{
|
||||
kCellStateCenter,
|
||||
kCellStateLeft,
|
||||
kCellStateRight,
|
||||
};
|
||||
|
||||
@protocol SWTableViewCellDelegate <NSObject>
|
||||
|
||||
@optional
|
||||
- (void)swipeableTableViewCell:(SWTableViewCell *)cell didTriggerLeftUtilityButtonWithIndex:(NSInteger)index;
|
||||
- (void)swipeableTableViewCell:(SWTableViewCell *)cell didTriggerRightUtilityButtonWithIndex:(NSInteger)index;
|
||||
- (void)swipeableTableViewCell:(SWTableViewCell *)cell scrollingToState:(SWCellState)state;
|
||||
- (BOOL)swipeableTableViewCellShouldHideUtilityButtonsOnSwipe:(SWTableViewCell *)cell;
|
||||
- (BOOL)swipeableTableViewCell:(SWTableViewCell *)cell canSwipeToState:(SWCellState)state;
|
||||
- (void)swipeableTableViewCellDidEndScrolling:(SWTableViewCell *)cell;
|
||||
|
||||
@end
|
||||
|
||||
@interface SWTableViewCell : UITableViewCell
|
||||
|
||||
@property (nonatomic, copy) NSArray *leftUtilityButtons;
|
||||
@property (nonatomic, copy) NSArray *rightUtilityButtons;
|
||||
|
||||
@property (nonatomic, weak) id <SWTableViewCellDelegate> delegate;
|
||||
|
||||
- (void)setRightUtilityButtons:(NSArray *)rightUtilityButtons WithButtonWidth:(CGFloat) width;
|
||||
- (void)setLeftUtilityButtons:(NSArray *)leftUtilityButtons WithButtonWidth:(CGFloat) width;
|
||||
- (void)hideUtilityButtonsAnimated:(BOOL)animated;
|
||||
- (void)showLeftUtilityButtonsAnimated:(BOOL)animated;
|
||||
- (void)showRightUtilityButtonsAnimated:(BOOL)animated;
|
||||
|
||||
- (BOOL)isUtilityButtonsHidden;
|
||||
|
||||
@end
|
||||
800
Pods/SWTableViewCell/SWTableViewCell/PodFiles/SWTableViewCell.m
generated
Normal file
800
Pods/SWTableViewCell/SWTableViewCell/PodFiles/SWTableViewCell.m
generated
Normal file
@ -0,0 +1,800 @@
|
||||
//
|
||||
// SWTableViewCell.m
|
||||
// SWTableViewCell
|
||||
//
|
||||
// Created by Chris Wendel on 9/10/13.
|
||||
// Copyright (c) 2013 Chris Wendel. All rights reserved.
|
||||
//
|
||||
|
||||
#import "SWTableViewCell.h"
|
||||
#import "SWUtilityButtonView.h"
|
||||
|
||||
static NSString * const kTableViewCellContentView = @"UITableViewCellContentView";
|
||||
|
||||
#define kSectionIndexWidth 15
|
||||
#define kAccessoryTrailingSpace 15
|
||||
#define kLongPressMinimumDuration 0.16f
|
||||
|
||||
@interface SWTableViewCell () <UIScrollViewDelegate, UIGestureRecognizerDelegate>
|
||||
|
||||
@property (nonatomic, weak) UITableView *containingTableView;
|
||||
|
||||
@property (nonatomic, strong) UIPanGestureRecognizer *tableViewPanGestureRecognizer;
|
||||
|
||||
@property (nonatomic, assign) SWCellState cellState; // The state of the cell within the scroll view, can be left, right or middle
|
||||
@property (nonatomic, assign) CGFloat additionalRightPadding;
|
||||
|
||||
@property (nonatomic, strong) UIScrollView *cellScrollView;
|
||||
@property (nonatomic, strong) SWUtilityButtonView *leftUtilityButtonsView, *rightUtilityButtonsView;
|
||||
@property (nonatomic, strong) UIView *leftUtilityClipView, *rightUtilityClipView;
|
||||
@property (nonatomic, strong) NSLayoutConstraint *leftUtilityClipConstraint, *rightUtilityClipConstraint;
|
||||
|
||||
@property (nonatomic, strong) UILongPressGestureRecognizer *longPressGestureRecognizer;
|
||||
@property (nonatomic, strong) UITapGestureRecognizer *tapGestureRecognizer;
|
||||
|
||||
- (CGFloat)leftUtilityButtonsWidth;
|
||||
- (CGFloat)rightUtilityButtonsWidth;
|
||||
- (CGFloat)utilityButtonsPadding;
|
||||
|
||||
- (CGPoint)contentOffsetForCellState:(SWCellState)state;
|
||||
- (void)updateCellState;
|
||||
|
||||
- (BOOL)shouldHighlight;
|
||||
|
||||
@end
|
||||
|
||||
@implementation SWTableViewCell {
|
||||
UIView *_contentCellView;
|
||||
BOOL layoutUpdating;
|
||||
}
|
||||
|
||||
#pragma mark Initializers
|
||||
|
||||
- (instancetype)initWithCoder:(NSCoder *)aDecoder
|
||||
{
|
||||
self = [super initWithCoder:aDecoder];
|
||||
|
||||
if (self)
|
||||
{
|
||||
[self initializer];
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
|
||||
{
|
||||
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
|
||||
|
||||
if (self)
|
||||
{
|
||||
[self initializer];
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)initializer
|
||||
{
|
||||
layoutUpdating = NO;
|
||||
// Set up scroll view that will host our cell content
|
||||
self.cellScrollView = [[SWCellScrollView alloc] init];
|
||||
self.cellScrollView.translatesAutoresizingMaskIntoConstraints = NO;
|
||||
self.cellScrollView.delegate = self;
|
||||
self.cellScrollView.showsHorizontalScrollIndicator = NO;
|
||||
self.cellScrollView.scrollsToTop = NO;
|
||||
self.cellScrollView.scrollEnabled = YES;
|
||||
|
||||
_contentCellView = [[UIView alloc] init];
|
||||
[self.cellScrollView addSubview:_contentCellView];
|
||||
|
||||
// Add the cell scroll view to the cell
|
||||
UIView *contentViewParent = self;
|
||||
UIView *clipViewParent = self.cellScrollView;
|
||||
if (![NSStringFromClass([[self.subviews objectAtIndex:0] class]) isEqualToString:kTableViewCellContentView])
|
||||
{
|
||||
// iOS 7
|
||||
contentViewParent = [self.subviews objectAtIndex:0];
|
||||
clipViewParent = self;
|
||||
}
|
||||
NSArray *cellSubviews = [contentViewParent subviews];
|
||||
[self insertSubview:self.cellScrollView atIndex:0];
|
||||
for (UIView *subview in cellSubviews)
|
||||
{
|
||||
[_contentCellView addSubview:subview];
|
||||
}
|
||||
|
||||
// Set scroll view to perpetually have same frame as self. Specifying relative to superview doesn't work, since the latter UITableViewCellScrollView has different behaviour.
|
||||
[self addConstraints:@[
|
||||
[NSLayoutConstraint constraintWithItem:self.cellScrollView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeTop multiplier:1.0 constant:0.0],
|
||||
[NSLayoutConstraint constraintWithItem:self.cellScrollView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0.0],
|
||||
[NSLayoutConstraint constraintWithItem:self.cellScrollView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0],
|
||||
[NSLayoutConstraint constraintWithItem:self.cellScrollView attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeRight multiplier:1.0 constant:0.0],
|
||||
]];
|
||||
|
||||
self.tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(scrollViewTapped:)];
|
||||
self.tapGestureRecognizer.cancelsTouchesInView = NO;
|
||||
self.tapGestureRecognizer.delegate = self;
|
||||
[self.cellScrollView addGestureRecognizer:self.tapGestureRecognizer];
|
||||
|
||||
self.longPressGestureRecognizer = [[SWLongPressGestureRecognizer alloc] initWithTarget:self action:@selector(scrollViewPressed:)];
|
||||
self.longPressGestureRecognizer.cancelsTouchesInView = NO;
|
||||
self.longPressGestureRecognizer.minimumPressDuration = kLongPressMinimumDuration;
|
||||
self.longPressGestureRecognizer.delegate = self;
|
||||
[self.cellScrollView addGestureRecognizer:self.longPressGestureRecognizer];
|
||||
|
||||
// Create the left and right utility button views, as well as vanilla UIViews in which to embed them. We can manipulate the latter in order to effect clipping according to scroll position.
|
||||
// Such an approach is necessary in order for the utility views to sit on top to get taps, as well as allow the backgroundColor (and private UITableViewCellBackgroundView) to work properly.
|
||||
|
||||
self.leftUtilityClipView = [[UIView alloc] init];
|
||||
self.leftUtilityClipConstraint = [NSLayoutConstraint constraintWithItem:self.leftUtilityClipView attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0.0];
|
||||
self.leftUtilityButtonsView = [[SWUtilityButtonView alloc] initWithUtilityButtons:nil
|
||||
parentCell:self
|
||||
utilityButtonSelector:@selector(leftUtilityButtonHandler:)];
|
||||
|
||||
self.rightUtilityClipView = [[UIView alloc] initWithFrame:self.bounds];
|
||||
self.rightUtilityClipConstraint = [NSLayoutConstraint constraintWithItem:self.rightUtilityClipView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeRight multiplier:1.0 constant:0.0];
|
||||
self.rightUtilityButtonsView = [[SWUtilityButtonView alloc] initWithUtilityButtons:nil
|
||||
parentCell:self
|
||||
utilityButtonSelector:@selector(rightUtilityButtonHandler:)];
|
||||
|
||||
|
||||
UIView *clipViews[] = { self.rightUtilityClipView, self.leftUtilityClipView };
|
||||
NSLayoutConstraint *clipConstraints[] = { self.rightUtilityClipConstraint, self.leftUtilityClipConstraint };
|
||||
UIView *buttonViews[] = { self.rightUtilityButtonsView, self.leftUtilityButtonsView };
|
||||
NSLayoutAttribute alignmentAttributes[] = { NSLayoutAttributeRight, NSLayoutAttributeLeft };
|
||||
|
||||
for (NSUInteger i = 0; i < 2; ++i)
|
||||
{
|
||||
UIView *clipView = clipViews[i];
|
||||
NSLayoutConstraint *clipConstraint = clipConstraints[i];
|
||||
UIView *buttonView = buttonViews[i];
|
||||
NSLayoutAttribute alignmentAttribute = alignmentAttributes[i];
|
||||
|
||||
clipConstraint.priority = UILayoutPriorityDefaultHigh;
|
||||
|
||||
clipView.translatesAutoresizingMaskIntoConstraints = NO;
|
||||
clipView.clipsToBounds = YES;
|
||||
|
||||
[clipViewParent addSubview:clipView];
|
||||
[self addConstraints:@[
|
||||
// Pin the clipping view to the appropriate outer edges of the cell.
|
||||
[NSLayoutConstraint constraintWithItem:clipView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeTop multiplier:1.0 constant:0.0],
|
||||
[NSLayoutConstraint constraintWithItem:clipView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0.0],
|
||||
[NSLayoutConstraint constraintWithItem:clipView attribute:alignmentAttribute relatedBy:NSLayoutRelationEqual toItem:self attribute:alignmentAttribute multiplier:1.0 constant:0.0],
|
||||
clipConstraint,
|
||||
]];
|
||||
|
||||
[clipView addSubview:buttonView];
|
||||
[self addConstraints:@[
|
||||
// Pin the button view to the appropriate outer edges of its clipping view.
|
||||
[NSLayoutConstraint constraintWithItem:buttonView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:clipView attribute:NSLayoutAttributeTop multiplier:1.0 constant:0.0],
|
||||
[NSLayoutConstraint constraintWithItem:buttonView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:clipView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0.0],
|
||||
[NSLayoutConstraint constraintWithItem:buttonView attribute:alignmentAttribute relatedBy:NSLayoutRelationEqual toItem:clipView attribute:alignmentAttribute multiplier:1.0 constant:0.0],
|
||||
|
||||
// Constrain the maximum button width so that at least a button's worth of contentView is left visible. (The button view will shrink accordingly.)
|
||||
[NSLayoutConstraint constraintWithItem:buttonView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationLessThanOrEqual toItem:self.contentView attribute:NSLayoutAttributeWidth multiplier:1.0 constant:-kUtilityButtonWidthDefault],
|
||||
]];
|
||||
}
|
||||
}
|
||||
|
||||
static NSString * const kTableViewPanState = @"state";
|
||||
|
||||
- (void)removeOldTableViewPanObserver
|
||||
{
|
||||
[_tableViewPanGestureRecognizer removeObserver:self forKeyPath:kTableViewPanState];
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[self removeOldTableViewPanObserver];
|
||||
}
|
||||
|
||||
- (void)setContainingTableView:(UITableView *)containingTableView
|
||||
{
|
||||
[self removeOldTableViewPanObserver];
|
||||
|
||||
_tableViewPanGestureRecognizer = containingTableView.panGestureRecognizer;
|
||||
|
||||
_containingTableView = containingTableView;
|
||||
|
||||
if (containingTableView)
|
||||
{
|
||||
// Check if the UITableView will display Indices on the right. If that's the case, add a padding
|
||||
if ([_containingTableView.dataSource respondsToSelector:@selector(sectionIndexTitlesForTableView:)])
|
||||
{
|
||||
NSArray *indices = [_containingTableView.dataSource sectionIndexTitlesForTableView:_containingTableView];
|
||||
self.additionalRightPadding = indices == nil ? 0 : kSectionIndexWidth;
|
||||
}
|
||||
|
||||
_containingTableView.directionalLockEnabled = YES;
|
||||
|
||||
[self.tapGestureRecognizer requireGestureRecognizerToFail:_containingTableView.panGestureRecognizer];
|
||||
|
||||
[_tableViewPanGestureRecognizer addObserver:self forKeyPath:kTableViewPanState options:0 context:nil];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
|
||||
{
|
||||
if([keyPath isEqualToString:kTableViewPanState] && object == _tableViewPanGestureRecognizer)
|
||||
{
|
||||
if(_tableViewPanGestureRecognizer.state == UIGestureRecognizerStateBegan)
|
||||
{
|
||||
CGPoint locationInTableView = [_tableViewPanGestureRecognizer locationInView:_containingTableView];
|
||||
|
||||
BOOL inCurrentCell = CGRectContainsPoint(self.frame, locationInTableView);
|
||||
if(!inCurrentCell && _cellState != kCellStateCenter)
|
||||
{
|
||||
if ([self.delegate respondsToSelector:@selector(swipeableTableViewCellShouldHideUtilityButtonsOnSwipe:)])
|
||||
{
|
||||
if([self.delegate swipeableTableViewCellShouldHideUtilityButtonsOnSwipe:self])
|
||||
{
|
||||
[self hideUtilityButtonsAnimated:YES];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setLeftUtilityButtons:(NSArray *)leftUtilityButtons
|
||||
{
|
||||
if (![_leftUtilityButtons sw_isEqualToButtons:leftUtilityButtons]) {
|
||||
_leftUtilityButtons = leftUtilityButtons;
|
||||
|
||||
self.leftUtilityButtonsView.utilityButtons = leftUtilityButtons;
|
||||
|
||||
[self.leftUtilityButtonsView layoutIfNeeded];
|
||||
[self layoutIfNeeded];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setLeftUtilityButtons:(NSArray *)leftUtilityButtons WithButtonWidth:(CGFloat) width
|
||||
{
|
||||
_leftUtilityButtons = leftUtilityButtons;
|
||||
|
||||
[self.leftUtilityButtonsView setUtilityButtons:leftUtilityButtons WithButtonWidth:width];
|
||||
|
||||
[self.leftUtilityButtonsView layoutIfNeeded];
|
||||
[self layoutIfNeeded];
|
||||
}
|
||||
|
||||
- (void)setRightUtilityButtons:(NSArray *)rightUtilityButtons
|
||||
{
|
||||
if (![_rightUtilityButtons sw_isEqualToButtons:rightUtilityButtons]) {
|
||||
_rightUtilityButtons = rightUtilityButtons;
|
||||
|
||||
self.rightUtilityButtonsView.utilityButtons = rightUtilityButtons;
|
||||
|
||||
[self.rightUtilityButtonsView layoutIfNeeded];
|
||||
[self layoutIfNeeded];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setRightUtilityButtons:(NSArray *)rightUtilityButtons WithButtonWidth:(CGFloat) width
|
||||
{
|
||||
_rightUtilityButtons = rightUtilityButtons;
|
||||
|
||||
[self.rightUtilityButtonsView setUtilityButtons:rightUtilityButtons WithButtonWidth:width];
|
||||
|
||||
[self.rightUtilityButtonsView layoutIfNeeded];
|
||||
[self layoutIfNeeded];
|
||||
}
|
||||
|
||||
#pragma mark - UITableViewCell overrides
|
||||
|
||||
- (void)didMoveToSuperview
|
||||
{
|
||||
self.containingTableView = nil;
|
||||
UIView *view = self.superview;
|
||||
|
||||
do {
|
||||
if ([view isKindOfClass:[UITableView class]])
|
||||
{
|
||||
self.containingTableView = (UITableView *)view;
|
||||
break;
|
||||
}
|
||||
} while ((view = view.superview));
|
||||
}
|
||||
|
||||
- (void)layoutSubviews
|
||||
{
|
||||
[super layoutSubviews];
|
||||
|
||||
// Offset the contentView origin so that it appears correctly w/rt the enclosing scroll view (to which we moved it).
|
||||
CGRect frame = self.contentView.frame;
|
||||
frame.origin.x = [self leftUtilityButtonsWidth];
|
||||
_contentCellView.frame = frame;
|
||||
|
||||
self.cellScrollView.contentSize = CGSizeMake(CGRectGetWidth(self.frame) + [self utilityButtonsPadding], CGRectGetHeight(self.frame));
|
||||
|
||||
if (!self.cellScrollView.isTracking && !self.cellScrollView.isDecelerating)
|
||||
{
|
||||
self.cellScrollView.contentOffset = [self contentOffsetForCellState:_cellState];
|
||||
}
|
||||
|
||||
[self updateCellState];
|
||||
}
|
||||
|
||||
- (void)setFrame:(CGRect)frame
|
||||
{
|
||||
layoutUpdating = YES;
|
||||
// Fix for new screen sizes
|
||||
// Initially, the cell is still 320 points wide
|
||||
// We need to layout our subviews again when this changes so our constraints clip to the right width
|
||||
BOOL widthChanged = (self.frame.size.width != frame.size.width);
|
||||
|
||||
[super setFrame:frame];
|
||||
|
||||
if (widthChanged)
|
||||
{
|
||||
[self layoutIfNeeded];
|
||||
}
|
||||
layoutUpdating = NO;
|
||||
}
|
||||
|
||||
- (void)prepareForReuse
|
||||
{
|
||||
[super prepareForReuse];
|
||||
|
||||
[self hideUtilityButtonsAnimated:NO];
|
||||
}
|
||||
|
||||
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
|
||||
{
|
||||
// Work around stupid background-destroying override magic that UITableView seems to perform on contained buttons.
|
||||
|
||||
[self.leftUtilityButtonsView pushBackgroundColors];
|
||||
[self.rightUtilityButtonsView pushBackgroundColors];
|
||||
|
||||
[super setSelected:selected animated:animated];
|
||||
|
||||
[self.leftUtilityButtonsView popBackgroundColors];
|
||||
[self.rightUtilityButtonsView popBackgroundColors];
|
||||
}
|
||||
|
||||
- (void)didTransitionToState:(UITableViewCellStateMask)state {
|
||||
[super didTransitionToState:state];
|
||||
|
||||
if (state == UITableViewCellStateDefaultMask) {
|
||||
[self layoutSubviews];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Selection handling
|
||||
|
||||
- (BOOL)shouldHighlight
|
||||
{
|
||||
BOOL shouldHighlight = YES;
|
||||
|
||||
if ([self.containingTableView.delegate respondsToSelector:@selector(tableView:shouldHighlightRowAtIndexPath:)])
|
||||
{
|
||||
NSIndexPath *cellIndexPath = [self.containingTableView indexPathForCell:self];
|
||||
|
||||
shouldHighlight = [self.containingTableView.delegate tableView:self.containingTableView shouldHighlightRowAtIndexPath:cellIndexPath];
|
||||
}
|
||||
|
||||
return shouldHighlight;
|
||||
}
|
||||
|
||||
- (void)scrollViewPressed:(UIGestureRecognizer *)gestureRecognizer
|
||||
{
|
||||
if (gestureRecognizer.state == UIGestureRecognizerStateBegan && !self.isHighlighted && self.shouldHighlight)
|
||||
{
|
||||
[self setHighlighted:YES animated:NO];
|
||||
}
|
||||
|
||||
else if (gestureRecognizer.state == UIGestureRecognizerStateEnded)
|
||||
{
|
||||
// Cell is already highlighted; clearing it temporarily seems to address visual anomaly.
|
||||
[self setHighlighted:NO animated:NO];
|
||||
[self scrollViewTapped:gestureRecognizer];
|
||||
}
|
||||
|
||||
else if (gestureRecognizer.state == UIGestureRecognizerStateCancelled)
|
||||
{
|
||||
[self setHighlighted:NO animated:NO];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)scrollViewTapped:(UIGestureRecognizer *)gestureRecognizer
|
||||
{
|
||||
if (_cellState == kCellStateCenter)
|
||||
{
|
||||
if (self.isSelected)
|
||||
{
|
||||
[self deselectCell];
|
||||
}
|
||||
else if (self.shouldHighlight) // UITableView refuses selection if highlight is also refused.
|
||||
{
|
||||
[self selectCell];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Scroll back to center
|
||||
[self hideUtilityButtonsAnimated:YES];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)selectCell
|
||||
{
|
||||
if (_cellState == kCellStateCenter)
|
||||
{
|
||||
NSIndexPath *cellIndexPath = [self.containingTableView indexPathForCell:self];
|
||||
|
||||
if ([self.containingTableView.delegate respondsToSelector:@selector(tableView:willSelectRowAtIndexPath:)])
|
||||
{
|
||||
cellIndexPath = [self.containingTableView.delegate tableView:self.containingTableView willSelectRowAtIndexPath:cellIndexPath];
|
||||
}
|
||||
|
||||
if (cellIndexPath)
|
||||
{
|
||||
[self.containingTableView selectRowAtIndexPath:cellIndexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
|
||||
|
||||
if ([self.containingTableView.delegate respondsToSelector:@selector(tableView:didSelectRowAtIndexPath:)])
|
||||
{
|
||||
[self.containingTableView.delegate tableView:self.containingTableView didSelectRowAtIndexPath:cellIndexPath];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)deselectCell
|
||||
{
|
||||
if (_cellState == kCellStateCenter)
|
||||
{
|
||||
NSIndexPath *cellIndexPath = [self.containingTableView indexPathForCell:self];
|
||||
|
||||
if ([self.containingTableView.delegate respondsToSelector:@selector(tableView:willDeselectRowAtIndexPath:)])
|
||||
{
|
||||
cellIndexPath = [self.containingTableView.delegate tableView:self.containingTableView willDeselectRowAtIndexPath:cellIndexPath];
|
||||
}
|
||||
|
||||
if (cellIndexPath)
|
||||
{
|
||||
[self.containingTableView deselectRowAtIndexPath:cellIndexPath animated:NO];
|
||||
|
||||
if ([self.containingTableView.delegate respondsToSelector:@selector(tableView:didDeselectRowAtIndexPath:)])
|
||||
{
|
||||
[self.containingTableView.delegate tableView:self.containingTableView didDeselectRowAtIndexPath:cellIndexPath];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - Utility buttons handling
|
||||
|
||||
- (void)rightUtilityButtonHandler:(id)sender
|
||||
{
|
||||
SWUtilityButtonTapGestureRecognizer *utilityButtonTapGestureRecognizer = (SWUtilityButtonTapGestureRecognizer *)sender;
|
||||
NSUInteger utilityButtonIndex = utilityButtonTapGestureRecognizer.buttonIndex;
|
||||
if ([self.delegate respondsToSelector:@selector(swipeableTableViewCell:didTriggerRightUtilityButtonWithIndex:)])
|
||||
{
|
||||
[self.delegate swipeableTableViewCell:self didTriggerRightUtilityButtonWithIndex:utilityButtonIndex];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)leftUtilityButtonHandler:(id)sender
|
||||
{
|
||||
SWUtilityButtonTapGestureRecognizer *utilityButtonTapGestureRecognizer = (SWUtilityButtonTapGestureRecognizer *)sender;
|
||||
NSUInteger utilityButtonIndex = utilityButtonTapGestureRecognizer.buttonIndex;
|
||||
if ([self.delegate respondsToSelector:@selector(swipeableTableViewCell:didTriggerLeftUtilityButtonWithIndex:)])
|
||||
{
|
||||
[self.delegate swipeableTableViewCell:self didTriggerLeftUtilityButtonWithIndex:utilityButtonIndex];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)hideUtilityButtonsAnimated:(BOOL)animated
|
||||
{
|
||||
if (_cellState != kCellStateCenter)
|
||||
{
|
||||
[self.cellScrollView setContentOffset:[self contentOffsetForCellState:kCellStateCenter] animated:animated];
|
||||
|
||||
if ([self.delegate respondsToSelector:@selector(swipeableTableViewCell:scrollingToState:)])
|
||||
{
|
||||
[self.delegate swipeableTableViewCell:self scrollingToState:kCellStateCenter];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)showLeftUtilityButtonsAnimated:(BOOL)animated {
|
||||
if (_cellState != kCellStateLeft)
|
||||
{
|
||||
[self.cellScrollView setContentOffset:[self contentOffsetForCellState:kCellStateLeft] animated:animated];
|
||||
|
||||
if ([self.delegate respondsToSelector:@selector(swipeableTableViewCell:scrollingToState:)])
|
||||
{
|
||||
[self.delegate swipeableTableViewCell:self scrollingToState:kCellStateLeft];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)showRightUtilityButtonsAnimated:(BOOL)animated {
|
||||
if (_cellState != kCellStateRight)
|
||||
{
|
||||
[self.cellScrollView setContentOffset:[self contentOffsetForCellState:kCellStateRight] animated:animated];
|
||||
|
||||
if ([self.delegate respondsToSelector:@selector(swipeableTableViewCell:scrollingToState:)])
|
||||
{
|
||||
[self.delegate swipeableTableViewCell:self scrollingToState:kCellStateRight];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL)isUtilityButtonsHidden {
|
||||
return _cellState == kCellStateCenter;
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Geometry helpers
|
||||
|
||||
- (CGFloat)leftUtilityButtonsWidth
|
||||
{
|
||||
#if CGFLOAT_IS_DOUBLE
|
||||
return round(CGRectGetWidth(self.leftUtilityButtonsView.frame));
|
||||
#else
|
||||
return roundf(CGRectGetWidth(self.leftUtilityButtonsView.frame));
|
||||
#endif
|
||||
}
|
||||
|
||||
- (CGFloat)rightUtilityButtonsWidth
|
||||
{
|
||||
#if CGFLOAT_IS_DOUBLE
|
||||
return round(CGRectGetWidth(self.rightUtilityButtonsView.frame) + self.additionalRightPadding);
|
||||
#else
|
||||
return roundf(CGRectGetWidth(self.rightUtilityButtonsView.frame) + self.additionalRightPadding);
|
||||
#endif
|
||||
}
|
||||
|
||||
- (CGFloat)utilityButtonsPadding
|
||||
{
|
||||
#if CGFLOAT_IS_DOUBLE
|
||||
return round([self leftUtilityButtonsWidth] + [self rightUtilityButtonsWidth]);
|
||||
#else
|
||||
return roundf([self leftUtilityButtonsWidth] + [self rightUtilityButtonsWidth]);
|
||||
#endif
|
||||
}
|
||||
|
||||
- (CGPoint)contentOffsetForCellState:(SWCellState)state
|
||||
{
|
||||
CGPoint scrollPt = CGPointZero;
|
||||
|
||||
switch (state)
|
||||
{
|
||||
case kCellStateCenter:
|
||||
scrollPt.x = [self leftUtilityButtonsWidth];
|
||||
break;
|
||||
|
||||
case kCellStateRight:
|
||||
scrollPt.x = [self utilityButtonsPadding];
|
||||
break;
|
||||
|
||||
case kCellStateLeft:
|
||||
scrollPt.x = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
return scrollPt;
|
||||
}
|
||||
|
||||
- (void)updateCellState
|
||||
{
|
||||
if(layoutUpdating == NO)
|
||||
{
|
||||
// Update the cell state according to the current scroll view contentOffset.
|
||||
for (NSNumber *numState in @[
|
||||
@(kCellStateCenter),
|
||||
@(kCellStateLeft),
|
||||
@(kCellStateRight),
|
||||
])
|
||||
{
|
||||
SWCellState cellState = numState.integerValue;
|
||||
|
||||
if (CGPointEqualToPoint(self.cellScrollView.contentOffset, [self contentOffsetForCellState:cellState]))
|
||||
{
|
||||
_cellState = cellState;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Update the clipping on the utility button views according to the current position.
|
||||
CGRect frame = [self.contentView.superview convertRect:self.contentView.frame toView:self];
|
||||
frame.size.width = CGRectGetWidth(self.frame);
|
||||
|
||||
self.leftUtilityClipConstraint.constant = MAX(0, CGRectGetMinX(frame) - CGRectGetMinX(self.frame));
|
||||
self.rightUtilityClipConstraint.constant = MIN(0, CGRectGetMaxX(frame) - CGRectGetMaxX(self.frame));
|
||||
|
||||
if (self.isEditing) {
|
||||
self.leftUtilityClipConstraint.constant = 0;
|
||||
self.cellScrollView.contentOffset = CGPointMake([self leftUtilityButtonsWidth], 0);
|
||||
_cellState = kCellStateCenter;
|
||||
}
|
||||
|
||||
self.leftUtilityClipView.hidden = (self.leftUtilityClipConstraint.constant == 0);
|
||||
self.rightUtilityClipView.hidden = (self.rightUtilityClipConstraint.constant == 0);
|
||||
|
||||
if (self.accessoryType != UITableViewCellAccessoryNone && !self.editing) {
|
||||
UIView *accessory = [self.cellScrollView.superview.subviews lastObject];
|
||||
|
||||
CGRect accessoryFrame = accessory.frame;
|
||||
accessoryFrame.origin.x = CGRectGetWidth(frame) - CGRectGetWidth(accessoryFrame) - kAccessoryTrailingSpace + CGRectGetMinX(frame);
|
||||
accessory.frame = accessoryFrame;
|
||||
}
|
||||
|
||||
// Enable or disable the gesture recognizers according to the current mode.
|
||||
if (!self.cellScrollView.isDragging && !self.cellScrollView.isDecelerating)
|
||||
{
|
||||
self.tapGestureRecognizer.enabled = YES;
|
||||
self.longPressGestureRecognizer.enabled = (_cellState == kCellStateCenter);
|
||||
}
|
||||
else
|
||||
{
|
||||
self.tapGestureRecognizer.enabled = NO;
|
||||
self.longPressGestureRecognizer.enabled = NO;
|
||||
}
|
||||
|
||||
self.cellScrollView.scrollEnabled = !self.isEditing;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - UIScrollViewDelegate
|
||||
|
||||
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset
|
||||
{
|
||||
if (velocity.x >= 0.5f)
|
||||
{
|
||||
if (_cellState == kCellStateLeft || !self.rightUtilityButtons || self.rightUtilityButtonsWidth == 0.0)
|
||||
{
|
||||
_cellState = kCellStateCenter;
|
||||
}
|
||||
else
|
||||
{
|
||||
_cellState = kCellStateRight;
|
||||
}
|
||||
}
|
||||
else if (velocity.x <= -0.5f)
|
||||
{
|
||||
if (_cellState == kCellStateRight || !self.leftUtilityButtons || self.leftUtilityButtonsWidth == 0.0)
|
||||
{
|
||||
_cellState = kCellStateCenter;
|
||||
}
|
||||
else
|
||||
{
|
||||
_cellState = kCellStateLeft;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
CGFloat leftThreshold = [self contentOffsetForCellState:kCellStateLeft].x + (self.leftUtilityButtonsWidth / 2);
|
||||
CGFloat rightThreshold = [self contentOffsetForCellState:kCellStateRight].x - (self.rightUtilityButtonsWidth / 2);
|
||||
|
||||
if (targetContentOffset->x > rightThreshold)
|
||||
{
|
||||
_cellState = kCellStateRight;
|
||||
}
|
||||
else if (targetContentOffset->x < leftThreshold)
|
||||
{
|
||||
_cellState = kCellStateLeft;
|
||||
}
|
||||
else
|
||||
{
|
||||
_cellState = kCellStateCenter;
|
||||
}
|
||||
}
|
||||
|
||||
if ([self.delegate respondsToSelector:@selector(swipeableTableViewCell:scrollingToState:)])
|
||||
{
|
||||
[self.delegate swipeableTableViewCell:self scrollingToState:_cellState];
|
||||
}
|
||||
|
||||
if (_cellState != kCellStateCenter)
|
||||
{
|
||||
if ([self.delegate respondsToSelector:@selector(swipeableTableViewCellShouldHideUtilityButtonsOnSwipe:)])
|
||||
{
|
||||
for (SWTableViewCell *cell in [self.containingTableView visibleCells]) {
|
||||
if (cell != self && [cell isKindOfClass:[SWTableViewCell class]] && [self.delegate swipeableTableViewCellShouldHideUtilityButtonsOnSwipe:cell]) {
|
||||
[cell hideUtilityButtonsAnimated:YES];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*targetContentOffset = [self contentOffsetForCellState:_cellState];
|
||||
}
|
||||
|
||||
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
|
||||
{
|
||||
if (scrollView.contentOffset.x > [self leftUtilityButtonsWidth])
|
||||
{
|
||||
if ([self rightUtilityButtonsWidth] > 0)
|
||||
{
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(swipeableTableViewCell:canSwipeToState:)])
|
||||
{
|
||||
BOOL shouldScroll = [self.delegate swipeableTableViewCell:self canSwipeToState:kCellStateRight];
|
||||
if (!shouldScroll)
|
||||
{
|
||||
scrollView.contentOffset = CGPointMake([self leftUtilityButtonsWidth], 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
[scrollView setContentOffset:CGPointMake([self leftUtilityButtonsWidth], 0)];
|
||||
self.tapGestureRecognizer.enabled = YES;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Expose the left button view
|
||||
if ([self leftUtilityButtonsWidth] > 0)
|
||||
{
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(swipeableTableViewCell:canSwipeToState:)])
|
||||
{
|
||||
BOOL shouldScroll = [self.delegate swipeableTableViewCell:self canSwipeToState:kCellStateLeft];
|
||||
if (!shouldScroll)
|
||||
{
|
||||
scrollView.contentOffset = CGPointMake([self leftUtilityButtonsWidth], 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
[scrollView setContentOffset:CGPointMake(0, 0)];
|
||||
self.tapGestureRecognizer.enabled = YES;
|
||||
}
|
||||
}
|
||||
|
||||
[self updateCellState];
|
||||
}
|
||||
|
||||
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
|
||||
{
|
||||
[self updateCellState];
|
||||
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(swipeableTableViewCellDidEndScrolling:)]) {
|
||||
[self.delegate swipeableTableViewCellDidEndScrolling:self];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
|
||||
{
|
||||
[self updateCellState];
|
||||
|
||||
if (self.delegate && [self.delegate respondsToSelector:@selector(swipeableTableViewCellDidEndScrolling:)]) {
|
||||
[self.delegate swipeableTableViewCellDidEndScrolling:self];
|
||||
}
|
||||
}
|
||||
|
||||
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
|
||||
{
|
||||
if (!decelerate)
|
||||
{
|
||||
self.tapGestureRecognizer.enabled = YES;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#pragma mark - UIGestureRecognizerDelegate
|
||||
|
||||
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
|
||||
{
|
||||
if ((gestureRecognizer == self.containingTableView.panGestureRecognizer && otherGestureRecognizer == self.longPressGestureRecognizer)
|
||||
|| (gestureRecognizer == self.longPressGestureRecognizer && otherGestureRecognizer == self.containingTableView.panGestureRecognizer))
|
||||
{
|
||||
// Return YES so the pan gesture of the containing table view is not cancelled by the long press recognizer
|
||||
return YES;
|
||||
}
|
||||
else
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
}
|
||||
|
||||
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
|
||||
{
|
||||
return ![touch.view isKindOfClass:[UIControl class]];
|
||||
}
|
||||
|
||||
@end
|
||||
17
Pods/SWTableViewCell/SWTableViewCell/PodFiles/SWUtilityButtonTapGestureRecognizer.h
generated
Normal file
17
Pods/SWTableViewCell/SWTableViewCell/PodFiles/SWUtilityButtonTapGestureRecognizer.h
generated
Normal file
@ -0,0 +1,17 @@
|
||||
//
|
||||
// SWUtilityButtonTapGestureRecognizer.h
|
||||
// SWTableViewCell
|
||||
//
|
||||
// Created by Matt Bowman on 11/27/13.
|
||||
// Copyright (c) 2013 Chris Wendel. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <UIKit/UIGestureRecognizerSubclass.h>
|
||||
|
||||
@interface SWUtilityButtonTapGestureRecognizer : UITapGestureRecognizer
|
||||
|
||||
@property (nonatomic) NSUInteger buttonIndex;
|
||||
|
||||
@end
|
||||
|
||||
14
Pods/SWTableViewCell/SWTableViewCell/PodFiles/SWUtilityButtonTapGestureRecognizer.m
generated
Normal file
14
Pods/SWTableViewCell/SWTableViewCell/PodFiles/SWUtilityButtonTapGestureRecognizer.m
generated
Normal file
@ -0,0 +1,14 @@
|
||||
//
|
||||
// SWUtilityButtonTapGestureRecognizer.m
|
||||
// SWTableViewCell
|
||||
//
|
||||
// Created by Matt Bowman on 11/27/13.
|
||||
// Copyright (c) 2013 Chris Wendel. All rights reserved.
|
||||
//
|
||||
|
||||
#import "SWUtilityButtonTapGestureRecognizer.h"
|
||||
|
||||
@implementation SWUtilityButtonTapGestureRecognizer
|
||||
|
||||
@end
|
||||
|
||||
27
Pods/SWTableViewCell/SWTableViewCell/PodFiles/SWUtilityButtonView.h
generated
Normal file
27
Pods/SWTableViewCell/SWTableViewCell/PodFiles/SWUtilityButtonView.h
generated
Normal file
@ -0,0 +1,27 @@
|
||||
//
|
||||
// SWUtilityButtonView.h
|
||||
// SWTableViewCell
|
||||
//
|
||||
// Created by Matt Bowman on 11/27/13.
|
||||
// Copyright (c) 2013 Chris Wendel. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
@class SWTableViewCell;
|
||||
|
||||
#define kUtilityButtonWidthDefault 90
|
||||
|
||||
@interface SWUtilityButtonView : UIView
|
||||
|
||||
- (id)initWithUtilityButtons:(NSArray *)utilityButtons parentCell:(SWTableViewCell *)parentCell utilityButtonSelector:(SEL)utilityButtonSelector;
|
||||
- (id)initWithFrame:(CGRect)frame utilityButtons:(NSArray *)utilityButtons parentCell:(SWTableViewCell *)parentCell utilityButtonSelector:(SEL)utilityButtonSelector;
|
||||
|
||||
@property (nonatomic, weak, readonly) SWTableViewCell *parentCell;
|
||||
@property (nonatomic, copy) NSArray *utilityButtons;
|
||||
@property (nonatomic, assign) SEL utilityButtonSelector;
|
||||
|
||||
- (void)setUtilityButtons:(NSArray *)utilityButtons WithButtonWidth:(CGFloat)width;
|
||||
- (void)pushBackgroundColors;
|
||||
- (void)popBackgroundColors;
|
||||
|
||||
@end
|
||||
153
Pods/SWTableViewCell/SWTableViewCell/PodFiles/SWUtilityButtonView.m
generated
Normal file
153
Pods/SWTableViewCell/SWTableViewCell/PodFiles/SWUtilityButtonView.m
generated
Normal file
@ -0,0 +1,153 @@
|
||||
//
|
||||
// SWUtilityButtonView.m
|
||||
// SWTableViewCell
|
||||
//
|
||||
// Created by Matt Bowman on 11/27/13.
|
||||
// Copyright (c) 2013 Chris Wendel. All rights reserved.
|
||||
//
|
||||
|
||||
#import "SWUtilityButtonView.h"
|
||||
#import "SWUtilityButtonTapGestureRecognizer.h"
|
||||
|
||||
@interface SWUtilityButtonView()
|
||||
|
||||
@property (nonatomic, strong) NSLayoutConstraint *widthConstraint;
|
||||
@property (nonatomic, strong) NSMutableArray *buttonBackgroundColors;
|
||||
|
||||
@end
|
||||
|
||||
@implementation SWUtilityButtonView
|
||||
|
||||
#pragma mark - SWUtilityButonView initializers
|
||||
|
||||
- (id)initWithUtilityButtons:(NSArray *)utilityButtons parentCell:(SWTableViewCell *)parentCell utilityButtonSelector:(SEL)utilityButtonSelector
|
||||
{
|
||||
self = [self initWithFrame:CGRectZero utilityButtons:utilityButtons parentCell:parentCell utilityButtonSelector:utilityButtonSelector];
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame utilityButtons:(NSArray *)utilityButtons parentCell:(SWTableViewCell *)parentCell utilityButtonSelector:(SEL)utilityButtonSelector
|
||||
{
|
||||
self = [super initWithFrame:frame];
|
||||
|
||||
if (self) {
|
||||
self.translatesAutoresizingMaskIntoConstraints = NO;
|
||||
|
||||
self.widthConstraint = [NSLayoutConstraint constraintWithItem:self
|
||||
attribute:NSLayoutAttributeWidth
|
||||
relatedBy:NSLayoutRelationEqual
|
||||
toItem:nil
|
||||
attribute:NSLayoutAttributeNotAnAttribute
|
||||
multiplier:1.0
|
||||
constant:0.0]; // constant will be adjusted dynamically in -setUtilityButtons:.
|
||||
self.widthConstraint.priority = UILayoutPriorityDefaultHigh;
|
||||
[self addConstraint:self.widthConstraint];
|
||||
|
||||
_parentCell = parentCell;
|
||||
self.utilityButtonSelector = utilityButtonSelector;
|
||||
self.utilityButtons = utilityButtons;
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark Populating utility buttons
|
||||
|
||||
- (void)setUtilityButtons:(NSArray *)utilityButtons
|
||||
{
|
||||
// if no width specified, use the default width
|
||||
[self setUtilityButtons:utilityButtons WithButtonWidth:kUtilityButtonWidthDefault];
|
||||
}
|
||||
|
||||
- (void)setUtilityButtons:(NSArray *)utilityButtons WithButtonWidth:(CGFloat)width
|
||||
{
|
||||
for (UIButton *button in _utilityButtons)
|
||||
{
|
||||
[button removeFromSuperview];
|
||||
}
|
||||
|
||||
_utilityButtons = [utilityButtons copy];
|
||||
|
||||
if (utilityButtons.count)
|
||||
{
|
||||
NSUInteger utilityButtonsCounter = 0;
|
||||
UIView *precedingView = nil;
|
||||
|
||||
for (UIButton *button in _utilityButtons)
|
||||
{
|
||||
[self addSubview:button];
|
||||
button.translatesAutoresizingMaskIntoConstraints = NO;
|
||||
|
||||
if (!precedingView)
|
||||
{
|
||||
// First button; pin it to the left edge.
|
||||
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[button]"
|
||||
options:0L
|
||||
metrics:nil
|
||||
views:NSDictionaryOfVariableBindings(button)]];
|
||||
}
|
||||
else
|
||||
{
|
||||
// Subsequent button; pin it to the right edge of the preceding one, with equal width.
|
||||
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[precedingView][button(==precedingView)]"
|
||||
options:0L
|
||||
metrics:nil
|
||||
views:NSDictionaryOfVariableBindings(precedingView, button)]];
|
||||
}
|
||||
|
||||
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[button]|"
|
||||
options:0L
|
||||
metrics:nil
|
||||
views:NSDictionaryOfVariableBindings(button)]];
|
||||
|
||||
|
||||
SWUtilityButtonTapGestureRecognizer *utilityButtonTapGestureRecognizer = [[SWUtilityButtonTapGestureRecognizer alloc] initWithTarget:_parentCell action:_utilityButtonSelector];
|
||||
utilityButtonTapGestureRecognizer.buttonIndex = utilityButtonsCounter;
|
||||
[button addGestureRecognizer:utilityButtonTapGestureRecognizer];
|
||||
|
||||
utilityButtonsCounter++;
|
||||
precedingView = button;
|
||||
}
|
||||
|
||||
// Pin the last button to the right edge.
|
||||
[self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"[precedingView]|"
|
||||
options:0L
|
||||
metrics:nil
|
||||
views:NSDictionaryOfVariableBindings(precedingView)]];
|
||||
}
|
||||
|
||||
self.widthConstraint.constant = (width * utilityButtons.count);
|
||||
|
||||
[self setNeedsLayout];
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
|
||||
- (void)pushBackgroundColors
|
||||
{
|
||||
self.buttonBackgroundColors = [[NSMutableArray alloc] init];
|
||||
|
||||
for (UIButton *button in self.utilityButtons)
|
||||
{
|
||||
[self.buttonBackgroundColors addObject:button.backgroundColor];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)popBackgroundColors
|
||||
{
|
||||
NSEnumerator *e = self.utilityButtons.objectEnumerator;
|
||||
|
||||
for (UIColor *color in self.buttonBackgroundColors)
|
||||
{
|
||||
UIButton *button = [e nextObject];
|
||||
button.backgroundColor = color;
|
||||
}
|
||||
|
||||
self.buttonBackgroundColors = nil;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
25
Pods/Target Support Files/Pods-FMC Planner 2/Pods-FMC Planner 2-acknowledgements.markdown
generated
Normal file
25
Pods/Target Support Files/Pods-FMC Planner 2/Pods-FMC Planner 2-acknowledgements.markdown
generated
Normal file
@ -0,0 +1,25 @@
|
||||
# Acknowledgements
|
||||
This application makes use of the following third party libraries:
|
||||
|
||||
## SWTableViewCell
|
||||
|
||||
Copyright (c) 2013 Christopher Wendel
|
||||
|
||||
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
|
||||
55
Pods/Target Support Files/Pods-FMC Planner 2/Pods-FMC Planner 2-acknowledgements.plist
generated
Normal file
55
Pods/Target Support Files/Pods-FMC Planner 2/Pods-FMC Planner 2-acknowledgements.plist
generated
Normal file
@ -0,0 +1,55 @@
|
||||
<?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) 2013 Christopher Wendel
|
||||
|
||||
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>Title</key>
|
||||
<string>SWTableViewCell</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>
|
||||
5
Pods/Target Support Files/Pods-FMC Planner 2/Pods-FMC Planner 2-dummy.m
generated
Normal file
5
Pods/Target Support Files/Pods-FMC Planner 2/Pods-FMC Planner 2-dummy.m
generated
Normal file
@ -0,0 +1,5 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
@interface PodsDummy_Pods_FMC_Planner_2 : NSObject
|
||||
@end
|
||||
@implementation PodsDummy_Pods_FMC_Planner_2
|
||||
@end
|
||||
84
Pods/Target Support Files/Pods-FMC Planner 2/Pods-FMC Planner 2-frameworks.sh
generated
Executable file
84
Pods/Target Support Files/Pods-FMC Planner 2/Pods-FMC Planner 2-frameworks.sh
generated
Executable file
@ -0,0 +1,84 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
|
||||
SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
|
||||
|
||||
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="${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
|
||||
if [ -L "${source}" ]; then
|
||||
echo "Symlinked..."
|
||||
source="$(readlink "${source}")"
|
||||
fi
|
||||
|
||||
# use filter instead of exclude so missing patterns dont' throw errors
|
||||
echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
|
||||
rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
|
||||
|
||||
local basename
|
||||
basename="$(basename -s .framework "$1")"
|
||||
binary="${destination}/${basename}.framework/${basename}"
|
||||
if ! [ -r "$binary" ]; then
|
||||
binary="${destination}/${basename}"
|
||||
fi
|
||||
|
||||
# Strip invalid architectures so "fat" simulator / device frameworks work on device
|
||||
if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
|
||||
strip_invalid_archs "$binary"
|
||||
fi
|
||||
|
||||
# Resign the code if required by the build settings to avoid unstable apps
|
||||
code_sign_if_enabled "${destination}/$(basename "$1")"
|
||||
|
||||
# Embed linked Swift runtime libraries. 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 && exit ${PIPESTATUS[0]})
|
||||
for lib in $swift_runtime_libs; do
|
||||
echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
|
||||
rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
|
||||
code_sign_if_enabled "${destination}/${lib}"
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
# 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_identitiy
|
||||
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
|
||||
echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements \"$1\""
|
||||
/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
# Strip invalid architectures
|
||||
strip_invalid_archs() {
|
||||
binary="$1"
|
||||
# Get architectures for current file
|
||||
archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)"
|
||||
stripped=""
|
||||
for arch in $archs; do
|
||||
if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then
|
||||
# Strip non-valid architectures in-place
|
||||
lipo -remove "$arch" -output "$binary" "$binary" || exit 1
|
||||
stripped="$stripped $arch"
|
||||
fi
|
||||
done
|
||||
if [[ "$stripped" ]]; then
|
||||
echo "Stripped $binary of architectures:$stripped"
|
||||
fi
|
||||
}
|
||||
|
||||
102
Pods/Target Support Files/Pods-FMC Planner 2/Pods-FMC Planner 2-resources.sh
generated
Executable file
102
Pods/Target Support Files/Pods-FMC Planner 2/Pods-FMC Planner 2-resources.sh
generated
Executable file
@ -0,0 +1,102 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||
|
||||
RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
|
||||
> "$RESOURCES_TO_COPY"
|
||||
|
||||
XCASSET_FILES=()
|
||||
|
||||
case "${TARGETED_DEVICE_FAMILY}" in
|
||||
1,2)
|
||||
TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
|
||||
;;
|
||||
1)
|
||||
TARGET_DEVICE_ARGS="--target-device iphone"
|
||||
;;
|
||||
2)
|
||||
TARGET_DEVICE_ARGS="--target-device ipad"
|
||||
;;
|
||||
*)
|
||||
TARGET_DEVICE_ARGS="--target-device mac"
|
||||
;;
|
||||
esac
|
||||
|
||||
realpath() {
|
||||
DIRECTORY="$(cd "${1%/*}" && pwd)"
|
||||
FILENAME="${1##*/}"
|
||||
echo "$DIRECTORY/$FILENAME"
|
||||
}
|
||||
|
||||
install_resource()
|
||||
{
|
||||
if [[ "$1" = /* ]] ; then
|
||||
RESOURCE_PATH="$1"
|
||||
else
|
||||
RESOURCE_PATH="${PODS_ROOT}/$1"
|
||||
fi
|
||||
if [[ ! -e "$RESOURCE_PATH" ]] ; then
|
||||
cat << EOM
|
||||
error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script.
|
||||
EOM
|
||||
exit 1
|
||||
fi
|
||||
case $RESOURCE_PATH in
|
||||
*.storyboard)
|
||||
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
|
||||
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
|
||||
;;
|
||||
*.xib)
|
||||
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT}"
|
||||
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}"
|
||||
;;
|
||||
*.framework)
|
||||
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
echo "rsync -av $RESOURCE_PATH ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
rsync -av "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
;;
|
||||
*.xcdatamodel)
|
||||
echo "xcrun momc \"$RESOURCE_PATH\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\""
|
||||
xcrun momc "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
|
||||
;;
|
||||
*.xcdatamodeld)
|
||||
echo "xcrun momc \"$RESOURCE_PATH\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\""
|
||||
xcrun momc "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
|
||||
;;
|
||||
*.xcmappingmodel)
|
||||
echo "xcrun mapc \"$RESOURCE_PATH\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\""
|
||||
xcrun mapc "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
|
||||
;;
|
||||
*.xcassets)
|
||||
ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH")
|
||||
XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
|
||||
;;
|
||||
*)
|
||||
echo "$RESOURCE_PATH"
|
||||
echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||
if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then
|
||||
mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||
fi
|
||||
rm -f "$RESOURCES_TO_COPY"
|
||||
|
||||
if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ]
|
||||
then
|
||||
# Find all other xcassets (this unfortunately includes those of path pods and other targets).
|
||||
OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d)
|
||||
while read line; do
|
||||
if [[ $line != "`realpath $PODS_ROOT`*" ]]; then
|
||||
XCASSET_FILES+=("$line")
|
||||
fi
|
||||
done <<<"$OTHER_XCASSETS"
|
||||
|
||||
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||
fi
|
||||
6
Pods/Target Support Files/Pods-FMC Planner 2/Pods-FMC Planner 2.debug.xcconfig
generated
Normal file
6
Pods/Target Support Files/Pods-FMC Planner 2/Pods-FMC Planner 2.debug.xcconfig
generated
Normal file
@ -0,0 +1,6 @@
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SWTableViewCell"
|
||||
LIBRARY_SEARCH_PATHS = $(inherited) "$CONFIGURATION_BUILD_DIR/SWTableViewCell"
|
||||
OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/SWTableViewCell"
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"SWTableViewCell"
|
||||
PODS_ROOT = ${SRCROOT}/Pods
|
||||
6
Pods/Target Support Files/Pods-FMC Planner 2/Pods-FMC Planner 2.release.xcconfig
generated
Normal file
6
Pods/Target Support Files/Pods-FMC Planner 2/Pods-FMC Planner 2.release.xcconfig
generated
Normal file
@ -0,0 +1,6 @@
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SWTableViewCell"
|
||||
LIBRARY_SEARCH_PATHS = $(inherited) "$CONFIGURATION_BUILD_DIR/SWTableViewCell"
|
||||
OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/SWTableViewCell"
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"SWTableViewCell"
|
||||
PODS_ROOT = ${SRCROOT}/Pods
|
||||
25
Pods/Target Support Files/Pods-FMC Planner 2Tests/Pods-FMC Planner 2Tests-acknowledgements.markdown
generated
Normal file
25
Pods/Target Support Files/Pods-FMC Planner 2Tests/Pods-FMC Planner 2Tests-acknowledgements.markdown
generated
Normal file
@ -0,0 +1,25 @@
|
||||
# Acknowledgements
|
||||
This application makes use of the following third party libraries:
|
||||
|
||||
## SWTableViewCell
|
||||
|
||||
Copyright (c) 2013 Christopher Wendel
|
||||
|
||||
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
|
||||
55
Pods/Target Support Files/Pods-FMC Planner 2Tests/Pods-FMC Planner 2Tests-acknowledgements.plist
generated
Normal file
55
Pods/Target Support Files/Pods-FMC Planner 2Tests/Pods-FMC Planner 2Tests-acknowledgements.plist
generated
Normal file
@ -0,0 +1,55 @@
|
||||
<?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) 2013 Christopher Wendel
|
||||
|
||||
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>Title</key>
|
||||
<string>SWTableViewCell</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>
|
||||
5
Pods/Target Support Files/Pods-FMC Planner 2Tests/Pods-FMC Planner 2Tests-dummy.m
generated
Normal file
5
Pods/Target Support Files/Pods-FMC Planner 2Tests/Pods-FMC Planner 2Tests-dummy.m
generated
Normal file
@ -0,0 +1,5 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
@interface PodsDummy_Pods_FMC_Planner_2Tests : NSObject
|
||||
@end
|
||||
@implementation PodsDummy_Pods_FMC_Planner_2Tests
|
||||
@end
|
||||
84
Pods/Target Support Files/Pods-FMC Planner 2Tests/Pods-FMC Planner 2Tests-frameworks.sh
generated
Executable file
84
Pods/Target Support Files/Pods-FMC Planner 2Tests/Pods-FMC Planner 2Tests-frameworks.sh
generated
Executable file
@ -0,0 +1,84 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
|
||||
SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
|
||||
|
||||
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="${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
|
||||
if [ -L "${source}" ]; then
|
||||
echo "Symlinked..."
|
||||
source="$(readlink "${source}")"
|
||||
fi
|
||||
|
||||
# use filter instead of exclude so missing patterns dont' throw errors
|
||||
echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
|
||||
rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
|
||||
|
||||
local basename
|
||||
basename="$(basename -s .framework "$1")"
|
||||
binary="${destination}/${basename}.framework/${basename}"
|
||||
if ! [ -r "$binary" ]; then
|
||||
binary="${destination}/${basename}"
|
||||
fi
|
||||
|
||||
# Strip invalid architectures so "fat" simulator / device frameworks work on device
|
||||
if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
|
||||
strip_invalid_archs "$binary"
|
||||
fi
|
||||
|
||||
# Resign the code if required by the build settings to avoid unstable apps
|
||||
code_sign_if_enabled "${destination}/$(basename "$1")"
|
||||
|
||||
# Embed linked Swift runtime libraries. 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 && exit ${PIPESTATUS[0]})
|
||||
for lib in $swift_runtime_libs; do
|
||||
echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
|
||||
rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
|
||||
code_sign_if_enabled "${destination}/${lib}"
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
# 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_identitiy
|
||||
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
|
||||
echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements \"$1\""
|
||||
/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
# Strip invalid architectures
|
||||
strip_invalid_archs() {
|
||||
binary="$1"
|
||||
# Get architectures for current file
|
||||
archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)"
|
||||
stripped=""
|
||||
for arch in $archs; do
|
||||
if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then
|
||||
# Strip non-valid architectures in-place
|
||||
lipo -remove "$arch" -output "$binary" "$binary" || exit 1
|
||||
stripped="$stripped $arch"
|
||||
fi
|
||||
done
|
||||
if [[ "$stripped" ]]; then
|
||||
echo "Stripped $binary of architectures:$stripped"
|
||||
fi
|
||||
}
|
||||
|
||||
102
Pods/Target Support Files/Pods-FMC Planner 2Tests/Pods-FMC Planner 2Tests-resources.sh
generated
Executable file
102
Pods/Target Support Files/Pods-FMC Planner 2Tests/Pods-FMC Planner 2Tests-resources.sh
generated
Executable file
@ -0,0 +1,102 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||
|
||||
RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
|
||||
> "$RESOURCES_TO_COPY"
|
||||
|
||||
XCASSET_FILES=()
|
||||
|
||||
case "${TARGETED_DEVICE_FAMILY}" in
|
||||
1,2)
|
||||
TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
|
||||
;;
|
||||
1)
|
||||
TARGET_DEVICE_ARGS="--target-device iphone"
|
||||
;;
|
||||
2)
|
||||
TARGET_DEVICE_ARGS="--target-device ipad"
|
||||
;;
|
||||
*)
|
||||
TARGET_DEVICE_ARGS="--target-device mac"
|
||||
;;
|
||||
esac
|
||||
|
||||
realpath() {
|
||||
DIRECTORY="$(cd "${1%/*}" && pwd)"
|
||||
FILENAME="${1##*/}"
|
||||
echo "$DIRECTORY/$FILENAME"
|
||||
}
|
||||
|
||||
install_resource()
|
||||
{
|
||||
if [[ "$1" = /* ]] ; then
|
||||
RESOURCE_PATH="$1"
|
||||
else
|
||||
RESOURCE_PATH="${PODS_ROOT}/$1"
|
||||
fi
|
||||
if [[ ! -e "$RESOURCE_PATH" ]] ; then
|
||||
cat << EOM
|
||||
error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script.
|
||||
EOM
|
||||
exit 1
|
||||
fi
|
||||
case $RESOURCE_PATH in
|
||||
*.storyboard)
|
||||
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
|
||||
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
|
||||
;;
|
||||
*.xib)
|
||||
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT}"
|
||||
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}"
|
||||
;;
|
||||
*.framework)
|
||||
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
echo "rsync -av $RESOURCE_PATH ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
rsync -av "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
;;
|
||||
*.xcdatamodel)
|
||||
echo "xcrun momc \"$RESOURCE_PATH\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\""
|
||||
xcrun momc "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
|
||||
;;
|
||||
*.xcdatamodeld)
|
||||
echo "xcrun momc \"$RESOURCE_PATH\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\""
|
||||
xcrun momc "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
|
||||
;;
|
||||
*.xcmappingmodel)
|
||||
echo "xcrun mapc \"$RESOURCE_PATH\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\""
|
||||
xcrun mapc "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
|
||||
;;
|
||||
*.xcassets)
|
||||
ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH")
|
||||
XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
|
||||
;;
|
||||
*)
|
||||
echo "$RESOURCE_PATH"
|
||||
echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||
if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then
|
||||
mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||
fi
|
||||
rm -f "$RESOURCES_TO_COPY"
|
||||
|
||||
if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ]
|
||||
then
|
||||
# Find all other xcassets (this unfortunately includes those of path pods and other targets).
|
||||
OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d)
|
||||
while read line; do
|
||||
if [[ $line != "`realpath $PODS_ROOT`*" ]]; then
|
||||
XCASSET_FILES+=("$line")
|
||||
fi
|
||||
done <<<"$OTHER_XCASSETS"
|
||||
|
||||
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||
fi
|
||||
6
Pods/Target Support Files/Pods-FMC Planner 2Tests/Pods-FMC Planner 2Tests.debug.xcconfig
generated
Normal file
6
Pods/Target Support Files/Pods-FMC Planner 2Tests/Pods-FMC Planner 2Tests.debug.xcconfig
generated
Normal file
@ -0,0 +1,6 @@
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SWTableViewCell"
|
||||
LIBRARY_SEARCH_PATHS = $(inherited) "$CONFIGURATION_BUILD_DIR/SWTableViewCell"
|
||||
OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/SWTableViewCell"
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"SWTableViewCell"
|
||||
PODS_ROOT = ${SRCROOT}/Pods
|
||||
6
Pods/Target Support Files/Pods-FMC Planner 2Tests/Pods-FMC Planner 2Tests.release.xcconfig
generated
Normal file
6
Pods/Target Support Files/Pods-FMC Planner 2Tests/Pods-FMC Planner 2Tests.release.xcconfig
generated
Normal file
@ -0,0 +1,6 @@
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SWTableViewCell"
|
||||
LIBRARY_SEARCH_PATHS = $(inherited) "$CONFIGURATION_BUILD_DIR/SWTableViewCell"
|
||||
OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/SWTableViewCell"
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"SWTableViewCell"
|
||||
PODS_ROOT = ${SRCROOT}/Pods
|
||||
@ -0,0 +1,25 @@
|
||||
# Acknowledgements
|
||||
This application makes use of the following third party libraries:
|
||||
|
||||
## SWTableViewCell
|
||||
|
||||
Copyright (c) 2013 Christopher Wendel
|
||||
|
||||
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
|
||||
55
Pods/Target Support Files/Pods-FMC Planner 2UITests/Pods-FMC Planner 2UITests-acknowledgements.plist
generated
Normal file
55
Pods/Target Support Files/Pods-FMC Planner 2UITests/Pods-FMC Planner 2UITests-acknowledgements.plist
generated
Normal file
@ -0,0 +1,55 @@
|
||||
<?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) 2013 Christopher Wendel
|
||||
|
||||
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>Title</key>
|
||||
<string>SWTableViewCell</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>
|
||||
5
Pods/Target Support Files/Pods-FMC Planner 2UITests/Pods-FMC Planner 2UITests-dummy.m
generated
Normal file
5
Pods/Target Support Files/Pods-FMC Planner 2UITests/Pods-FMC Planner 2UITests-dummy.m
generated
Normal file
@ -0,0 +1,5 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
@interface PodsDummy_Pods_FMC_Planner_2UITests : NSObject
|
||||
@end
|
||||
@implementation PodsDummy_Pods_FMC_Planner_2UITests
|
||||
@end
|
||||
84
Pods/Target Support Files/Pods-FMC Planner 2UITests/Pods-FMC Planner 2UITests-frameworks.sh
generated
Executable file
84
Pods/Target Support Files/Pods-FMC Planner 2UITests/Pods-FMC Planner 2UITests-frameworks.sh
generated
Executable file
@ -0,0 +1,84 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
|
||||
SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}"
|
||||
|
||||
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="${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
|
||||
if [ -L "${source}" ]; then
|
||||
echo "Symlinked..."
|
||||
source="$(readlink "${source}")"
|
||||
fi
|
||||
|
||||
# use filter instead of exclude so missing patterns dont' throw errors
|
||||
echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
|
||||
rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
|
||||
|
||||
local basename
|
||||
basename="$(basename -s .framework "$1")"
|
||||
binary="${destination}/${basename}.framework/${basename}"
|
||||
if ! [ -r "$binary" ]; then
|
||||
binary="${destination}/${basename}"
|
||||
fi
|
||||
|
||||
# Strip invalid architectures so "fat" simulator / device frameworks work on device
|
||||
if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then
|
||||
strip_invalid_archs "$binary"
|
||||
fi
|
||||
|
||||
# Resign the code if required by the build settings to avoid unstable apps
|
||||
code_sign_if_enabled "${destination}/$(basename "$1")"
|
||||
|
||||
# Embed linked Swift runtime libraries. 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 && exit ${PIPESTATUS[0]})
|
||||
for lib in $swift_runtime_libs; do
|
||||
echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
|
||||
rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
|
||||
code_sign_if_enabled "${destination}/${lib}"
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
# 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_identitiy
|
||||
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
|
||||
echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements \"$1\""
|
||||
/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1"
|
||||
fi
|
||||
}
|
||||
|
||||
# Strip invalid architectures
|
||||
strip_invalid_archs() {
|
||||
binary="$1"
|
||||
# Get architectures for current file
|
||||
archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)"
|
||||
stripped=""
|
||||
for arch in $archs; do
|
||||
if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then
|
||||
# Strip non-valid architectures in-place
|
||||
lipo -remove "$arch" -output "$binary" "$binary" || exit 1
|
||||
stripped="$stripped $arch"
|
||||
fi
|
||||
done
|
||||
if [[ "$stripped" ]]; then
|
||||
echo "Stripped $binary of architectures:$stripped"
|
||||
fi
|
||||
}
|
||||
|
||||
102
Pods/Target Support Files/Pods-FMC Planner 2UITests/Pods-FMC Planner 2UITests-resources.sh
generated
Executable file
102
Pods/Target Support Files/Pods-FMC Planner 2UITests/Pods-FMC Planner 2UITests-resources.sh
generated
Executable file
@ -0,0 +1,102 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||
|
||||
RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt
|
||||
> "$RESOURCES_TO_COPY"
|
||||
|
||||
XCASSET_FILES=()
|
||||
|
||||
case "${TARGETED_DEVICE_FAMILY}" in
|
||||
1,2)
|
||||
TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone"
|
||||
;;
|
||||
1)
|
||||
TARGET_DEVICE_ARGS="--target-device iphone"
|
||||
;;
|
||||
2)
|
||||
TARGET_DEVICE_ARGS="--target-device ipad"
|
||||
;;
|
||||
*)
|
||||
TARGET_DEVICE_ARGS="--target-device mac"
|
||||
;;
|
||||
esac
|
||||
|
||||
realpath() {
|
||||
DIRECTORY="$(cd "${1%/*}" && pwd)"
|
||||
FILENAME="${1##*/}"
|
||||
echo "$DIRECTORY/$FILENAME"
|
||||
}
|
||||
|
||||
install_resource()
|
||||
{
|
||||
if [[ "$1" = /* ]] ; then
|
||||
RESOURCE_PATH="$1"
|
||||
else
|
||||
RESOURCE_PATH="${PODS_ROOT}/$1"
|
||||
fi
|
||||
if [[ ! -e "$RESOURCE_PATH" ]] ; then
|
||||
cat << EOM
|
||||
error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script.
|
||||
EOM
|
||||
exit 1
|
||||
fi
|
||||
case $RESOURCE_PATH in
|
||||
*.storyboard)
|
||||
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}"
|
||||
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS}
|
||||
;;
|
||||
*.xib)
|
||||
echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT}"
|
||||
ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}"
|
||||
;;
|
||||
*.framework)
|
||||
echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
echo "rsync -av $RESOURCE_PATH ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
rsync -av "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}"
|
||||
;;
|
||||
*.xcdatamodel)
|
||||
echo "xcrun momc \"$RESOURCE_PATH\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\""
|
||||
xcrun momc "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom"
|
||||
;;
|
||||
*.xcdatamodeld)
|
||||
echo "xcrun momc \"$RESOURCE_PATH\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\""
|
||||
xcrun momc "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd"
|
||||
;;
|
||||
*.xcmappingmodel)
|
||||
echo "xcrun mapc \"$RESOURCE_PATH\" \"${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\""
|
||||
xcrun mapc "$RESOURCE_PATH" "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm"
|
||||
;;
|
||||
*.xcassets)
|
||||
ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH")
|
||||
XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE")
|
||||
;;
|
||||
*)
|
||||
echo "$RESOURCE_PATH"
|
||||
echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
mkdir -p "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||
if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then
|
||||
mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||
rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||
fi
|
||||
rm -f "$RESOURCES_TO_COPY"
|
||||
|
||||
if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ]
|
||||
then
|
||||
# Find all other xcassets (this unfortunately includes those of path pods and other targets).
|
||||
OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d)
|
||||
while read line; do
|
||||
if [[ $line != "`realpath $PODS_ROOT`*" ]]; then
|
||||
XCASSET_FILES+=("$line")
|
||||
fi
|
||||
done <<<"$OTHER_XCASSETS"
|
||||
|
||||
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
|
||||
fi
|
||||
6
Pods/Target Support Files/Pods-FMC Planner 2UITests/Pods-FMC Planner 2UITests.debug.xcconfig
generated
Normal file
6
Pods/Target Support Files/Pods-FMC Planner 2UITests/Pods-FMC Planner 2UITests.debug.xcconfig
generated
Normal file
@ -0,0 +1,6 @@
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SWTableViewCell"
|
||||
LIBRARY_SEARCH_PATHS = $(inherited) "$CONFIGURATION_BUILD_DIR/SWTableViewCell"
|
||||
OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/SWTableViewCell"
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"SWTableViewCell"
|
||||
PODS_ROOT = ${SRCROOT}/Pods
|
||||
6
Pods/Target Support Files/Pods-FMC Planner 2UITests/Pods-FMC Planner 2UITests.release.xcconfig
generated
Normal file
6
Pods/Target Support Files/Pods-FMC Planner 2UITests/Pods-FMC Planner 2UITests.release.xcconfig
generated
Normal file
@ -0,0 +1,6 @@
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SWTableViewCell"
|
||||
LIBRARY_SEARCH_PATHS = $(inherited) "$CONFIGURATION_BUILD_DIR/SWTableViewCell"
|
||||
OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/SWTableViewCell"
|
||||
OTHER_LDFLAGS = $(inherited) -ObjC -l"SWTableViewCell"
|
||||
PODS_ROOT = ${SRCROOT}/Pods
|
||||
5
Pods/Target Support Files/SWTableViewCell/SWTableViewCell-dummy.m
generated
Normal file
5
Pods/Target Support Files/SWTableViewCell/SWTableViewCell-dummy.m
generated
Normal file
@ -0,0 +1,5 @@
|
||||
#import <Foundation/Foundation.h>
|
||||
@interface PodsDummy_SWTableViewCell : NSObject
|
||||
@end
|
||||
@implementation PodsDummy_SWTableViewCell
|
||||
@end
|
||||
4
Pods/Target Support Files/SWTableViewCell/SWTableViewCell-prefix.pch
generated
Normal file
4
Pods/Target Support Files/SWTableViewCell/SWTableViewCell-prefix.pch
generated
Normal file
@ -0,0 +1,4 @@
|
||||
#ifdef __OBJC__
|
||||
#import <UIKit/UIKit.h>
|
||||
#endif
|
||||
|
||||
7
Pods/Target Support Files/SWTableViewCell/SWTableViewCell.xcconfig
generated
Normal file
7
Pods/Target Support Files/SWTableViewCell/SWTableViewCell.xcconfig
generated
Normal file
@ -0,0 +1,7 @@
|
||||
CONFIGURATION_BUILD_DIR = $PODS_SHARED_BUILD_DIR/SWTableViewCell
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
|
||||
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SWTableViewCell" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/SWTableViewCell"
|
||||
PODS_ROOT = ${SRCROOT}
|
||||
PODS_SHARED_BUILD_DIR = $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier}
|
||||
SKIP_INSTALL = YES
|
||||
Loading…
x
Reference in New Issue
Block a user