Commit 96df5177 by Daniel Dahan

added SideNavigationViewController project

parent 8e388856
# Contributing Guidelines
This document contains information and guidelines about contributing to this project.
Please read it before you start participating.
**Topics**
* [Asking Questions](#asking-questions)
* [Reporting Security Issues](#reporting-security-issues)
* [Reporting Issues](#reporting-other-issues)
* [Developers Certificate of Origin](#developers-certificate-of-origin)
* [Code of Conduct](#code-of-conduct)
## Asking Questions
We don't use GitHub as a support forum.
For any usage questions that are not specific to the project itself,
please ask on [Stack Overflow](http://stackoverflow.com/questions/tagged/cosmicmind) instead.
By doing so, you'll be more likely to quickly solve your problem,
and you'll allow anyone else with the same question to find the answer.
This also allows maintainers to focus on improving the project for others.
## Reporting Security Issues
CosmicMind takes security seriously.
If you discover a security issue, please bring it to our attention right away!
Please **DO NOT** file a public issue,
instead send your report privately to <support@cosmicmind.io>.
This will help ensure that any vulnerabilities that _are_ found
can be [disclosed responsibly](http://en.wikipedia.org/wiki/Responsible_disclosure)
to any affected parties.
## Reporting Other Issues
A great way to contribute to the project
is to send a detailed issue when you encounter an problem.
We always appreciate a well-written, thorough bug report.
Check that the project issues database
doesn't already include that problem or suggestion before submitting an issue.
If you find a match, add a quick "+1" or "I have this problem too."
Doing this helps prioritize the most common problems and requests.
When reporting issues, please include the following:
* The version of Xcode you're using
* The version of iOS you're targeting
* The full output of any stack trace or compiler error
* A code snippet that reproduces the described behavior, if applicable
* Any other details that would be useful in understanding the problem
This information will help us review and fix your issue faster.
## Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
- (a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
- (b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
- (c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
- (d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
---
*Some of the ideas and wording for the statements above were based on work by the [Alamofire](https://github.com/Alamofire/Alamofire/blob/master/CONTRIBUTING.md), [Docker](https://github.com/docker/docker/blob/master/CONTRIBUTING.md) and [Linux](http://elinux.org/Developer_Certificate_Of_Origin) communities. We commend them for their efforts to facilitate collaboration in their projects.*
...@@ -59,6 +59,9 @@ ...@@ -59,6 +59,9 @@
location = "group:Programmatic/SearchBarViewController/SearchBarViewController.xcodeproj"> location = "group:Programmatic/SearchBarViewController/SearchBarViewController.xcodeproj">
</FileRef> </FileRef>
<FileRef <FileRef
location = "group:Programmatic/SideNavigationViewController/SideNavigationViewController.xcodeproj">
</FileRef>
<FileRef
location = "group:Programmatic/CardView/CardView.xcodeproj"> location = "group:Programmatic/CardView/CardView.xcodeproj">
</FileRef> </FileRef>
<FileRef <FileRef
......
...@@ -7,8 +7,6 @@ ...@@ -7,8 +7,6 @@
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
9612606B1C78E92000BF0079 /* Material.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9612606A1C78E92000BF0079 /* Material.framework */; };
9612606C1C78E92000BF0079 /* Material.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9612606A1C78E92000BF0079 /* Material.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
9656CD211C6CFA6200EBCEF1 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9656CD201C6CFA6200EBCEF1 /* AppDelegate.swift */; }; 9656CD211C6CFA6200EBCEF1 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9656CD201C6CFA6200EBCEF1 /* AppDelegate.swift */; };
9656CD231C6CFA6200EBCEF1 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9656CD221C6CFA6200EBCEF1 /* ViewController.swift */; }; 9656CD231C6CFA6200EBCEF1 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9656CD221C6CFA6200EBCEF1 /* ViewController.swift */; };
9656CD281C6CFA6200EBCEF1 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9656CD271C6CFA6200EBCEF1 /* Assets.xcassets */; }; 9656CD281C6CFA6200EBCEF1 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9656CD271C6CFA6200EBCEF1 /* Assets.xcassets */; };
...@@ -22,7 +20,6 @@ ...@@ -22,7 +20,6 @@
dstPath = ""; dstPath = "";
dstSubfolderSpec = 10; dstSubfolderSpec = 10;
files = ( files = (
9612606C1C78E92000BF0079 /* Material.framework in Embed Frameworks */,
); );
name = "Embed Frameworks"; name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
...@@ -30,7 +27,6 @@ ...@@ -30,7 +27,6 @@
/* End PBXCopyFilesBuildPhase section */ /* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
9612606A1C78E92000BF0079 /* Material.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; name = Material.framework; path = "/Users/danieldahan/Library/Developer/Xcode/DerivedData/Material-hbpnflxhoouqxebjcyhbbhqyesjd/Build/Products/Debug-iphoneos/Material.framework"; sourceTree = "<absolute>"; };
9656CD1D1C6CFA6200EBCEF1 /* Grid.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Grid.app; sourceTree = BUILT_PRODUCTS_DIR; }; 9656CD1D1C6CFA6200EBCEF1 /* Grid.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Grid.app; sourceTree = BUILT_PRODUCTS_DIR; };
9656CD201C6CFA6200EBCEF1 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; }; 9656CD201C6CFA6200EBCEF1 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
9656CD221C6CFA6200EBCEF1 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; }; 9656CD221C6CFA6200EBCEF1 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
...@@ -44,7 +40,6 @@ ...@@ -44,7 +40,6 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
9612606B1C78E92000BF0079 /* Material.framework in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
...@@ -54,7 +49,6 @@ ...@@ -54,7 +49,6 @@
9656CD141C6CFA6200EBCEF1 = { 9656CD141C6CFA6200EBCEF1 = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
9612606A1C78E92000BF0079 /* Material.framework */,
9656CD1F1C6CFA6200EBCEF1 /* Grid */, 9656CD1F1C6CFA6200EBCEF1 /* Grid */,
9656CD1E1C6CFA6200EBCEF1 /* Products */, 9656CD1E1C6CFA6200EBCEF1 /* Products */,
); );
......
...@@ -2,17 +2,17 @@ ...@@ -2,17 +2,17 @@
"images" : [ "images" : [
{ {
"idiom" : "universal", "idiom" : "universal",
"filename" : "ic_menu_white.png", "filename" : "ic_arrow_back_white.png",
"scale" : "1x" "scale" : "1x"
}, },
{ {
"idiom" : "universal", "idiom" : "universal",
"filename" : "ic_menu_white@2x.png", "filename" : "ic_arrow_back_white_2x.png",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"idiom" : "universal", "idiom" : "universal",
"filename" : "ic_menu_white@3x.png", "filename" : "ic_arrow_back_white_3x.png",
"scale" : "3x" "scale" : "3x"
} }
], ],
......
...@@ -2,17 +2,17 @@ ...@@ -2,17 +2,17 @@
"images" : [ "images" : [
{ {
"idiom" : "universal", "idiom" : "universal",
"filename" : "ic_menu_white.png", "filename" : "ic_more_horiz_white.png",
"scale" : "1x" "scale" : "1x"
}, },
{ {
"idiom" : "universal", "idiom" : "universal",
"filename" : "ic_menu_white_2x.png", "filename" : "ic_more_horiz_white_2x.png",
"scale" : "2x" "scale" : "2x"
}, },
{ {
"idiom" : "universal", "idiom" : "universal",
"filename" : "ic_menu_white_3x.png", "filename" : "ic_more_horiz_white_3x.png",
"scale" : "3x" "scale" : "3x"
} }
], ],
......
...@@ -54,43 +54,53 @@ class ViewController: UIViewController { ...@@ -54,43 +54,53 @@ class ViewController: UIViewController {
/// Prepare navigationBarView. /// Prepare navigationBarView.
private func prepareSearchBarView() { private func prepareSearchBarView() {
var image = UIImage(named: "ic_close_white") var image = UIImage(named: "ic_close_white")?.imageWithRenderingMode(.AlwaysTemplate)
let clearButton: FlatButton = FlatButton() let clearButton: FlatButton = FlatButton()
clearButton.pulseColor = MaterialColor.white clearButton.pulseColor = MaterialColor.blueGrey.darken4
clearButton.pulseScale = false clearButton.pulseScale = false
clearButton.tintColor = MaterialColor.blueGrey.darken4
clearButton.setImage(image, forState: .Normal) clearButton.setImage(image, forState: .Normal)
clearButton.setImage(image, forState: .Highlighted) clearButton.setImage(image, forState: .Highlighted)
image = UIImage(named: "ic_menu_white") // Back button.
let menuButton: FlatButton = FlatButton() image = UIImage(named: "ic_arrow_back_white")?.imageWithRenderingMode(.AlwaysTemplate)
menuButton.pulseColor = MaterialColor.white let backButton: FlatButton = FlatButton()
menuButton.pulseScale = false backButton.pulseColor = MaterialColor.blueGrey.darken4
menuButton.setImage(image, forState: .Normal) backButton.pulseScale = false
menuButton.setImage(image, forState: .Highlighted) backButton.tintColor = MaterialColor.blueGrey.darken4
backButton.setImage(image, forState: .Normal)
backButton.setImage(image, forState: .Highlighted)
// Switch control. // Switch control.
let switchControl: MaterialSwitch = MaterialSwitch(state: .Off, style: .LightContent, size: .Small) let switchControl: MaterialSwitch = MaterialSwitch(state: .Off, style: .Default, size: .Small)
switchControl.buttonOnColor = MaterialColor.lightBlue.base
// More button.
image = UIImage(named: "ic_more_horiz_white")?.imageWithRenderingMode(.AlwaysTemplate)
let moreButton: FlatButton = FlatButton()
moreButton.pulseColor = MaterialColor.blueGrey.darken4
moreButton.pulseScale = false
moreButton.tintColor = MaterialColor.blueGrey.darken4
moreButton.setImage(image, forState: .Normal)
moreButton.setImage(image, forState: .Highlighted)
/* /*
To lighten the status bar - add the To lighten the status bar - add the
"View controller-based status bar appearance = NO" "View controller-based status bar appearance = NO"
to your info.plist file and set the following property. to your info.plist file and set the following property.
*/ */
searchBarView.statusBarStyle = .LightContent searchBarView.statusBarStyle = .Default
searchBarView.delegate = self searchBarView.delegate = self
searchBarView.backgroundColor = MaterialColor.indigo.base
searchBarView.placeholder = "Search" searchBarView.placeholder = "Search"
searchBarView.tintColor = MaterialColor.white searchBarView.tintColor = MaterialColor.blueGrey.darken4
searchBarView.textColor = MaterialColor.white searchBarView.textColor = MaterialColor.blueGrey.darken4
searchBarView.placeholderTextColor = MaterialColor.white searchBarView.placeholderTextColor = MaterialColor.blueGrey.darken4
searchBarView.textField.font = RobotoFont.regularWithSize(17) searchBarView.textField.font = RobotoFont.regularWithSize(17)
searchBarView.clearButton = clearButton searchBarView.clearButton = clearButton
searchBarView.leftControls = [menuButton] searchBarView.leftControls = [backButton]
searchBarView.rightControls = [switchControl] searchBarView.rightControls = [switchControl, moreButton]
view.addSubview(searchBarView) view.addSubview(searchBarView)
} }
......
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
9663F9691C7ADCB600AF0965 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9663F9681C7ADCB600AF0965 /* AppDelegate.swift */; };
9663F9701C7ADCB600AF0965 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9663F96F1C7ADCB600AF0965 /* Assets.xcassets */; };
9663F9731C7ADCB600AF0965 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9663F9711C7ADCB600AF0965 /* LaunchScreen.storyboard */; };
9663F97B1C7ADD0B00AF0965 /* YellowViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9663F97A1C7ADD0B00AF0965 /* YellowViewController.swift */; };
9663F97D1C7ADD1400AF0965 /* BlueViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9663F97C1C7ADD1400AF0965 /* BlueViewController.swift */; };
9663F97F1C7ADD1F00AF0965 /* GreenViewcontroller.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9663F97E1C7ADD1F00AF0965 /* GreenViewcontroller.swift */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
9663F9831C7ADD7800AF0965 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
);
name = "Embed Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
9663F9651C7ADCB600AF0965 /* SideNavigationViewController.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SideNavigationViewController.app; sourceTree = BUILT_PRODUCTS_DIR; };
9663F9681C7ADCB600AF0965 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
9663F96F1C7ADCB600AF0965 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
9663F9721C7ADCB600AF0965 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
9663F9741C7ADCB600AF0965 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
9663F97A1C7ADD0B00AF0965 /* YellowViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YellowViewController.swift; sourceTree = "<group>"; };
9663F97C1C7ADD1400AF0965 /* BlueViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BlueViewController.swift; sourceTree = "<group>"; };
9663F97E1C7ADD1F00AF0965 /* GreenViewcontroller.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GreenViewcontroller.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
9663F9621C7ADCB600AF0965 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
9663F95C1C7ADCB600AF0965 = {
isa = PBXGroup;
children = (
9663F9671C7ADCB600AF0965 /* SideNavigationViewController */,
9663F9661C7ADCB600AF0965 /* Products */,
);
sourceTree = "<group>";
};
9663F9661C7ADCB600AF0965 /* Products */ = {
isa = PBXGroup;
children = (
9663F9651C7ADCB600AF0965 /* SideNavigationViewController.app */,
);
name = Products;
sourceTree = "<group>";
};
9663F9671C7ADCB600AF0965 /* SideNavigationViewController */ = {
isa = PBXGroup;
children = (
9663F9681C7ADCB600AF0965 /* AppDelegate.swift */,
9663F97A1C7ADD0B00AF0965 /* YellowViewController.swift */,
9663F97C1C7ADD1400AF0965 /* BlueViewController.swift */,
9663F97E1C7ADD1F00AF0965 /* GreenViewcontroller.swift */,
9663F96F1C7ADCB600AF0965 /* Assets.xcassets */,
9663F9711C7ADCB600AF0965 /* LaunchScreen.storyboard */,
9663F9741C7ADCB600AF0965 /* Info.plist */,
);
path = SideNavigationViewController;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
9663F9641C7ADCB600AF0965 /* SideNavigationViewController */ = {
isa = PBXNativeTarget;
buildConfigurationList = 9663F9771C7ADCB600AF0965 /* Build configuration list for PBXNativeTarget "SideNavigationViewController" */;
buildPhases = (
9663F9611C7ADCB600AF0965 /* Sources */,
9663F9621C7ADCB600AF0965 /* Frameworks */,
9663F9631C7ADCB600AF0965 /* Resources */,
9663F9831C7ADD7800AF0965 /* Embed Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = SideNavigationViewController;
productName = SideNavigationViewController;
productReference = 9663F9651C7ADCB600AF0965 /* SideNavigationViewController.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
9663F95D1C7ADCB600AF0965 /* Project object */ = {
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0720;
LastUpgradeCheck = 0720;
ORGANIZATIONNAME = "CosmicMind, Inc.";
TargetAttributes = {
9663F9641C7ADCB600AF0965 = {
CreatedOnToolsVersion = 7.2.1;
};
};
};
buildConfigurationList = 9663F9601C7ADCB600AF0965 /* Build configuration list for PBXProject "SideNavigationViewController" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 9663F95C1C7ADCB600AF0965;
productRefGroup = 9663F9661C7ADCB600AF0965 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
9663F9641C7ADCB600AF0965 /* SideNavigationViewController */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
9663F9631C7ADCB600AF0965 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
9663F9731C7ADCB600AF0965 /* LaunchScreen.storyboard in Resources */,
9663F9701C7ADCB600AF0965 /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
9663F9611C7ADCB600AF0965 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
9663F97F1C7ADD1F00AF0965 /* GreenViewcontroller.swift in Sources */,
9663F97B1C7ADD0B00AF0965 /* YellowViewController.swift in Sources */,
9663F97D1C7ADD1400AF0965 /* BlueViewController.swift in Sources */,
9663F9691C7ADCB600AF0965 /* AppDelegate.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
9663F9711C7ADCB600AF0965 /* LaunchScreen.storyboard */ = {
isa = PBXVariantGroup;
children = (
9663F9721C7ADCB600AF0965 /* Base */,
);
name = LaunchScreen.storyboard;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
9663F9751C7ADCB600AF0965 /* 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_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
9663F9761C7ADCB600AF0965 /* 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_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
9663F9781C7ADCB600AF0965 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = SideNavigationViewController/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = io.cosmicmind.SideNavigationViewController;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
9663F9791C7ADCB600AF0965 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
INFOPLIST_FILE = SideNavigationViewController/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
PRODUCT_BUNDLE_IDENTIFIER = io.cosmicmind.SideNavigationViewController;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
9663F9601C7ADCB600AF0965 /* Build configuration list for PBXProject "SideNavigationViewController" */ = {
isa = XCConfigurationList;
buildConfigurations = (
9663F9751C7ADCB600AF0965 /* Debug */,
9663F9761C7ADCB600AF0965 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
9663F9771C7ADCB600AF0965 /* Build configuration list for PBXNativeTarget "SideNavigationViewController" */ = {
isa = XCConfigurationList;
buildConfigurations = (
9663F9781C7ADCB600AF0965 /* Debug */,
9663F9791C7ADCB600AF0965 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 9663F95D1C7ADCB600AF0965 /* Project object */;
}
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:SideNavigationViewController.xcodeproj">
</FileRef>
</Workspace>
/*
* Copyright (C) 2015 - 2016, Daniel Dahan and CosmicMind, Inc. <http://cosmicmind.io>.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of Material nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
import UIKit
import Material
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
window = UIWindow(frame: UIScreen.mainScreen().bounds)
window!.rootViewController = SideNavigationViewController(mainViewController: YellowViewController(), leftViewController: GreenViewController(), rightViewController: BlueViewController())
window!.makeKeyAndVisible()
return true
}
func applicationWillResignActive(application: UIApplication) {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}
func applicationDidEnterBackground(application: UIApplication) {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
func applicationWillEnterForeground(application: UIApplication) {
// Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}
func applicationDidBecomeActive(application: UIApplication) {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
func applicationWillTerminate(application: UIApplication) {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
}
{
"images" : [
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Material-Icon-29@2x.png",
"scale" : "2x"
},
{
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Material-Icon-29@3x.png",
"scale" : "3x"
},
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "Material-Icon-40@2x-1.png",
"scale" : "2x"
},
{
"size" : "40x40",
"idiom" : "iphone",
"filename" : "Material-Icon-40@3x.png",
"scale" : "3x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "Material-Icon-60@2x.png",
"scale" : "2x"
},
{
"size" : "60x60",
"idiom" : "iphone",
"filename" : "Material-Icon-60@3x.png",
"scale" : "3x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "Material-Icon-29.png",
"scale" : "1x"
},
{
"size" : "29x29",
"idiom" : "ipad",
"filename" : "Material-Icon-29@2x-1.png",
"scale" : "2x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "Material-Icon-40.png",
"scale" : "1x"
},
{
"size" : "40x40",
"idiom" : "ipad",
"filename" : "Material-Icon-40@2x.png",
"scale" : "2x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "Material-Icon-76.png",
"scale" : "1x"
},
{
"size" : "76x76",
"idiom" : "ipad",
"filename" : "Material-Icon-76@2x.png",
"scale" : "2x"
},
{
"size" : "83.5x83.5",
"idiom" : "ipad",
"filename" : "Material-Icon-83.5@2x.png",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="8150" systemVersion="15A204g" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" initialViewController="01J-lp-oVM">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="8122"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="EHf-IW-A2E">
<objects>
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="Llm-lL-Icb"/>
<viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<animations/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="53" y="375"/>
</scene>
</scenes>
</document>
/*
* Copyright (C) 2015 - 2016, Daniel Dahan and CosmicMind, Inc. <http://cosmicmind.io>.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of GraphKit nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
import UIKit
import Material
class BlueViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
prepareView()
}
/// Prepares view.
private func prepareView() {
view.backgroundColor = MaterialColor.blue.base
}
}
/*
* Copyright (C) 2015 - 2016, Daniel Dahan and CosmicMind, Inc. <http://cosmicmind.io>.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of GraphKit nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
import UIKit
import Material
class GreenViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
prepareView()
}
/// Prepares view.
private func prepareView() {
view.backgroundColor = MaterialColor.green.base
}
}
<?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>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>
/*
* Copyright (C) 2015 - 2016, Daniel Dahan and CosmicMind, Inc. <http://cosmicmind.io>.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of GraphKit nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
import UIKit
import Material
class YellowViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
prepareView()
}
/// Prepares view.
private func prepareView() {
view.backgroundColor = MaterialColor.yellow.base
}
}
...@@ -12,9 +12,7 @@ Express your creativity with Material, an animation and graphics framework for G ...@@ -12,9 +12,7 @@ Express your creativity with Material, an animation and graphics framework for G
- [x] Grid System For Complex UIs - [x] Grid System For Complex UIs
- [x] Layout Library To Simplify AutoLayout - [x] Layout Library To Simplify AutoLayout
- [x] Base Material Layers & Material Views To Create New UI Components - [x] Base Material Layers & Material Views To Create New UI Components
- [x] Side Navigation View Controller - [x] Navigation Controls
- [x] Navigation Bar View & Controller
- [x] Search Bar View
- [x] Material Buttons - [x] Material Buttons
- [x] Material Switch - [x] Material Switch
- [x] Material Card Views - [x] Material Card Views
...@@ -52,6 +50,7 @@ Material is a growing project and will encounter changes throughout its developm ...@@ -52,6 +50,7 @@ Material is a growing project and will encounter changes throughout its developm
## Examples ## Examples
* Visit the Examples directory to see example projects using Material. * Visit the Examples directory to see example projects using Material.
* The [Installation](https://github.com/CosmicMind/Material/wiki/Installation) page has documentation on how to run the example projects.
## A Tour ## A Tour
...@@ -72,6 +71,7 @@ Material is a growing project and will encounter changes throughout its developm ...@@ -72,6 +71,7 @@ Material is a growing project and will encounter changes throughout its developm
#### Buttons #### Buttons
* MaterialButton
* [FlatButton](#flatbutton) * [FlatButton](#flatbutton)
* [RaisedButton](#raisedbutton) * [RaisedButton](#raisedbutton)
* [FabButton](#fabbutton) * [FabButton](#fabbutton)
...@@ -80,6 +80,10 @@ Material is a growing project and will encounter changes throughout its developm ...@@ -80,6 +80,10 @@ Material is a growing project and will encounter changes throughout its developm
* [MaterialSwitch](#materialswitch) (New) * [MaterialSwitch](#materialswitch) (New)
#### Collection Management
* [Menu](#menu) (New)
#### Layout #### Layout
* [Grid](#grid) (New) * [Grid](#grid) (New)
...@@ -94,13 +98,9 @@ Material is a growing project and will encounter changes throughout its developm ...@@ -94,13 +98,9 @@ Material is a growing project and will encounter changes throughout its developm
* [CardView](#cardview) (New) * [CardView](#cardview) (New)
* [ImageCardView](#imagecardview) * [ImageCardView](#imagecardview)
#### Component Control
* [Menu](#menu) (New)
#### Navigation #### Navigation
* [MenuView](#menuviewview) (New) * [MenuView](#menuview) (New)
* [MenuViewController](#menuviewcontroller) (New) * [MenuViewController](#menuviewcontroller) (New)
* [NavigationBarView](#navigationbarview) (New) * [NavigationBarView](#navigationbarview) (New)
* [NavigationBarViewController](#navigationbarviewcontroller) (New) * [NavigationBarViewController](#navigationbarviewcontroller) (New)
...@@ -112,9 +112,8 @@ Material is a growing project and will encounter changes throughout its developm ...@@ -112,9 +112,8 @@ Material is a growing project and will encounter changes throughout its developm
* [CaptureView](#captureview) * [CaptureView](#captureview)
## Upcoming #### Upcoming
* SearchBarViewController
* TabView * TabView
* TabViewController * TabViewController
* Scrolling Techniques * Scrolling Techniques
...@@ -123,7 +122,7 @@ Material is a growing project and will encounter changes throughout its developm ...@@ -123,7 +122,7 @@ Material is a growing project and will encounter changes throughout its developm
* More Examples * More Examples
<a name="materialcolor"></a> <a name="materialcolor"></a>
## MaterialColor #### MaterialColor
MaterialColor is a complete Material Design color library. It uses base color values that expand to a range of lighter and darker shades, with the addition of accents. MaterialColor is a complete Material Design color library. It uses base color values that expand to a range of lighter and darker shades, with the addition of accents.
...@@ -132,7 +131,7 @@ MaterialColor is a complete Material Design color library. It uses base color va ...@@ -132,7 +131,7 @@ MaterialColor is a complete Material Design color library. It uses base color va
[Learn More About MaterialColor](https://github.com/CosmicMind/Material/wiki/MaterialColor) [Learn More About MaterialColor](https://github.com/CosmicMind/Material/wiki/MaterialColor)
<a name="materiallayer"></a> <a name="materiallayer"></a>
## MaterialLayer #### MaterialLayer
MaterialLayer is a lightweight CAShapeLayer used throughout Material. It is designed to easily take shape, depth, and animations. MaterialLayer is a lightweight CAShapeLayer used throughout Material. It is designed to easily take shape, depth, and animations.
...@@ -141,7 +140,7 @@ MaterialLayer is a lightweight CAShapeLayer used throughout Material. It is desi ...@@ -141,7 +140,7 @@ MaterialLayer is a lightweight CAShapeLayer used throughout Material. It is desi
[Learn More About MaterialLayer](https://github.com/CosmicMind/Material/wiki/MaterialLayer) [Learn More About MaterialLayer](https://github.com/CosmicMind/Material/wiki/MaterialLayer)
<a name="materialview"></a> <a name="materialview"></a>
## MaterialView #### MaterialView
MaterialView is the base UIView class used throughout Material. Like MaterialLayer, it is designed to easily take shape, depth, and animations. The major difference is that MaterialView has all the added features of the UIView class. MaterialView is the base UIView class used throughout Material. Like MaterialLayer, it is designed to easily take shape, depth, and animations. The major difference is that MaterialView has all the added features of the UIView class.
...@@ -150,7 +149,7 @@ MaterialView is the base UIView class used throughout Material. Like MaterialLay ...@@ -150,7 +149,7 @@ MaterialView is the base UIView class used throughout Material. Like MaterialLay
[Learn More About MaterialView](https://github.com/CosmicMind/Material/wiki/MaterialView) [Learn More About MaterialView](https://github.com/CosmicMind/Material/wiki/MaterialView)
<a name="materialpulseview"></a> <a name="materialpulseview"></a>
## MaterialPulseView #### MaterialPulseView
MaterialPulseView is at the heart of all pulse animations. Any view that subclasses MaterialPulseView instantly inherits the pulse animation with full customizability. MaterialPulseView is at the heart of all pulse animations. Any view that subclasses MaterialPulseView instantly inherits the pulse animation with full customizability.
...@@ -159,7 +158,7 @@ MaterialPulseView is at the heart of all pulse animations. Any view that subclas ...@@ -159,7 +158,7 @@ MaterialPulseView is at the heart of all pulse animations. Any view that subclas
[Learn More About MaterialPulseView](https://github.com/CosmicMind/Material/wiki/MaterialPulseView) [Learn More About MaterialPulseView](https://github.com/CosmicMind/Material/wiki/MaterialPulseView)
<a name="textfield"></a> <a name="textfield"></a>
## TextField #### TextField
A TextField is an excellent way to improve UX. TextFields offer details A TextField is an excellent way to improve UX. TextFields offer details
that describe the usage and input results of text. For example, when a that describe the usage and input results of text. For example, when a
...@@ -171,7 +170,7 @@ under the TextField. ...@@ -171,7 +170,7 @@ under the TextField.
[Learn More About TextField](https://github.com/CosmicMind/Material/wiki/TextField) [Learn More About TextField](https://github.com/CosmicMind/Material/wiki/TextField)
<a name="textview"></a> <a name="textview"></a>
## TextView #### TextView
A TextView is an excellent way to improve UX. TextViews offer details that describe the usage of text. In addition, TextViews may easily match any regular expression pattern in a body of text. Below is an example of the default hashtag pattern matching. A TextView is an excellent way to improve UX. TextViews offer details that describe the usage of text. In addition, TextViews may easily match any regular expression pattern in a body of text. Below is an example of the default hashtag pattern matching.
...@@ -180,7 +179,7 @@ A TextView is an excellent way to improve UX. TextViews offer details that descr ...@@ -180,7 +179,7 @@ A TextView is an excellent way to improve UX. TextViews offer details that descr
[Learn More About TextView](https://github.com/CosmicMind/Material/wiki/TextView) [Learn More About TextView](https://github.com/CosmicMind/Material/wiki/TextView)
<a name="flatbutton"></a> <a name="flatbutton"></a>
## FlatButton #### FlatButton
A FlatButton is simple, clean, and very effective. Below is an example of a FlatButton in action. A FlatButton is simple, clean, and very effective. Below is an example of a FlatButton in action.
...@@ -189,7 +188,7 @@ A FlatButton is simple, clean, and very effective. Below is an example of a Flat ...@@ -189,7 +188,7 @@ A FlatButton is simple, clean, and very effective. Below is an example of a Flat
[Learn More About FlatButton](https://github.com/CosmicMind/Material/wiki/FlatButton) [Learn More About FlatButton](https://github.com/CosmicMind/Material/wiki/FlatButton)
<a name="raisedbutton"></a> <a name="raisedbutton"></a>
## RaisedButton #### RaisedButton
A RaisedButton is sure to get attention. Take a look at the following animation example. A RaisedButton is sure to get attention. Take a look at the following animation example.
...@@ -198,7 +197,7 @@ A RaisedButton is sure to get attention. Take a look at the following animation ...@@ -198,7 +197,7 @@ A RaisedButton is sure to get attention. Take a look at the following animation
[Learn More About RaisedButton](https://github.com/CosmicMind/Material/wiki/RaisedButton) [Learn More About RaisedButton](https://github.com/CosmicMind/Material/wiki/RaisedButton)
<a name="fabbutton"></a> <a name="fabbutton"></a>
## FabButton #### FabButton
A FabButton is essential to Material Design's overall look. Below showcases its beauty. A FabButton is essential to Material Design's overall look. Below showcases its beauty.
...@@ -207,7 +206,7 @@ A FabButton is essential to Material Design's overall look. Below showcases its ...@@ -207,7 +206,7 @@ A FabButton is essential to Material Design's overall look. Below showcases its
[Learn More About FabButton](https://github.com/CosmicMind/Material/wiki/FabButton) [Learn More About FabButton](https://github.com/CosmicMind/Material/wiki/FabButton)
<a name="materialswitch"></a> <a name="materialswitch"></a>
## MaterialSwitch #### MaterialSwitch
MaterialSwitch is a fully customizable UIControl. It has auto centre alignment when using AutoLayout, and makes for a great addition to the UIControl family of components. MaterialSwitch is a fully customizable UIControl. It has auto centre alignment when using AutoLayout, and makes for a great addition to the UIControl family of components.
...@@ -216,13 +215,9 @@ MaterialSwitch is a fully customizable UIControl. It has auto centre alignment w ...@@ -216,13 +215,9 @@ MaterialSwitch is a fully customizable UIControl. It has auto centre alignment w
[Learn More About MaterialSwitch](https://github.com/CosmicMind/Material/wiki/MaterialSwitch) [Learn More About MaterialSwitch](https://github.com/CosmicMind/Material/wiki/MaterialSwitch)
<a name="menu"></a> <a name="menu"></a>
## Menu #### Menu
A Menu manages a group of UIViews that may be animated open in the Up, Down, Left, and Right directions. The animations are fully customizable. The Examples/Programmatic directory has sample projects using Menus. A Menu manages a group of UIViews that may be animated open in the Up, Down, Left, and Right directions. The animations are fully customizable.
Below is an example using FabButtons.
![MaterialFabMenu](http://www.cosmicmind.io/MK/MaterialFabMenu.gif)
Below is an example using FlatButtons. Below is an example using FlatButtons.
...@@ -235,7 +230,7 @@ Below is an example using FlatButtons with images. ...@@ -235,7 +230,7 @@ Below is an example using FlatButtons with images.
[Learn More About Menu](https://github.com/CosmicMind/Material/wiki/Menu) [Learn More About Menu](https://github.com/CosmicMind/Material/wiki/Menu)
<a name="grid"></a> <a name="grid"></a>
## Grid #### Grid
Grid is an extension of UIView that enables any collection of subviews to be managed in a flexible grid system, independent of other views that would need to be freely moving. Below are examples of using Grid. In the Examples/Programmatic directory, there are examples using this wonderful feature. Grid is an extension of UIView that enables any collection of subviews to be managed in a flexible grid system, independent of other views that would need to be freely moving. Below are examples of using Grid. In the Examples/Programmatic directory, there are examples using this wonderful feature.
...@@ -254,7 +249,7 @@ Below is an example of a large CardView using Grid. ...@@ -254,7 +249,7 @@ Below is an example of a large CardView using Grid.
[Learn More About Grid](https://github.com/CosmicMind/Material/wiki/Grid) [Learn More About Grid](https://github.com/CosmicMind/Material/wiki/Grid)
<a name="materialtableviewcell"></a> <a name="materialtableviewcell"></a>
## MaterialTableViewCell #### MaterialTableViewCell
UITableViewCell is a popular and widely used view in iOS. Now the pulse animation and core Material features have been made available for the UITableViewCell. UITableViewCell is a popular and widely used view in iOS. Now the pulse animation and core Material features have been made available for the UITableViewCell.
...@@ -262,35 +257,8 @@ UITableViewCell is a popular and widely used view in iOS. Now the pulse animatio ...@@ -262,35 +257,8 @@ UITableViewCell is a popular and widely used view in iOS. Now the pulse animatio
[Learn More About MaterialTableViewCell](https://github.com/CosmicMind/Material/wiki/MaterialTableViewCell) [Learn More About MaterialTableViewCell](https://github.com/CosmicMind/Material/wiki/MaterialTableViewCell)
<a name="navigationbarview"></a>
## NavigationBarView
A NavigationBarView is a fully featured navigation bar that supports orientation changes, background images, title and detail labels, both left and right UIControl sets, and status bar settings.
![MaterialNavigationBarView](http://www.cosmicmind.io/MK/MaterialNavigationBarView.gif)
[Learn More About NavigationBarView](https://github.com/CosmicMind/Material/wiki/NavigationBarView)
<a name="searchbarview"></a>
## SearchBarView
A SearchBarView is a fully featured search bar that supports orientation changes, background images, title and detail labels, both left and right UIControl sets, and status bar settings.
![MaterialSearchBarView](http://www.cosmicmind.io/MK/MaterialSearchBarView.gif)
[Learn More About SearchBarView](https://github.com/CosmicMind/Material/wiki/SearchBarView)
<a name="sidenavigationviewcontroller"></a>
## SideNavigationViewController
The SideNavigationViewController is an app wide navigation pattern. It generally provides overall app navigation with other useful items. Use the Left position for global app navigation, and the Right position for view navigation.
![MaterialSideNavigationViewController](http://www.cosmicmind.io/MK/MaterialSideNavigationViewController.gif)
[Learn More About SideNavigationViewController](https://github.com/CosmicMind/Material/wiki/SideNavigationViewController)
<a name="cardview"></a> <a name="cardview"></a>
## CardView #### CardView
Right out of the box to a fully customizable configuration, CardView always stands out. Take a look at a few examples in action. Right out of the box to a fully customizable configuration, CardView always stands out. Take a look at a few examples in action.
...@@ -311,7 +279,7 @@ CardViews are so flexible they create entirely new components by removing all bu ...@@ -311,7 +279,7 @@ CardViews are so flexible they create entirely new components by removing all bu
[Learn More About CardView](https://github.com/CosmicMind/Material/wiki/CardView) [Learn More About CardView](https://github.com/CosmicMind/Material/wiki/CardView)
<a name="imagecardview"></a> <a name="imagecardview"></a>
## ImageCardView #### ImageCardView
Bold and attractive, ImageCardView is the next step from a CardView. Below are some animations to give you an idea of the possibilities the ImageCardView has to offer. Bold and attractive, ImageCardView is the next step from a CardView. Below are some animations to give you an idea of the possibilities the ImageCardView has to offer.
...@@ -323,7 +291,18 @@ Remove elements, such as details to create a fresh look for your images. ...@@ -323,7 +291,18 @@ Remove elements, such as details to create a fresh look for your images.
[Learn More About ImageCardView](https://github.com/CosmicMind/Material/wiki/ImageCardView) [Learn More About ImageCardView](https://github.com/CosmicMind/Material/wiki/ImageCardView)
## Navigation #### Navigation
Navigation controls create smooth transitions between UIViewControllers. They may be used individually or stacked. Transitions are customizable and dimensions are flexible with auto management for both Portrait and Landscape modes.
<a name="menu"></a>
#### MenuView
A MenuView is a UIView wrapper around a Menu control. It allows a stack of UIViews to be coordinated by a single view. This is good for Menus that are within flexible view hierarchies.
Below is an example using FabButtons.
![MaterialFabMenu](http://www.cosmicmind.io/MK/MaterialFabMenu.gif)
<a href="#menuviewcontroller"></a> <a href="#menuviewcontroller"></a>
#### MenuViewController #### MenuViewController
...@@ -332,6 +311,15 @@ A MenuViewController manages UIViewControllers using a MenuView component. ...@@ -332,6 +311,15 @@ A MenuViewController manages UIViewControllers using a MenuView component.
![MaterialMenuViewController](http://www.cosmicmind.io/MK/MaterialMenuViewController.gif) ![MaterialMenuViewController](http://www.cosmicmind.io/MK/MaterialMenuViewController.gif)
<a name="navigationbarview"></a>
#### NavigationBarView
A NavigationBarView is a fully featured navigation bar that supports orientation changes, background images, title and detail labels, both left and right UIControl sets, and status bar settings.
![MaterialNavigationBarView](http://www.cosmicmind.io/MK/MaterialNavigationBarView.gif)
[Learn More About NavigationBarView](https://github.com/CosmicMind/Material/wiki/NavigationBarView)
<a href="#navigationbarviewcontroller"></a> <a href="#navigationbarviewcontroller"></a>
#### NavigationBarViewController #### NavigationBarViewController
...@@ -339,6 +327,14 @@ A NavigationBarViewController manages UIViewControllers using a NavigationBarVie ...@@ -339,6 +327,14 @@ A NavigationBarViewController manages UIViewControllers using a NavigationBarVie
![MaterialNavigationBarViewController](http://www.cosmicmind.io/MK/MaterialNavigationBarViewController.gif) ![MaterialNavigationBarViewController](http://www.cosmicmind.io/MK/MaterialNavigationBarViewController.gif)
<a name="searchbarview"></a>
#### SearchBarView
A SearchBarView is a fully featured search bar that supports orientation changes, background images, title and detail labels, both left and right UIControl sets, and status bar settings.
![MaterialSearchBarView](http://www.cosmicmind.io/MK/MaterialSearchBarView.gif)
[Learn More About SearchBarView](https://github.com/CosmicMind/Material/wiki/SearchBarView)
<a href="#searchbarviewcontroller"></a> <a href="#searchbarviewcontroller"></a>
#### SearchBarViewController #### SearchBarViewController
...@@ -347,10 +343,15 @@ A SearchBarViewController manages UIViewControllers using a SearchBarView compon ...@@ -347,10 +343,15 @@ A SearchBarViewController manages UIViewControllers using a SearchBarView compon
![MaterialSearchBarViewController](http://www.cosmicmind.io/MK/MaterialSearchBarViewController.gif) ![MaterialSearchBarViewController](http://www.cosmicmind.io/MK/MaterialSearchBarViewController.gif)
<a href="#sidenavigationviewcontroller"></a>
#### SideNavigationViewController
A SideNavigationViewController manages UIViewControllers that are available as hidden drawers on the left and right of the view port.
![MaterialSideNavigationViewController](http://www.cosmicmind.io/MK/MaterialSideNavigationViewController.gif)
<a name="captureview"></a> <a name="captureview"></a>
## CaptureView #### CaptureView
Add a new dimension of interactivity with CaptureView. CaptureView is a fully functional camera that is completely customizable. Add a new dimension of interactivity with CaptureView. CaptureView is a fully functional camera that is completely customizable.
......
...@@ -216,7 +216,7 @@ public class MaterialSwitch: UIControl { ...@@ -216,7 +216,7 @@ public class MaterialSwitch: UIControl {
} }
/// MaterialSwitch style. /// MaterialSwitch style.
public var switchStyle: MaterialSwitchStyle = .LightContent { public var switchStyle: MaterialSwitchStyle = .Default {
didSet { didSet {
switch switchStyle { switch switchStyle {
case .LightContent: case .LightContent:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment