Commit a60c8773 by Daniel Dahan

added convenience methods for MaterialCards and updated SideNavigationViewController

parent 58f7f5d2
...@@ -8,11 +8,11 @@ ...@@ -8,11 +8,11 @@
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
657CD02A1B8EE0D3008C0029 /* MaterialCardView.swift in Headers */ = {isa = PBXBuildFile; fileRef = 9A94D1081B8A3F5100F586A5 /* MaterialCardView.swift */; settings = {ATTRIBUTES = (Public, ); }; }; 657CD02A1B8EE0D3008C0029 /* MaterialCardView.swift in Headers */ = {isa = PBXBuildFile; fileRef = 9A94D1081B8A3F5100F586A5 /* MaterialCardView.swift */; settings = {ATTRIBUTES = (Public, ); }; };
657CD02C1B8EE0D3008C0029 /* SideNavController.swift in Headers */ = {isa = PBXBuildFile; fileRef = 65B965861B8BEEC60055B139 /* SideNavController.swift */; settings = {ATTRIBUTES = (Public, ); }; }; 657CD02C1B8EE0D3008C0029 /* SideNavigationViewController.swift in Headers */ = {isa = PBXBuildFile; fileRef = 65B965861B8BEEC60055B139 /* SideNavigationViewController.swift */; settings = {ATTRIBUTES = (Public, ); }; };
657CD02D1B8EE0D3008C0029 /* MaterialButton.swift in Headers */ = {isa = PBXBuildFile; fileRef = 65B9657D1B8A7C330055B139 /* MaterialButton.swift */; settings = {ATTRIBUTES = (Public, ); }; }; 657CD02D1B8EE0D3008C0029 /* MaterialButton.swift in Headers */ = {isa = PBXBuildFile; fileRef = 65B9657D1B8A7C330055B139 /* MaterialButton.swift */; settings = {ATTRIBUTES = (Public, ); }; };
657CD02F1B8EE0D3008C0029 /* ImageCardView.swift in Headers */ = {isa = PBXBuildFile; fileRef = 9A94D10A1B8A485C00F586A5 /* ImageCardView.swift */; settings = {ATTRIBUTES = (Public, ); }; }; 657CD02F1B8EE0D3008C0029 /* ImageCardView.swift in Headers */ = {isa = PBXBuildFile; fileRef = 9A94D10A1B8A485C00F586A5 /* ImageCardView.swift */; settings = {ATTRIBUTES = (Public, ); }; };
65B9657E1B8A7C330055B139 /* MaterialButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65B9657D1B8A7C330055B139 /* MaterialButton.swift */; }; 65B9657E1B8A7C330055B139 /* MaterialButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65B9657D1B8A7C330055B139 /* MaterialButton.swift */; };
65B965871B8BEEC60055B139 /* SideNavController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65B965861B8BEEC60055B139 /* SideNavController.swift */; }; 65B965871B8BEEC60055B139 /* SideNavigationViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65B965861B8BEEC60055B139 /* SideNavigationViewController.swift */; };
65DBE4201B9A9244000C804F /* Roboto-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 65DBE41E1B9A9244000C804F /* Roboto-Bold.ttf */; }; 65DBE4201B9A9244000C804F /* Roboto-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 65DBE41E1B9A9244000C804F /* Roboto-Bold.ttf */; };
65DBE4211B9A9244000C804F /* Roboto-Thin.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 65DBE41F1B9A9244000C804F /* Roboto-Thin.ttf */; }; 65DBE4211B9A9244000C804F /* Roboto-Thin.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 65DBE41F1B9A9244000C804F /* Roboto-Thin.ttf */; };
963832421B88DFD80015F710 /* MaterialKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 963832361B88DFD80015F710 /* MaterialKit.framework */; }; 963832421B88DFD80015F710 /* MaterialKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 963832361B88DFD80015F710 /* MaterialKit.framework */; };
...@@ -61,7 +61,7 @@ ...@@ -61,7 +61,7 @@
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
65B9657D1B8A7C330055B139 /* MaterialButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MaterialButton.swift; sourceTree = "<group>"; }; 65B9657D1B8A7C330055B139 /* MaterialButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MaterialButton.swift; sourceTree = "<group>"; };
65B965861B8BEEC60055B139 /* SideNavController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SideNavController.swift; sourceTree = "<group>"; }; 65B965861B8BEEC60055B139 /* SideNavigationViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SideNavigationViewController.swift; sourceTree = "<group>"; };
65DBE41E1B9A9244000C804F /* Roboto-Bold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Roboto-Bold.ttf"; sourceTree = "<group>"; }; 65DBE41E1B9A9244000C804F /* Roboto-Bold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Roboto-Bold.ttf"; sourceTree = "<group>"; };
65DBE41F1B9A9244000C804F /* Roboto-Thin.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Roboto-Thin.ttf"; sourceTree = "<group>"; }; 65DBE41F1B9A9244000C804F /* Roboto-Thin.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Roboto-Thin.ttf"; sourceTree = "<group>"; };
963832361B88DFD80015F710 /* MaterialKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MaterialKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 963832361B88DFD80015F710 /* MaterialKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MaterialKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
...@@ -115,12 +115,12 @@ ...@@ -115,12 +115,12 @@
name = View; name = View;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
65B965851B8BEEB00055B139 /* Nav */ = { 65B965851B8BEEB00055B139 /* Navigation */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
65B965861B8BEEC60055B139 /* SideNavController.swift */, 65B965861B8BEEC60055B139 /* SideNavigationViewController.swift */,
); );
name = Nav; name = Navigation;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
9638322C1B88DFD80015F710 = { 9638322C1B88DFD80015F710 = {
...@@ -150,7 +150,7 @@ ...@@ -150,7 +150,7 @@
9AAC38521B89553800FE6B2D /* Font */, 9AAC38521B89553800FE6B2D /* Font */,
963832861B8907FE0015F710 /* Layout */, 963832861B8907FE0015F710 /* Layout */,
65B965731B8A58E60055B139 /* View */, 65B965731B8A58E60055B139 /* View */,
65B965851B8BEEB00055B139 /* Nav */, 65B965851B8BEEB00055B139 /* Navigation */,
963832761B88E8990015F710 /* Text */, 963832761B88E8990015F710 /* Text */,
963832751B88E87B0015F710 /* Button */, 963832751B88E87B0015F710 /* Button */,
9AAC384B1B89524E00FE6B2D /* Card */, 9AAC384B1B89524E00FE6B2D /* Card */,
...@@ -272,7 +272,7 @@ ...@@ -272,7 +272,7 @@
963832851B89070E0015F710 /* CapturePreview.swift in Headers */, 963832851B89070E0015F710 /* CapturePreview.swift in Headers */,
963832891B89097D0015F710 /* Layout.swift in Headers */, 963832891B89097D0015F710 /* Layout.swift in Headers */,
657CD02A1B8EE0D3008C0029 /* MaterialCardView.swift in Headers */, 657CD02A1B8EE0D3008C0029 /* MaterialCardView.swift in Headers */,
657CD02C1B8EE0D3008C0029 /* SideNavController.swift in Headers */, 657CD02C1B8EE0D3008C0029 /* SideNavigationViewController.swift in Headers */,
657CD02D1B8EE0D3008C0029 /* MaterialButton.swift in Headers */, 657CD02D1B8EE0D3008C0029 /* MaterialButton.swift in Headers */,
96C910ED1B95804B00E7CE5C /* MaterialTheme.swift in Headers */, 96C910ED1B95804B00E7CE5C /* MaterialTheme.swift in Headers */,
657CD02F1B8EE0D3008C0029 /* ImageCardView.swift in Headers */, 657CD02F1B8EE0D3008C0029 /* ImageCardView.swift in Headers */,
...@@ -386,7 +386,7 @@ ...@@ -386,7 +386,7 @@
96B57D4E1B90AF7D00DE7BBB /* MaterialTheme.swift in Sources */, 96B57D4E1B90AF7D00DE7BBB /* MaterialTheme.swift in Sources */,
9638326B1B88E5BF0015F710 /* FabButton.swift in Sources */, 9638326B1B88E5BF0015F710 /* FabButton.swift in Sources */,
9A94D1091B8A3F5100F586A5 /* MaterialCardView.swift in Sources */, 9A94D1091B8A3F5100F586A5 /* MaterialCardView.swift in Sources */,
65B965871B8BEEC60055B139 /* SideNavController.swift in Sources */, 65B965871B8BEEC60055B139 /* SideNavigationViewController.swift in Sources */,
9638326C1B88E5BF0015F710 /* FlatButton.swift in Sources */, 9638326C1B88E5BF0015F710 /* FlatButton.swift in Sources */,
963832711B88E5BF0015F710 /* MaterialText.swift in Sources */, 963832711B88E5BF0015F710 /* MaterialText.swift in Sources */,
9638326A1B88E5BF0015F710 /* CapturePreview.swift in Sources */, 9638326A1B88E5BF0015F710 /* CapturePreview.swift in Sources */,
......
...@@ -179,6 +179,41 @@ public class BasicCardView : MaterialCardView, Comparable, Equatable { ...@@ -179,6 +179,41 @@ public class BasicCardView : MaterialCardView, Comparable, Equatable {
} }
} }
/**
:name: init
*/
public required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
/**
:name: init
*/
public convenience init() {
self.init(frame: CGRectZero)
}
/**
:name: init
*/
public convenience init(titleLabel: UILabel? = nil, detailLabel: UILabel? = nil, divider: UIView? = nil, leftButtons: Array<MaterialButton>? = nil, rightButtons: Array<MaterialButton>? = nil) {
self.init(frame: CGRectZero)
self.titleLabel = titleLabel
self.detailLabel = detailLabel
self.leftButtons = leftButtons
self.rightButtons = rightButtons
}
/**
:name: init
*/
public required init(frame: CGRect) {
super.init(frame: frame)
if CGRectZero == frame {
setTranslatesAutoresizingMaskIntoConstraints(false)
}
}
// //
// :name: prepareView // :name: prepareView
// //
......
...@@ -229,6 +229,42 @@ public class ImageCardView : MaterialCardView, Comparable, Equatable { ...@@ -229,6 +229,42 @@ public class ImageCardView : MaterialCardView, Comparable, Equatable {
} }
} }
/**
:name: init
*/
public required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
/**
:name: init
*/
public convenience init() {
self.init(frame: CGRectZero)
}
/**
:name: init
*/
public convenience init(imageView: UIImageView? = nil, titleLabel: UILabel? = nil, detailLabel: UILabel? = nil, divider: UIView? = nil, leftButtons: Array<MaterialButton>? = nil, rightButtons: Array<MaterialButton>? = nil) {
self.init(frame: CGRectZero)
self.imageView = imageView
self.titleLabel = titleLabel
self.detailLabel = detailLabel
self.leftButtons = leftButtons
self.rightButtons = rightButtons
}
/**
:name: init
*/
public required init(frame: CGRect) {
super.init(frame: frame)
if CGRectZero == frame {
setTranslatesAutoresizingMaskIntoConstraints(false)
}
}
// //
// :name: prepareView // :name: prepareView
// //
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>FMWK</string> <string>FMWK</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>1.8.0</string> <string>1.9.0</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
......
...@@ -19,29 +19,32 @@ ...@@ -19,29 +19,32 @@
import UIKit import UIKit
extension UIViewController { extension UIViewController {
public func sideNavController() -> SideNavController? { /**
:name: sideNavigationViewController
*/
public var sideNavigationViewController: SideNavigationViewController? {
var viewController: UIViewController? = self var viewController: UIViewController? = self
while viewController != nil { while nil != viewController {
if viewController is SideNavController { if viewController is SideNavigationViewController {
return viewController as? SideNavController return viewController as? SideNavigationViewController
} }
viewController = viewController?.parentViewController viewController = viewController?.parentViewController
} }
return nil; return nil
} }
} }
public enum SideNavState { public enum SideNavigationViewState {
case Opened case Opened
case Closed case Closed
} }
@objc(SideNavContainer) @objc(SideNavigationViewContainer)
public class SideNavContainer : Printable { public class SideNavigationViewContainer : Printable {
/** /**
:name: state :name: state
*/ */
public private(set) var state: SideNavState public private(set) var state: SideNavigationViewState
/** /**
:name: point :name: point
...@@ -64,50 +67,50 @@ public class SideNavContainer : Printable { ...@@ -64,50 +67,50 @@ public class SideNavContainer : Printable {
/** /**
:name: init :name: init
*/ */
public init(state: SideNavState, point: CGPoint, frame: CGRect) { public init(state: SideNavigationViewState, point: CGPoint, frame: CGRect) {
self.state = state self.state = state
self.point = point self.point = point
self.frame = frame self.frame = frame
} }
} }
@objc(SideNavDelegate) @objc(SideNavigationViewDelegate)
public protocol SideNavDelegate { public protocol SideNavigationViewDelegate {
// left // left
optional func sideNavDidBeginLeftPan(nav: SideNavController, container: SideNavContainer) optional func sideNavDidBeginLeftPan(nav: SideNavigationViewController, container: SideNavigationViewContainer)
optional func sideNavDidChangeLeftPan(nav: SideNavController, container: SideNavContainer) optional func sideNavDidChangeLeftPan(nav: SideNavigationViewController, container: SideNavigationViewContainer)
optional func sideNavDidEndLeftPan(nav: SideNavController, container: SideNavContainer) optional func sideNavDidEndLeftPan(nav: SideNavigationViewController, container: SideNavigationViewContainer)
optional func sideNavDidOpenLeftViewContainer(nav: SideNavController, container: SideNavContainer) optional func sideNavDidOpenLeftViewContainer(nav: SideNavigationViewController, container: SideNavigationViewContainer)
optional func sideNavDidCloseLeftViewContainer(nav: SideNavController, container: SideNavContainer) optional func sideNavDidCloseLeftViewContainer(nav: SideNavigationViewController, container: SideNavigationViewContainer)
optional func sideNavDidTapLeft(nav: SideNavController, container: SideNavContainer) optional func sideNavDidTapLeft(nav: SideNavigationViewController, container: SideNavigationViewContainer)
// right // right
optional func sideNavDidBeginRightPan(nav: SideNavController, container: SideNavContainer) optional func sideNavDidBeginRightPan(nav: SideNavigationViewController, container: SideNavigationViewContainer)
optional func sideNavDidChangeRightPan(nav: SideNavController, container: SideNavContainer) optional func sideNavDidChangeRightPan(nav: SideNavigationViewController, container: SideNavigationViewContainer)
optional func sideNavDidEndRightPan(nav: SideNavController, container: SideNavContainer) optional func sideNavDidEndRightPan(nav: SideNavigationViewController, container: SideNavigationViewContainer)
optional func sideNavDidOpenRightViewContainer(nav: SideNavController, container: SideNavContainer) optional func sideNavDidOpenRightViewContainer(nav: SideNavigationViewController, container: SideNavigationViewContainer)
optional func sideNavDidCloseRightViewContainer(nav: SideNavController, container: SideNavContainer) optional func sideNavDidCloseRightViewContainer(nav: SideNavigationViewController, container: SideNavigationViewContainer)
optional func sideNavDidTapRight(nav: SideNavController, container: SideNavContainer) optional func sideNavDidTapRight(nav: SideNavigationViewController, container: SideNavigationViewContainer)
// bottom // bottom
optional func sideNavDidBeginBottomPan(nav: SideNavController, container: SideNavContainer) optional func sideNavDidBeginBottomPan(nav: SideNavigationViewController, container: SideNavigationViewContainer)
optional func sideNavDidChangeBottomPan(nav: SideNavController, container: SideNavContainer) optional func sideNavDidChangeBottomPan(nav: SideNavigationViewController, container: SideNavigationViewContainer)
optional func sideNavDidEndBottomPan(nav: SideNavController, container: SideNavContainer) optional func sideNavDidEndBottomPan(nav: SideNavigationViewController, container: SideNavigationViewContainer)
optional func sideNavDidOpenBottomViewContainer(nav: SideNavController, container: SideNavContainer) optional func sideNavDidOpenBottomViewContainer(nav: SideNavigationViewController, container: SideNavigationViewContainer)
optional func sideNavDidCloseBottomViewContainer(nav: SideNavController, container: SideNavContainer) optional func sideNavDidCloseBottomViewContainer(nav: SideNavigationViewController, container: SideNavigationViewContainer)
optional func sideNavDidTapBottom(nav: SideNavController, container: SideNavContainer) optional func sideNavDidTapBottom(nav: SideNavigationViewController, container: SideNavigationViewContainer)
// top // top
optional func sideNavDidBeginTopPan(nav: SideNavController, container: SideNavContainer) optional func sideNavDidBeginTopPan(nav: SideNavigationViewController, container: SideNavigationViewContainer)
optional func sideNavDidChangeTopPan(nav: SideNavController, container: SideNavContainer) optional func sideNavDidChangeTopPan(nav: SideNavigationViewController, container: SideNavigationViewContainer)
optional func sideNavDidEndTopPan(nav: SideNavController, container: SideNavContainer) optional func sideNavDidEndTopPan(nav: SideNavigationViewController, container: SideNavigationViewContainer)
optional func sideNavDidOpenTopViewContainer(nav: SideNavController, container: SideNavContainer) optional func sideNavDidOpenTopViewContainer(nav: SideNavigationViewController, container: SideNavigationViewContainer)
optional func sideNavDidCloseTopViewContainer(nav: SideNavController, container: SideNavContainer) optional func sideNavDidCloseTopViewContainer(nav: SideNavigationViewController, container: SideNavigationViewContainer)
optional func sideNavDidTapTop(nav: SideNavController, container: SideNavContainer) optional func sideNavDidTapTop(nav: SideNavigationViewController, container: SideNavigationViewContainer)
} }
@objc(SideNavController) @objc(SideNavigationViewController)
public class SideNavController: UIViewController, UIGestureRecognizerDelegate { public class SideNavigationViewController: UIViewController, UIGestureRecognizerDelegate {
/** /**
:name: default options :name: default options
*/ */
...@@ -152,7 +155,7 @@ public class SideNavController: UIViewController, UIGestureRecognizerDelegate { ...@@ -152,7 +155,7 @@ public class SideNavController: UIViewController, UIGestureRecognizerDelegate {
/** /**
:name: delegate :name: delegate
*/ */
public weak var delegate: SideNavDelegate? public weak var delegate: SideNavigationViewDelegate?
/** /**
:name: isViewBasedAppearance :name: isViewBasedAppearance
...@@ -246,22 +249,22 @@ public class SideNavController: UIViewController, UIGestureRecognizerDelegate { ...@@ -246,22 +249,22 @@ public class SideNavController: UIViewController, UIGestureRecognizerDelegate {
/** /**
:name: leftContainer :name: leftContainer
*/ */
public private(set) var leftContainer: SideNavContainer? public private(set) var leftContainer: SideNavigationViewContainer?
/** /**
:name: rightContainer :name: rightContainer
*/ */
public private(set) var rightContainer: SideNavContainer? public private(set) var rightContainer: SideNavigationViewContainer?
/** /**
:name: bottomContainer :name: bottomContainer
*/ */
public private(set) var bottomContainer: SideNavContainer? public private(set) var bottomContainer: SideNavigationViewContainer?
/** /**
:name: topContainer :name: topContainer
*/ */
public private(set) var topContainer: SideNavContainer? public private(set) var topContainer: SideNavigationViewContainer?
/** /**
:name: mainViewController :name: mainViewController
...@@ -1290,8 +1293,8 @@ public class SideNavController: UIViewController, UIGestureRecognizerDelegate { ...@@ -1290,8 +1293,8 @@ public class SideNavController: UIViewController, UIGestureRecognizerDelegate {
// //
// :name: prepareContainer // :name: prepareContainer
// //
private func prepareContainer(inout container: SideNavContainer?, inout viewContainer: UIView?, originX: CGFloat, originY: CGFloat, width: CGFloat, height: CGFloat) { private func prepareContainer(inout container: SideNavigationViewContainer?, inout viewContainer: UIView?, originX: CGFloat, originY: CGFloat, width: CGFloat, height: CGFloat) {
container = SideNavContainer(state: .Closed, point: CGPointZero, frame: CGRectZero) container = SideNavigationViewContainer(state: .Closed, point: CGPointZero, frame: CGRectZero)
var b: CGRect = view.bounds var b: CGRect = view.bounds
b.size.width = width b.size.width = width
b.size.height = height b.size.height = height
...@@ -1306,7 +1309,7 @@ public class SideNavController: UIViewController, UIGestureRecognizerDelegate { ...@@ -1306,7 +1309,7 @@ public class SideNavController: UIViewController, UIGestureRecognizerDelegate {
// //
// :name: prepareContainerToOpen // :name: prepareContainerToOpen
// //
private func prepareContainerToOpen(inout viewController: UIViewController?, inout viewContainer: UIView?, state: SideNavState) { private func prepareContainerToOpen(inout viewController: UIViewController?, inout viewContainer: UIView?, state: SideNavigationViewState) {
addShadow(&viewContainer) addShadow(&viewContainer)
toggleStatusBar(hide: true) toggleStatusBar(hide: true)
} }
...@@ -1314,7 +1317,7 @@ public class SideNavController: UIViewController, UIGestureRecognizerDelegate { ...@@ -1314,7 +1317,7 @@ public class SideNavController: UIViewController, UIGestureRecognizerDelegate {
// //
// :name: prepareContainerToClose // :name: prepareContainerToClose
// //
private func prepareContainerToClose(inout viewController: UIViewController?, state: SideNavState) { private func prepareContainerToClose(inout viewController: UIViewController?, state: SideNavigationViewState) {
toggleStatusBar() toggleStatusBar()
} }
......
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