Compare commits

..
22 Commits
Author SHA1 Message Date
Alex.k aec1fba654 shared scheme 2016-06-02 10:54:40 +03:00
Juri Vasylenko 9638439000 Merge pull request #4 from albinekcom/patch-1
Fix code style in collectionView method in README
2016-05-31 10:35:06 +03:00
Juri Vasylenko e6e69fa55e fix typos 2016-05-31 11:33:46 +04:00
Albin "albinek" Sadowski 5621816196 Fix code style in collectionView method in README 2016-05-30 22:02:44 +02:00
Alex 4e1d8cad4f Update README.md 2016-05-30 17:03:40 +03:00
Alex.k 8600aa0d54 Merge branch 'master' of https://github.com/Ramotion/expanding-collection 2016-05-30 16:57:37 +03:00
Alex.k aa0a14896c Fixes #1 2016-05-30 16:57:27 +03:00
Alex 46dfafada1 Merge pull request #2 from BasThomas/patch-1
Fix readme syntax highlighting
2016-05-30 13:38:57 +00:00
Bas Broek 94f0f5fb6b Fix readme syntax highlighting 2016-05-29 20:32:19 +02:00
Alex.k 8c90388bda added contributing 2016-05-27 17:47:51 +03:00
Alex.k 5623d1fe50 update readme 2016-05-27 17:40:44 +03:00
Alex.k 5cee05d1c4 update travis 2016-05-27 17:27:46 +03:00
Alex.k 185d81d648 Merge branch 'master' of https://github.com/Ramotion/expanding-collection 2016-05-27 17:26:39 +03:00
Alex.k a899d78f2b added travis file 2016-05-27 17:26:34 +03:00
RamotionRussell 538e682116 Update README.md 2016-05-27 17:05:49 +03:00
Alex.k ebf4524f3b readme 2016-05-27 16:55:36 +03:00
Alex.k 2d7a929f83 Merge branch 'master' of https://github.com/Ramotion/expanding-collection 2016-05-27 16:50:56 +03:00
Alex.k ee0b1a3d5a update readme 2016-05-27 16:50:41 +03:00
Juri Vasylenko da9febb69e Update README.md 2016-05-27 17:49:30 +04:00
Alex.k ab1b552e14 update readme 2016-05-27 16:41:53 +03:00
Alex.k d576d316c6 update readme 2016-05-27 16:38:46 +03:00
Alex.k 75d8d52d55 added readme 2016-05-27 16:30:54 +03:00
12 changed files with 484 additions and 1 deletions
+6
View File
@@ -0,0 +1,6 @@
osx_image: xcode7.3
language: objective-c
xcode_project: DemoExpandingCollection/DemoExpandingCollection.xcodeproj
xcode_scheme: DemoExpandingCollection
xcode_sdk: iphonesimulator
+33
View File
@@ -0,0 +1,33 @@
# Contributing to a Project
Now that you’ve found the material for understanding the project, here is how you can take action.
### Create an Issue
If you find a bug in a project you’re using (and you don’t know how to fix it), have trouble following the documentation or have a question about the project – create an issue! There’s nothing to it and whatever issue you’re having, you’re likely not the only one, so others will find your issue helpful, too. For more information on how issues work, check out our Issues guide.
#### Issues Pro Tips
Check existing issues for your issue. Duplicating an issue is slower for both parties so search through open and closed issues to see if what you’re running into has been addressed already.
Be clear about what your problem is: what was the expected outcome, what happened instead? Detail how someone else can recreate the problem.
Link to demos recreating the problem on things like JSFiddle or CodePen.
Include system details like what the browser, library or operating system you’re using and its version.
Paste error output or logs in your issue or in a Gist. If pasting them in the issue, wrap it in three backticks: ``` so that it renders nicely.
### Pull Request
If you’re able to patch the bug or add the feature yourself – fantastic, make a pull request with the code! Be sure you’ve read any documents on contributing, understand the license and have signed a CLA if required. Once you’ve submitted a pull request the maintainer(s) can compare your branch to the existing one and decide whether or not to incorporate (pull in) your changes.
#### Pull Request Pro Tips
Fork the repository and clone it locally. Connect your local to the original ‘upstream’ repository by adding it as a remote. Pull in changes from ‘upstream’ often so that you stay up to date so that when you submit your pull request, merge conflicts will be less likely. See more detailed instructions here.
Create a branch for your edits.
Be clear about what problem is occurring and how someone can recreate that problem or why your feature will help. Then be equally as clear about the steps you took to make your changes.
It’s best to test. Run your changes against any existing tests if they exist and create new ones when needed. Whether tests exist or not, make sure your changes don’t break the existing project.
Include screenshots of the before and after if your changes include differences in HTML/CSS. Drag and drop the images into the body of your pull request.
Contribute in the style of the project to the best of your abilities. This may mean using indents, semi colons or comments differently than you would in your own repository, but makes it easier for the maintainer to merge, others to understand and maintain in the future.
#### Open Pull Requests
Once you’ve opened a pull request a discussion will start around your proposed changes. Other contributors and users may chime in, but ultimately the decision is made by the maintainer(s). You may be asked to make some changes to your pull request, if so, add more commits to your branch and push them – they’ll automatically go into the existing pull request.
If your pull request is merged – great! If it is not, no sweat, it may not be what the project maintainer had in mind, or they were already working on it. This happens, so our recommendation is to take any feedback you’ve received and go forth and pull request again – or create your own open source project.
@@ -31,6 +31,20 @@
848596881CF58A62000BCC74 /* PageCollectionLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848596871CF58A62000BCC74 /* PageCollectionLayout.swift */; };
8485968B1CF58A7D000BCC74 /* CollectionViewHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8485968A1CF58A7D000BCC74 /* CollectionViewHelper.swift */; };
848596921CF58DE0000BCC74 /* BasePageCollectionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848596911CF58DE0000BCC74 /* BasePageCollectionCell.swift */; };
8499D8171D001B82004B5B37 /* ExpandingCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 8499D8161D001B82004B5B37 /* ExpandingCollection.h */; settings = {ATTRIBUTES = (Public, ); }; };
8499D81B1D001B82004B5B37 /* ExpandingCollection.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8499D8141D001B82004B5B37 /* ExpandingCollection.framework */; };
8499D81C1D001B82004B5B37 /* ExpandingCollection.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8499D8141D001B82004B5B37 /* ExpandingCollection.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
8499D8211D001B9E004B5B37 /* BasePageCollectionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848596911CF58DE0000BCC74 /* BasePageCollectionCell.swift */; };
8499D8221D001BA1004B5B37 /* PageCollectionLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848596871CF58A62000BCC74 /* PageCollectionLayout.swift */; };
8499D8231D001BA5004B5B37 /* PageCollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848596841CF58A3F000BCC74 /* PageCollectionView.swift */; };
8499D8241D001BA8004B5B37 /* ExpandingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848596811CF58A36000BCC74 /* ExpandingViewController.swift */; };
8499D8251D001BAD004B5B37 /* SubviewsForEach.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84AC75E41CF6F5CB00421857 /* SubviewsForEach.swift */; };
8499D8261D001BB1004B5B37 /* ScreenShotHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8485967A1CF5897B000BCC74 /* ScreenShotHelper.swift */; };
8499D8271D001BB5004B5B37 /* ConstraintsHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848596771CF58973000BCC74 /* ConstraintsHelper.swift */; };
8499D8281D001BBA004B5B37 /* ConfigurationHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848596741CF58965000BCC74 /* ConfigurationHelper.swift */; };
8499D8291D001BBF004B5B37 /* CornerAnimatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848596711CF58954000BCC74 /* CornerAnimatable.swift */; };
8499D82A1D001BC3004B5B37 /* ExpandingTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848596671CF58853000BCC74 /* ExpandingTableViewController.swift */; };
8499D82B1D001BC7004B5B37 /* TransitionDriver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 848596601CF58763000BCC74 /* TransitionDriver.swift */; };
84AC75E51CF6F5CB00421857 /* SubviewsForEach.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84AC75E41CF6F5CB00421857 /* SubviewsForEach.swift */; };
/* End PBXBuildFile section */
@@ -42,8 +56,29 @@
remoteGlobalIDString = 848596271CF585F3000BCC74;
remoteInfo = DemoExpandingCollection;
};
8499D8191D001B82004B5B37 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 848596201CF585F3000BCC74 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 8499D8131D001B82004B5B37;
remoteInfo = ExpandingCollection;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
8499D8201D001B82004B5B37 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
8499D81C1D001B82004B5B37 /* ExpandingCollection.framework in Embed Frameworks */,
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
8422CA701CF73EE4007E8522 /* AnimationBarButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AnimationBarButton.swift; sourceTree = "<group>"; };
8422CA721CF73EE4007E8522 /* Rotatable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Rotatable.swift; sourceTree = "<group>"; };
@@ -73,6 +108,9 @@
848596871CF58A62000BCC74 /* PageCollectionLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PageCollectionLayout.swift; sourceTree = "<group>"; };
8485968A1CF58A7D000BCC74 /* CollectionViewHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CollectionViewHelper.swift; sourceTree = "<group>"; };
848596911CF58DE0000BCC74 /* BasePageCollectionCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BasePageCollectionCell.swift; sourceTree = "<group>"; };
8499D8141D001B82004B5B37 /* ExpandingCollection.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ExpandingCollection.framework; sourceTree = BUILT_PRODUCTS_DIR; };
8499D8161D001B82004B5B37 /* ExpandingCollection.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ExpandingCollection.h; sourceTree = "<group>"; };
8499D8181D001B82004B5B37 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
84AC75E41CF6F5CB00421857 /* SubviewsForEach.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubviewsForEach.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
@@ -81,6 +119,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
8499D81B1D001B82004B5B37 /* ExpandingCollection.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -91,6 +130,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
8499D8101D001B82004B5B37 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
@@ -124,6 +170,7 @@
children = (
8485962A1CF585F3000BCC74 /* DemoExpandingCollection */,
8485963F1CF585F3000BCC74 /* DemoExpandingCollectionTests */,
8499D8151D001B82004B5B37 /* ExpandingCollection */,
848596291CF585F3000BCC74 /* Products */,
);
sourceTree = "<group>";
@@ -133,6 +180,7 @@
children = (
848596281CF585F3000BCC74 /* DemoExpandingCollection.app */,
8485963C1CF585F3000BCC74 /* DemoExpandingCollectionTests.xctest */,
8499D8141D001B82004B5B37 /* ExpandingCollection.framework */,
);
name = Products;
sourceTree = "<group>";
@@ -346,6 +394,15 @@
path = Cells;
sourceTree = "<group>";
};
8499D8151D001B82004B5B37 /* ExpandingCollection */ = {
isa = PBXGroup;
children = (
8499D8161D001B82004B5B37 /* ExpandingCollection.h */,
8499D8181D001B82004B5B37 /* Info.plist */,
);
path = ExpandingCollection;
sourceTree = "<group>";
};
84AC75E31CF6F55C00421857 /* SubviewsForEach */ = {
isa = PBXGroup;
children = (
@@ -356,6 +413,17 @@
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8499D8111D001B82004B5B37 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8499D8171D001B82004B5B37 /* ExpandingCollection.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
848596271CF585F3000BCC74 /* DemoExpandingCollection */ = {
isa = PBXNativeTarget;
@@ -365,10 +433,12 @@
848596241CF585F3000BCC74 /* Sources */,
848596251CF585F3000BCC74 /* Frameworks */,
848596261CF585F3000BCC74 /* Resources */,
8499D8201D001B82004B5B37 /* Embed Frameworks */,
);
buildRules = (
);
dependencies = (
8499D81A1D001B82004B5B37 /* PBXTargetDependency */,
);
name = DemoExpandingCollection;
productName = DemoExpandingCollection;
@@ -393,6 +463,24 @@
productReference = 8485963C1CF585F3000BCC74 /* DemoExpandingCollectionTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
8499D8131D001B82004B5B37 /* ExpandingCollection */ = {
isa = PBXNativeTarget;
buildConfigurationList = 8499D81F1D001B82004B5B37 /* Build configuration list for PBXNativeTarget "ExpandingCollection" */;
buildPhases = (
8499D80F1D001B82004B5B37 /* Sources */,
8499D8101D001B82004B5B37 /* Frameworks */,
8499D8111D001B82004B5B37 /* Headers */,
8499D8121D001B82004B5B37 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = ExpandingCollection;
productName = ExpandingCollection;
productReference = 8499D8141D001B82004B5B37 /* ExpandingCollection.framework */;
productType = "com.apple.product-type.framework";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@@ -410,6 +498,9 @@
CreatedOnToolsVersion = 7.3.1;
TestTargetID = 848596271CF585F3000BCC74;
};
8499D8131D001B82004B5B37 = {
CreatedOnToolsVersion = 7.3.1;
};
};
};
buildConfigurationList = 848596231CF585F3000BCC74 /* Build configuration list for PBXProject "DemoExpandingCollection" */;
@@ -427,6 +518,7 @@
targets = (
848596271CF585F3000BCC74 /* DemoExpandingCollection */,
8485963B1CF585F3000BCC74 /* DemoExpandingCollectionTests */,
8499D8131D001B82004B5B37 /* ExpandingCollection */,
);
};
/* End PBXProject section */
@@ -450,6 +542,13 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
8499D8121D001B82004B5B37 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
@@ -505,6 +604,24 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
8499D80F1D001B82004B5B37 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8499D8271D001BB5004B5B37 /* ConstraintsHelper.swift in Sources */,
8499D8221D001BA1004B5B37 /* PageCollectionLayout.swift in Sources */,
8499D8261D001BB1004B5B37 /* ScreenShotHelper.swift in Sources */,
8499D8251D001BAD004B5B37 /* SubviewsForEach.swift in Sources */,
8499D8281D001BBA004B5B37 /* ConfigurationHelper.swift in Sources */,
8499D8241D001BA8004B5B37 /* ExpandingViewController.swift in Sources */,
8499D82A1D001BC3004B5B37 /* ExpandingTableViewController.swift in Sources */,
8499D82B1D001BC7004B5B37 /* TransitionDriver.swift in Sources */,
8499D8291D001BBF004B5B37 /* CornerAnimatable.swift in Sources */,
8499D8211D001B9E004B5B37 /* BasePageCollectionCell.swift in Sources */,
8499D8231D001BA5004B5B37 /* PageCollectionView.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
@@ -513,6 +630,11 @@
target = 848596271CF585F3000BCC74 /* DemoExpandingCollection */;
targetProxy = 8485963D1CF585F3000BCC74 /* PBXContainerItemProxy */;
};
8499D81A1D001B82004B5B37 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 8499D8131D001B82004B5B37 /* ExpandingCollection */;
targetProxy = 8499D8191D001B82004B5B37 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
@@ -624,6 +746,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
INFOPLIST_FILE = DemoExpandingCollection/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@@ -639,6 +762,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
INFOPLIST_FILE = DemoExpandingCollection/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@@ -672,6 +796,52 @@
};
name = Release;
};
8499D81D1D001B82004B5B37 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = ExpandingCollection/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.ExpandingCollection;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Debug;
};
8499D81E1D001B82004B5B37 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CURRENT_PROJECT_VERSION = 1;
DEFINES_MODULE = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
INFOPLIST_FILE = ExpandingCollection/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = com.ramotion.ExpandingCollection;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
@@ -702,6 +872,14 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
8499D81F1D001B82004B5B37 /* Build configuration list for PBXNativeTarget "ExpandingCollection" */ = {
isa = XCConfigurationList;
buildConfigurations = (
8499D81D1D001B82004B5B37 /* Debug */,
8499D81E1D001B82004B5B37 /* Release */,
);
defaultConfigurationIsVisible = 0;
};
/* End XCConfigurationList section */
};
rootObject = 848596201CF585F3000BCC74 /* Project object */;
@@ -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 = "8499D8131D001B82004B5B37"
BuildableName = "ExpandingCollection.framework"
BlueprintName = "ExpandingCollection"
ReferencedContainer = "container:DemoExpandingCollection.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 = "8499D8131D001B82004B5B37"
BuildableName = "ExpandingCollection.framework"
BlueprintName = "ExpandingCollection"
ReferencedContainer = "container:DemoExpandingCollection.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8499D8131D001B82004B5B37"
BuildableName = "ExpandingCollection.framework"
BlueprintName = "ExpandingCollection"
ReferencedContainer = "container:DemoExpandingCollection.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
@@ -0,0 +1,19 @@
//
// ExpandingCollection.h
// ExpandingCollection
//
// Created by Alex K. on 02/06/16.
// Copyright © 2016 Alex K. All rights reserved.
//
#import <UIKit/UIKit.h>
//! Project version number for ExpandingCollection.
FOUNDATION_EXPORT double ExpandingCollectionVersionNumber;
//! Project version string for ExpandingCollection.
FOUNDATION_EXPORT const unsigned char ExpandingCollectionVersionString[];
// In this header, you should import all the public headers of your framework using statements like #import <ExpandingCollection/PublicHeader.h>
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>$(CURRENT_PROJECT_VERSION)</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
+141
View File
@@ -1 +1,142 @@
![header](./header.png)
# expanding-collection
[![Twitter](https://img.shields.io/badge/Twitter-@Ramotion-blue.svg?style=flat)](http://twitter.com/Ramotion)
[![CocoaPods](https://img.shields.io/cocoapods/p/expanding-collection.svg)](https://cocoapods.org/pods/expanding-collection)
[![CocoaPods](https://img.shields.io/cocoapods/v/expanding-collection.svg)](http://cocoapods.org/pods/expanding-collection)
[![Travis](https://travis-ci.org/Ramotion/elastic-pull-to-update.svg?branch=master)](https://travis-ci.org/Ramotion/elastic-pull-to-update)
[![codebeat badge](https://codebeat.co/badges/6a009992-5bf2-4730-aa35-f3b20ce7693d)](https://codebeat.co/projects/github-com-ramotion-expanding-collection)
[shot on dribbble](https://dribbble.com/shots/2741477-iOS-Expanding-Collection-Open-Source):
![Animation](preview.gif)
The [iPhone mockup](https://store.ramotion.com/product/iphone-6-mockups?utm_source=gthb&utm_medium=special&utm_campaign=expanding-collection) available [here](https://store.ramotion.com/product/iphone-6-mockups?utm_source=gthb&utm_medium=special&utm_campaign=expanding-collection).
## Requirements
- iOS 8.0+
- Xcode 7.3
## Installation
Just add the Source folder to your project.
or use [CocoaPods](https://cocoapods.org) with Podfile:
``` ruby
pod 'expanding-collection', '~> 0.0.2'
```
## Usage
```swift
import expanding_collection
```
#### Create CollectionViewCell
![cell](./images/image2.png)
1) Create UICollectionViewCell inherit from `BasePageCollectionCell` (recommend create cell with xib file)
2) Adding FrontView
- add a view to YOURCELL.xib and connect it to `@IBOutlet weak var frontContainerView: UIView!`
- add width, height, centerX and centerY constraints (width and height constranints must equal cellSize)
![cell](./images/image1.png)
- connect centerY constraint to `@IBOutlet weak var frontConstraintY: NSLayoutConstraint!`
- add any desired uiviews to frontView
3) Adding BackView
- repeat step 3 (connect outlets to `@IBOutlet weak var backContainerView: UIView!`, `@IBOutlet weak var backConstraintY: NSLayoutConstraint!`)
4) Cell example [DemoCell](https://github.com/Ramotion/expanding-collection/tree/master/DemoExpandingCollection/DemoExpandingCollection/ViewControllers/DemoViewController/Cells)
###### If set `tag = 101` for any `FrontView.subviews` this view will be hidden during the transition animation
#### Create CollectionViewController
1) Create a UIViewController inheriting from `ExpandingViewController`
2) Register Cell and set Cell size:
``` swift
override func viewDidLoad() {
itemSize = CGSize(width: 214, height: 264)
super.viewDidLoad()
// register cell
let nib = UINib(nibName: "CellIdentifier", bundle: nil)
collectionView?.registerNib(nib, forCellWithReuseIdentifier: String(DemoCollectionViewCell))
}
```
3) Add UICollectionViewDataSource methods
``` swift
extension YourViewController {
override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return items.count
}
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("CellIdentifier"), forIndexPath: indexPath)
// configure cell
return cell
}
}
```
4) Open Cell animation
```swift
override func viewDidLoad() {
itemSize = CGSize(width: 214, height: 264)
super.viewDidLoad()
// register cell
let nib = UINib(nibName: "CellIdentifier", bundle: nil)
collectionView?.registerNib(nib, forCellWithReuseIdentifier: String(DemoCollectionViewCell))
}
```
``` swift
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
cell.cellIsOpen(!cell.isOpened)
}
```
#### Transition animation
1) Create a UITableViewController inheriting from `ExpandingTableViewController`
2) Set header height default 236
``` swift
override func viewDidLoad() {
super.viewDidLoad()
headerHeight = ***
}
```
3) Call the push method in YourViewController to YourTableViewController
``` swift
if cell.isOpened == true {
let vc: YourTableViewController = // ... create view controller
pushToViewController(vc)
}
```
4) For back transition use `popTransitionAnimation()`
## License
Expanding collection is released under the MIT license.
See [LICENSE](./LICENSE) for details.
## About
The project maintained by [app development agency](https://ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=expanding-collection) [Ramotion Inc.](https://ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=expanding-collection)
See our other [open-source projects](https://github.com/ramotion) or [hire](https://ramotion.com?utm_source=gthb&utm_medium=special&utm_campaign=expanding-collection) us to design, develop, and grow your product.
[![Twitter URL](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=https://github.com/ramotion/expanding-collection)
[![Twitter Follow](https://img.shields.io/twitter/follow/ramotion.svg?style=social)](https://twitter.com/ramotion)
+1 -1
View File
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'expanding-collection'
s.version = '0.0.1'
s.version = '0.0.2'
s.summary = 'Transition animtion from CollectionView to TableView'
s.license = 'MIT'
s.homepage = 'https://github.com/Ramotion/expanding-collection'
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 MiB