Commit 8b3345a8 by Daniel Dahan

updated TabMenuController to PageTabMenuController

parent 0c996578
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
9606CFAC1E957AC3006B4E74 /* TabMenuController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9606CFAB1E957AC3006B4E74 /* TabMenuController.swift */; }; 9606CFAC1E957AC3006B4E74 /* PageTabMenuController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9606CFAB1E957AC3006B4E74 /* PageTabMenuController.swift */; };
961409B01E43D15C00E7BA99 /* CollectionViewCard.swift in Headers */ = {isa = PBXBuildFile; fileRef = 961730591E145DE900A9A297 /* CollectionViewCard.swift */; settings = {ATTRIBUTES = (Public, ); }; }; 961409B01E43D15C00E7BA99 /* CollectionViewCard.swift in Headers */ = {isa = PBXBuildFile; fileRef = 961730591E145DE900A9A297 /* CollectionViewCard.swift */; settings = {ATTRIBUTES = (Public, ); }; };
961409B11E43D15C00E7BA99 /* FABMenu.swift in Headers */ = {isa = PBXBuildFile; fileRef = 96A183621E0C6CE200083C30 /* FABMenu.swift */; settings = {ATTRIBUTES = (Public, ); }; }; 961409B11E43D15C00E7BA99 /* FABMenu.swift in Headers */ = {isa = PBXBuildFile; fileRef = 96A183621E0C6CE200083C30 /* FABMenu.swift */; settings = {ATTRIBUTES = (Public, ); }; };
961409B21E43D15C00E7BA99 /* FABMenuController.swift in Headers */ = {isa = PBXBuildFile; fileRef = 96A183641E0C6DD400083C30 /* FABMenuController.swift */; settings = {ATTRIBUTES = (Public, ); }; }; 961409B21E43D15C00E7BA99 /* FABMenuController.swift in Headers */ = {isa = PBXBuildFile; fileRef = 96A183641E0C6DD400083C30 /* FABMenuController.swift */; settings = {ATTRIBUTES = (Public, ); }; };
...@@ -190,7 +190,7 @@ ...@@ -190,7 +190,7 @@
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
9606CFAB1E957AC3006B4E74 /* TabMenuController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabMenuController.swift; sourceTree = "<group>"; }; 9606CFAB1E957AC3006B4E74 /* PageTabMenuController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PageTabMenuController.swift; sourceTree = "<group>"; };
961276621DCD8B1800A7D920 /* CharacterAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CharacterAttribute.swift; sourceTree = "<group>"; }; 961276621DCD8B1800A7D920 /* CharacterAttribute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CharacterAttribute.swift; sourceTree = "<group>"; };
961730591E145DE900A9A297 /* CollectionViewCard.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CollectionViewCard.swift; sourceTree = "<group>"; }; 961730591E145DE900A9A297 /* CollectionViewCard.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CollectionViewCard.swift; sourceTree = "<group>"; };
961E6BDE1DDA2A95004E6C93 /* Application.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Application.swift; sourceTree = "<group>"; }; 961E6BDE1DDA2A95004E6C93 /* Application.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Application.swift; sourceTree = "<group>"; };
...@@ -364,13 +364,13 @@ ...@@ -364,13 +364,13 @@
name = Height; name = Height;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
962DDD071D6FBBB7001C307C /* TabMenu */ = { 962DDD071D6FBBB7001C307C /* PageTabMenu */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
963FBF071D669D14008F8512 /* PageTabBarController.swift */, 963FBF071D669D14008F8512 /* PageTabBarController.swift */,
9606CFAB1E957AC3006B4E74 /* TabMenuController.swift */, 9606CFAB1E957AC3006B4E74 /* PageTabMenuController.swift */,
); );
name = TabMenu; name = PageTabMenu;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
962DDD081D6FBBD0001C307C /* BottomTabBar */ = { 962DDD081D6FBBD0001C307C /* BottomTabBar */ = {
...@@ -530,7 +530,7 @@ ...@@ -530,7 +530,7 @@
96BCB8091CB4107700C806FE /* Motion */, 96BCB8091CB4107700C806FE /* Motion */,
96BCB8011CB40F1700C806FE /* Navigation */, 96BCB8011CB40F1700C806FE /* Navigation */,
961E6BEF1DDA4B04004E6C93 /* NavigationDrawer */, 961E6BEF1DDA4B04004E6C93 /* NavigationDrawer */,
962DDD071D6FBBB7001C307C /* TabMenu */, 962DDD071D6FBBB7001C307C /* PageTabMenu */,
96717B151DBE6B1800DA84DB /* Photos */, 96717B151DBE6B1800DA84DB /* Photos */,
96328B8F1E05B69A009A4C90 /* Reminders */, 96328B8F1E05B69A009A4C90 /* Reminders */,
9626CA951DAB5370003E2611 /* Root */, 9626CA951DAB5370003E2611 /* Root */,
...@@ -995,7 +995,7 @@ ...@@ -995,7 +995,7 @@
965E80D81DD4C50600D61E4B /* Layer.swift in Sources */, 965E80D81DD4C50600D61E4B /* Layer.swift in Sources */,
965E80D91DD4C50600D61E4B /* Layout.swift in Sources */, 965E80D91DD4C50600D61E4B /* Layout.swift in Sources */,
965E80DA1DD4C50600D61E4B /* Border.swift in Sources */, 965E80DA1DD4C50600D61E4B /* Border.swift in Sources */,
9606CFAC1E957AC3006B4E74 /* TabMenuController.swift in Sources */, 9606CFAC1E957AC3006B4E74 /* PageTabMenuController.swift in Sources */,
965E80DB1DD4C50600D61E4B /* InterimSpace.swift in Sources */, 965E80DB1DD4C50600D61E4B /* InterimSpace.swift in Sources */,
965E80DC1DD4C50600D61E4B /* Depth.swift in Sources */, 965E80DC1DD4C50600D61E4B /* Depth.swift in Sources */,
965E80DD1DD4C50600D61E4B /* EdgeInsets.swift in Sources */, 965E80DD1DD4C50600D61E4B /* EdgeInsets.swift in Sources */,
......
...@@ -30,48 +30,48 @@ ...@@ -30,48 +30,48 @@
import UIKit import UIKit
/// A memory reference to the TabMenuBarItem instance for UIViewController extensions. /// A memory reference to the PageTabMenuBarItem instance for UIViewController extensions.
fileprivate var TabMenuBarItemKey: UInt8 = 0 fileprivate var PageTabMenuBarItemKey: UInt8 = 0
open class TabMenuBarItem: FlatButton { open class PageTabMenuBarItem: FlatButton {
open override func prepare() { open override func prepare() {
super.prepare() super.prepare()
pulseAnimation = .none pulseAnimation = .none
} }
} }
@objc(TabMenuAlignment) @objc(PageTabMenuAlignment)
public enum TabMenuAlignment: Int { public enum PageTabMenuAlignment: Int {
case top case top
case bottom case bottom
case hidden case hidden
} }
extension UIViewController { extension UIViewController {
/// tabMenuBarItem reference. /// pageTabMenuBarItem reference.
public private(set) var tabMenuBarItem: TabMenuBarItem { public private(set) var pageTabMenuBarItem: PageTabMenuBarItem {
get { get {
return AssociatedObject(base: self, key: &TabMenuBarItemKey) { return AssociatedObject(base: self, key: &PageTabMenuBarItemKey) {
return TabMenuBarItem() return PageTabMenuBarItem()
} }
} }
set(value) { set(value) {
AssociateObject(base: self, key: &TabMenuBarItemKey, value: value) AssociateObject(base: self, key: &PageTabMenuBarItemKey, value: value)
} }
} }
} }
extension UIViewController { extension UIViewController {
/** /**
A convenience property that provides access to the TabMenuController. A convenience property that provides access to the PageTabMenuController.
This is the recommended method of accessing the TabMenuController This is the recommended method of accessing the PageTabMenuController
through child UIViewControllers. through child UIViewControllers.
*/ */
public var tabMenuBarController: TabMenuController? { public var pageTabMenuBarController: PageTabMenuController? {
var viewController: UIViewController? = self var viewController: UIViewController? = self
while nil != viewController { while nil != viewController {
if viewController is TabMenuController { if viewController is PageTabMenuController {
return viewController as? TabMenuController return viewController as? PageTabMenuController
} }
viewController = viewController?.parent viewController = viewController?.parent
} }
...@@ -79,7 +79,7 @@ extension UIViewController { ...@@ -79,7 +79,7 @@ extension UIViewController {
} }
} }
open class TabMenuController: UIViewController { open class PageTabMenuController: UIViewController {
/// A reference to the currently selected view controller index value. /// A reference to the currently selected view controller index value.
@IBInspectable @IBInspectable
open var selectedIndex = 0 open var selectedIndex = 0
...@@ -117,7 +117,7 @@ open class TabMenuController: UIViewController { ...@@ -117,7 +117,7 @@ open class TabMenuController: UIViewController {
} }
} }
open var tabMenuAlignment = TabMenuAlignment.bottom { open var pageTabMenuAlignment = PageTabMenuAlignment.bottom {
didSet { didSet {
layoutSubviews() layoutSubviews()
} }
...@@ -170,7 +170,7 @@ open class TabMenuController: UIViewController { ...@@ -170,7 +170,7 @@ open class TabMenuController: UIViewController {
tabBar?.height = p tabBar?.height = p
tabBar?.width = view.width + (tabBar?.layoutEdgeInsets.left ?? 0) + (tabBar?.layoutEdgeInsets.right ?? 0) tabBar?.width = view.width + (tabBar?.layoutEdgeInsets.left ?? 0) + (tabBar?.layoutEdgeInsets.right ?? 0)
switch tabMenuAlignment { switch pageTabMenuAlignment {
case .top: case .top:
tabBar?.isHidden = false tabBar?.isHidden = false
tabBar?.y = 0 tabBar?.y = 0
...@@ -201,7 +201,7 @@ open class TabMenuController: UIViewController { ...@@ -201,7 +201,7 @@ open class TabMenuController: UIViewController {
} }
} }
extension TabMenuController { extension PageTabMenuController {
/// Prepares the scrollView used to pan through view controllers. /// Prepares the scrollView used to pan through view controllers.
fileprivate func prepareScrollView() { fileprivate func prepareScrollView() {
scrollView.delegate = self scrollView.delegate = self
...@@ -269,7 +269,7 @@ extension TabMenuController { ...@@ -269,7 +269,7 @@ extension TabMenuController {
var buttons = [UIButton]() var buttons = [UIButton]()
for v in viewControllers { for v in viewControllers {
let button = v.tabMenuBarItem as UIButton let button = v.pageTabMenuBarItem as UIButton
buttons.append(button) buttons.append(button)
} }
...@@ -310,7 +310,7 @@ extension TabMenuController { ...@@ -310,7 +310,7 @@ extension TabMenuController {
} }
} }
extension TabMenuController { extension PageTabMenuController {
fileprivate func layoutScrollView() { fileprivate func layoutScrollView() {
scrollView.frame = view.bounds scrollView.frame = view.bounds
scrollView.contentSize = CGSize(width: scrollView.width * CGFloat(viewControllers.count), height: scrollView.height) scrollView.contentSize = CGSize(width: scrollView.width * CGFloat(viewControllers.count), height: scrollView.height)
...@@ -358,7 +358,7 @@ extension TabMenuController { ...@@ -358,7 +358,7 @@ extension TabMenuController {
} }
} }
extension TabMenuController { extension PageTabMenuController {
/// Removes the view controllers not within the scrollView. /// Removes the view controllers not within the scrollView.
fileprivate func removeViewControllers() { fileprivate func removeViewControllers() {
let n = viewControllers.count let n = viewControllers.count
...@@ -416,7 +416,7 @@ extension TabMenuController { ...@@ -416,7 +416,7 @@ extension TabMenuController {
} }
} }
extension TabMenuController { extension PageTabMenuController {
/** /**
Handles the pageTabBarButton. Handles the pageTabBarButton.
- Parameter button: A UIButton. - Parameter button: A UIButton.
...@@ -443,7 +443,7 @@ extension TabMenuController { ...@@ -443,7 +443,7 @@ extension TabMenuController {
} }
} }
extension TabMenuController: UIScrollViewDelegate { extension PageTabMenuController: UIScrollViewDelegate {
@objc @objc
open func scrollViewDidScroll(_ scrollView: UIScrollView) { open func scrollViewDidScroll(_ scrollView: UIScrollView) {
guard let tb = tabBar else { guard let tb = tabBar else {
......
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