Commit 8b3345a8 by Daniel Dahan

updated TabMenuController to PageTabMenuController

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