Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2f948475be | |||
| a0a1f3e96a | |||
| 16bb5baa65 | |||
| be9dfb3826 | |||
| 0267c307c8 | |||
| dc16746226 | |||
| 01e18ab505 | |||
| 9fdf0a22aa |
@@ -389,7 +389,6 @@
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 3.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Debug;
|
||||
@@ -407,7 +406,6 @@
|
||||
MODULE_NAME = ExampleApp;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_VERSION = 3.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Release;
|
||||
|
||||
@@ -14,7 +14,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||
var window: UIWindow?
|
||||
|
||||
|
||||
fileprivate func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [AnyHashable: Any]?) -> Bool {
|
||||
private func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
|
||||
// Override point for customization after application launch.
|
||||
return true
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
<slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" minValue="0.0" maxValue="1" translatesAutoresizingMaskIntoConstraints="NO" id="pqT-4M-nw1">
|
||||
<color key="thumbTintColor" red="0.25098040700000002" green="0.0" blue="0.50196081400000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<connections>
|
||||
<action selector="changeSlider:" destination="QHN-nZ-kbB" eventType="valueChanged" id="Kcj-yD-lS0"/>
|
||||
<action selector="changeSliderWithSlider:" destination="QHN-nZ-kbB" eventType="valueChanged" id="yrX-3n-Jty"/>
|
||||
</connections>
|
||||
</slider>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Menu Present Mode" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Efp-5L-qft">
|
||||
@@ -61,7 +61,7 @@
|
||||
<slider opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" minValue="0.0" maxValue="1" translatesAutoresizingMaskIntoConstraints="NO" id="Osf-2d-Znm">
|
||||
<color key="thumbTintColor" red="0.25098040700000002" green="0.0" blue="0.50196081400000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<connections>
|
||||
<action selector="changeSlider:" destination="QHN-nZ-kbB" eventType="valueChanged" id="cRR-z8-cmm"/>
|
||||
<action selector="changeSliderWithSlider:" destination="QHN-nZ-kbB" eventType="valueChanged" id="Xn4-bj-6K9"/>
|
||||
</connections>
|
||||
</slider>
|
||||
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" translatesAutoresizingMaskIntoConstraints="NO" id="owH-AA-wgw">
|
||||
@@ -72,13 +72,13 @@
|
||||
<segment title="ExtraLight"/>
|
||||
</segments>
|
||||
<connections>
|
||||
<action selector="changeSegment:" destination="QHN-nZ-kbB" eventType="valueChanged" id="Mna-Yh-fHu"/>
|
||||
<action selector="changeSegmentWithSegmentControl:" destination="QHN-nZ-kbB" eventType="valueChanged" id="PfY-zK-O6f"/>
|
||||
</connections>
|
||||
</segmentedControl>
|
||||
<slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="0.001" minValue="0.001" maxValue="2" translatesAutoresizingMaskIntoConstraints="NO" id="Xp9-C5-Td1">
|
||||
<color key="thumbTintColor" red="0.25098040700000002" green="0.0" blue="0.50196081400000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<connections>
|
||||
<action selector="changeSlider:" destination="QHN-nZ-kbB" eventType="valueChanged" id="PMM-8h-apN"/>
|
||||
<action selector="changeSliderWithSlider:" destination="QHN-nZ-kbB" eventType="valueChanged" id="tce-Qj-Iwy"/>
|
||||
</connections>
|
||||
</slider>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Menu Shadow Opacity" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2QC-6F-Xpx">
|
||||
@@ -89,7 +89,7 @@
|
||||
<slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" minValue="0.0" maxValue="1" translatesAutoresizingMaskIntoConstraints="NO" id="Cor-r1-osR">
|
||||
<color key="thumbTintColor" red="0.25098040700000002" green="0.0" blue="0.50196081400000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<connections>
|
||||
<action selector="changeSlider:" destination="QHN-nZ-kbB" eventType="valueChanged" id="TSE-rt-Run"/>
|
||||
<action selector="changeSliderWithSlider:" destination="QHN-nZ-kbB" eventType="valueChanged" id="7bf-AN-txB"/>
|
||||
</connections>
|
||||
</slider>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Menu Transform Scale Factor" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Tsg-30-YHs">
|
||||
@@ -115,7 +115,7 @@
|
||||
<switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="oFS-2Q-kPB">
|
||||
<color key="onTintColor" red="0.25098040700000002" green="0.0" blue="0.50196081400000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<connections>
|
||||
<action selector="changeSwitch:" destination="QHN-nZ-kbB" eventType="valueChanged" id="2wD-Py-Q4n"/>
|
||||
<action selector="changeSwitchWithSwitchControl:" destination="QHN-nZ-kbB" eventType="valueChanged" id="8un-gW-vka"/>
|
||||
</connections>
|
||||
</switch>
|
||||
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" translatesAutoresizingMaskIntoConstraints="NO" id="KV2-tN-Aff">
|
||||
@@ -126,7 +126,7 @@
|
||||
<segment title="Dissolve"/>
|
||||
</segments>
|
||||
<connections>
|
||||
<action selector="changeSegment:" destination="QHN-nZ-kbB" eventType="valueChanged" id="B2a-9p-5O1"/>
|
||||
<action selector="changeSegmentWithSegmentControl:" destination="QHN-nZ-kbB" eventType="valueChanged" id="wUX-I2-oLd"/>
|
||||
</connections>
|
||||
</segmentedControl>
|
||||
</subviews>
|
||||
@@ -268,11 +268,11 @@
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="7tx-O6-zAs" id="K0u-J2-Ab7">
|
||||
<frame key="frameInset" width="320" height="43"/>
|
||||
<frame key="frameInset" width="320" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Push View Controller 1" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="4WI-Ed-3Gr">
|
||||
<frame key="frameInset" minX="15" width="290" height="43"/>
|
||||
<frame key="frameInset" minX="15" width="290" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
@@ -289,11 +289,11 @@
|
||||
<rect key="frame" x="0.0" y="44" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="f9Q-QP-TZ6" id="i3p-Ya-AvO">
|
||||
<frame key="frameInset" width="320" height="43"/>
|
||||
<frame key="frameInset" width="320" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Push View Controller 2" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="DpJ-hV-lmw">
|
||||
<frame key="frameInset" minX="15" width="290" height="43"/>
|
||||
<frame key="frameInset" minX="15" width="290" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
@@ -310,11 +310,11 @@
|
||||
<rect key="frame" x="0.0" y="88" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="dc6-l8-0cu" id="gyo-JQ-fx5">
|
||||
<frame key="frameInset" width="320" height="43"/>
|
||||
<frame key="frameInset" width="320" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Push View Controller 3" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="mAf-mx-C48">
|
||||
<frame key="frameInset" minX="15" width="290" height="43"/>
|
||||
<frame key="frameInset" minX="15" width="290" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
@@ -399,11 +399,11 @@
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="8Ng-b4-4hH" id="U5K-l9-XWv">
|
||||
<frame key="frameInset" width="320" height="43"/>
|
||||
<frame key="frameInset" width="320" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Present View Controller 1" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="NLA-8t-ufi">
|
||||
<frame key="frameInset" minX="15" width="290" height="43"/>
|
||||
<frame key="frameInset" minX="15" width="290" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
@@ -420,11 +420,11 @@
|
||||
<rect key="frame" x="0.0" y="44" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Eok-gX-LwQ" id="IOJ-bC-bNt">
|
||||
<frame key="frameInset" width="320" height="43"/>
|
||||
<frame key="frameInset" width="320" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Present View Controller 2" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="IdU-2D-zHb">
|
||||
<frame key="frameInset" minX="15" width="290" height="43"/>
|
||||
<frame key="frameInset" minX="15" width="290" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
@@ -441,11 +441,11 @@
|
||||
<rect key="frame" x="0.0" y="88" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="41i-KK-YM3" id="629-G3-Agl">
|
||||
<frame key="frameInset" width="320" height="43"/>
|
||||
<frame key="frameInset" width="320" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" text="Present View Controller 3" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="6x7-O7-DkG">
|
||||
<frame key="frameInset" minX="15" width="290" height="43"/>
|
||||
<frame key="frameInset" minX="15" width="290" height="43.5"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
<color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
|
||||
@@ -9,13 +9,13 @@ import SideMenu
|
||||
|
||||
class MainViewController: UIViewController {
|
||||
|
||||
@IBOutlet fileprivate weak var presentModeSegmentedControl:UISegmentedControl!
|
||||
@IBOutlet fileprivate weak var blurSegmentControl:UISegmentedControl!
|
||||
@IBOutlet fileprivate weak var darknessSlider:UISlider!
|
||||
@IBOutlet fileprivate weak var shadowOpacitySlider:UISlider!
|
||||
@IBOutlet fileprivate weak var screenWidthSlider:UISlider!
|
||||
@IBOutlet fileprivate weak var shrinkFactorSlider:UISlider!
|
||||
@IBOutlet fileprivate weak var blackOutStatusBar:UISwitch!
|
||||
@IBOutlet private weak var presentModeSegmentedControl:UISegmentedControl!
|
||||
@IBOutlet private weak var blurSegmentControl:UISegmentedControl!
|
||||
@IBOutlet private weak var darknessSlider:UISlider!
|
||||
@IBOutlet private weak var shadowOpacitySlider:UISlider!
|
||||
@IBOutlet private weak var screenWidthSlider:UISlider!
|
||||
@IBOutlet private weak var shrinkFactorSlider:UISlider!
|
||||
@IBOutlet private weak var blackOutStatusBar:UISwitch!
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
@@ -24,7 +24,7 @@ class MainViewController: UIViewController {
|
||||
setDefaults()
|
||||
}
|
||||
|
||||
fileprivate func setupSideMenu() {
|
||||
private func setupSideMenu() {
|
||||
// Define the menus
|
||||
SideMenuManager.menuLeftNavigationController = storyboard!.instantiateViewController(withIdentifier: "LeftMenuNavigationController") as? UISideMenuNavigationController
|
||||
SideMenuManager.menuRightNavigationController = storyboard!.instantiateViewController(withIdentifier: "RightMenuNavigationController") as? UISideMenuNavigationController
|
||||
@@ -38,7 +38,7 @@ class MainViewController: UIViewController {
|
||||
SideMenuManager.menuAnimationBackgroundColor = UIColor(patternImage: UIImage(named: "background")!)
|
||||
}
|
||||
|
||||
fileprivate func setDefaults() {
|
||||
private func setDefaults() {
|
||||
let modes:[SideMenuManager.MenuPresentMode] = [.menuSlideIn, .viewSlideOut, .menuDissolveIn]
|
||||
presentModeSegmentedControl.selectedSegmentIndex = modes.index(of: SideMenuManager.menuPresentMode)!
|
||||
|
||||
@@ -56,7 +56,7 @@ class MainViewController: UIViewController {
|
||||
blackOutStatusBar.isOn = SideMenuManager.menuFadeStatusBar
|
||||
}
|
||||
|
||||
@IBAction fileprivate func changeSegment(_ segmentControl: UISegmentedControl) {
|
||||
@IBAction private func changeSegment(segmentControl: UISegmentedControl) {
|
||||
switch segmentControl {
|
||||
case presentModeSegmentedControl:
|
||||
let modes:[SideMenuManager.MenuPresentMode] = [.menuSlideIn, .viewSlideOut, .viewSlideInOut, .menuDissolveIn]
|
||||
@@ -72,7 +72,7 @@ class MainViewController: UIViewController {
|
||||
}
|
||||
}
|
||||
|
||||
@IBAction fileprivate func changeSlider(_ slider: UISlider) {
|
||||
@IBAction private func changeSlider(slider: UISlider) {
|
||||
switch slider {
|
||||
case darknessSlider:
|
||||
SideMenuManager.menuAnimationFadeStrength = CGFloat(slider.value)
|
||||
@@ -86,7 +86,7 @@ class MainViewController: UIViewController {
|
||||
}
|
||||
}
|
||||
|
||||
@IBAction fileprivate func changeSwitch(_ switchControl: UISwitch) {
|
||||
@IBAction private func changeSwitch(switchControl: UISwitch) {
|
||||
SideMenuManager.menuFadeStatusBar = switchControl.isOn
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ import UIKit
|
||||
|
||||
class PresentedViewController: UIViewController {
|
||||
|
||||
@IBAction fileprivate func close() {
|
||||
@IBAction private func close() {
|
||||
self.dismiss(animated: true, completion: nil)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Copyright (c) 2015 Jonathan Kent <contact@jonkent.me>
|
||||
Copyright (c) 2015 jonkykong <jpkent@gmail.com>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
@@ -93,9 +93,6 @@ open class SideMenuManager : NSObject {
|
||||
/// Draws the `menuAnimationBackgroundColor` behind the status bar. Default is true.
|
||||
open static var menuFadeStatusBar = true
|
||||
|
||||
/// When true, pushViewController called within the menu it will push the new view controller inside of the menu. Otherwise, it is pushed on the menu's presentingViewController. Default is false.
|
||||
open static var menuAllowSubmenus: Bool = false
|
||||
|
||||
/// -Warning: Deprecated. Use `menuAnimationTransformScaleFactor` instead.
|
||||
@available(*, deprecated, renamed: "menuAnimationTransformScaleFactor")
|
||||
open static var menuAnimationShrinkStrength: CGFloat {
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
import UIKit
|
||||
|
||||
open class SideMenuTransition: UIPercentDrivenInteractiveTransition, UIViewControllerAnimatedTransitioning, UIViewControllerTransitioningDelegate {
|
||||
internal class SideMenuTransition: UIPercentDrivenInteractiveTransition, UIViewControllerAnimatedTransitioning, UIViewControllerTransitioningDelegate {
|
||||
|
||||
fileprivate var presenting = false
|
||||
fileprivate var interactive = false
|
||||
@@ -47,17 +47,17 @@ open class SideMenuTransition: UIPercentDrivenInteractiveTransition, UIViewContr
|
||||
return viewController
|
||||
}
|
||||
|
||||
internal class func handlePresentMenuLeftScreenEdge(_ edge: UIScreenEdgePanGestureRecognizer) {
|
||||
class func handlePresentMenuLeftScreenEdge(_ edge: UIScreenEdgePanGestureRecognizer) {
|
||||
SideMenuTransition.presentDirection = .left
|
||||
handlePresentMenuPan(edge)
|
||||
}
|
||||
|
||||
internal class func handlePresentMenuRightScreenEdge(_ edge: UIScreenEdgePanGestureRecognizer) {
|
||||
class func handlePresentMenuRightScreenEdge(_ edge: UIScreenEdgePanGestureRecognizer) {
|
||||
SideMenuTransition.presentDirection = .right
|
||||
handlePresentMenuPan(edge)
|
||||
}
|
||||
|
||||
internal class func handlePresentMenuPan(_ pan: UIPanGestureRecognizer) {
|
||||
class func handlePresentMenuPan(_ pan: UIPanGestureRecognizer) {
|
||||
if !SideMenuManager.menuEnableSwipeGestures {
|
||||
return
|
||||
}
|
||||
@@ -124,7 +124,7 @@ open class SideMenuTransition: UIPercentDrivenInteractiveTransition, UIViewContr
|
||||
}
|
||||
}
|
||||
|
||||
internal class func handleHideMenuPan(_ pan: UIPanGestureRecognizer) {
|
||||
class func handleHideMenuPan(_ pan: UIPanGestureRecognizer) {
|
||||
if !SideMenuManager.menuEnableSwipeGestures {
|
||||
return
|
||||
}
|
||||
@@ -155,7 +155,7 @@ open class SideMenuTransition: UIPercentDrivenInteractiveTransition, UIViewContr
|
||||
}
|
||||
}
|
||||
|
||||
internal class func handleHideMenuTap(_ tap: UITapGestureRecognizer) {
|
||||
class func handleHideMenuTap(_ tap: UITapGestureRecognizer) {
|
||||
viewControllerForPresentedMenu?.dismiss(animated: true, completion: nil)
|
||||
}
|
||||
|
||||
@@ -296,7 +296,7 @@ open class SideMenuTransition: UIPercentDrivenInteractiveTransition, UIViewContr
|
||||
// MARK: UIViewControllerAnimatedTransitioning protocol methods
|
||||
|
||||
// animate a change from one viewcontroller to another
|
||||
open func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
|
||||
internal func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
|
||||
|
||||
// get reference to our fromView, toView and the container view that we should perform the transition in
|
||||
let container = transitionContext.containerView
|
||||
@@ -419,7 +419,7 @@ open class SideMenuTransition: UIPercentDrivenInteractiveTransition, UIViewContr
|
||||
}
|
||||
|
||||
// return how many seconds the transiton animation will take
|
||||
open func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
|
||||
internal func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
|
||||
return presenting ? SideMenuManager.menuAnimationPresentDuration : SideMenuManager.menuAnimationDismissDuration
|
||||
}
|
||||
|
||||
@@ -427,25 +427,25 @@ open class SideMenuTransition: UIPercentDrivenInteractiveTransition, UIViewContr
|
||||
|
||||
// return the animator when presenting a viewcontroller
|
||||
// rememeber that an animator (or animation controller) is any object that aheres to the UIViewControllerAnimatedTransitioning protocol
|
||||
open func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
|
||||
internal func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
|
||||
self.presenting = true
|
||||
SideMenuTransition.presentDirection = presented == SideMenuManager.menuLeftNavigationController ? .left : .right
|
||||
return self
|
||||
}
|
||||
|
||||
// return the animator used when dismissing from a viewcontroller
|
||||
open func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
|
||||
internal func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
|
||||
presenting = false
|
||||
return self
|
||||
}
|
||||
|
||||
open func interactionControllerForPresentation(using animator: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? {
|
||||
internal func interactionControllerForPresentation(using animator: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? {
|
||||
// if our interactive flag is true, return the transition manager object
|
||||
// otherwise return nil
|
||||
return interactive ? SideMenuTransition.singleton : nil
|
||||
}
|
||||
|
||||
open func interactionControllerForDismissal(using animator: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? {
|
||||
internal func interactionControllerForDismissal(using animator: UIViewControllerAnimatedTransitioning) -> UIViewControllerInteractiveTransitioning? {
|
||||
return interactive ? SideMenuTransition.singleton : nil
|
||||
}
|
||||
|
||||
|
||||
@@ -119,7 +119,7 @@ open class UISideMenuNavigationController: UINavigationController {
|
||||
}
|
||||
|
||||
override open func pushViewController(_ viewController: UIViewController, animated: Bool) {
|
||||
guard viewControllers.count > 0 && !SideMenuManager.menuAllowSubmenus else {
|
||||
guard viewControllers.count > 0 else {
|
||||
// NOTE: pushViewController is called by init(rootViewController: UIViewController)
|
||||
// so we must perform the normal super method in this case.
|
||||
super.pushViewController(viewController, animated: true)
|
||||
@@ -127,7 +127,8 @@ open class UISideMenuNavigationController: UINavigationController {
|
||||
}
|
||||
|
||||
guard let presentingViewController = presentingViewController as? UINavigationController else {
|
||||
print("SideMenu Warning: attempt to push a ViewController from a ViewController without a NavigationController. Your ViewController must be embedded in a NavigationController for this to work.")
|
||||
present(viewController, animated: animated, completion: nil)
|
||||
print("SideMenu Warning: cannot push a ViewController from a ViewController without a NavigationController. It will be presented it instead.")
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
# ▤ SideMenu
|
||||
# SideMenu
|
||||
[](http://cocoapods.org/pods/SideMenu)
|
||||
[](http://cocoapods.org/pods/SideMenu)
|
||||
[](http://cocoapods.org/pods/SideMenu)
|
||||
|
||||
### If you like SideMenu, give it a ★ at the top right of its [GitHub](https://github.com/jonkykong/SideMenu) page.
|
||||
**If you like SideMenu, give it a ★ at the top right of its [GitHub](https://github.com/jonkykong/SideMenu) page.**
|
||||
|
||||
## Overview
|
||||
|
||||
@@ -15,7 +15,7 @@ SideMenu is a simple and versatile side menu control written in Swift.
|
||||
* Global menu configuration. Set-up once and be done for all screens.
|
||||
* Menus can be presented and dismissed the same as any other View Controller since this control uses custom transitions.
|
||||
|
||||
Check out the example project to see it in action!
|
||||
Check out the example project or this [interactive demo](https://appetize.io/app/64a9v3e6b8c6f53zvn5pnny80m) to see it in action!
|
||||
|
||||

|
||||

|
||||
@@ -26,6 +26,7 @@ Check out the example project to see it in action!
|
||||
* iOS 8 or higher
|
||||
|
||||
## Installation
|
||||
|
||||
### CocoaPods
|
||||
|
||||
[CocoaPods](http://cocoapods.org) is a dependency manager for Cocoa projects. You can install it with the following command:
|
||||
@@ -157,23 +158,17 @@ open static var menuParallaxStrength: Int = 0
|
||||
|
||||
/// Draws the `menuAnimationBackgroundColor` behind the status bar. Default is true.
|
||||
open static var menuFadeStatusBar = true
|
||||
|
||||
/// When true, pushViewController called within the menu it will push the new view controller inside of the menu. Otherwise, it is pushed on the menu's presentingViewController. Default is false.
|
||||
open static var menuAllowSubmenus: Bool = false
|
||||
```
|
||||
|
||||
## Known Issues
|
||||
Don't try to change the status bar appearance when presenting a menu. When used with quick gestures/animations, it causes the presentation animation to not complete properly and locks the UI. See [radar 21961293](http://www.openradar.me/21961293) for more information.
|
||||
|
||||
## Thank You
|
||||
A special thank you to everyone that has [contributed](https://github.com/jonkykong/SideMenu/graphs/contributors) to this library to make it better. Your support is appreciated!
|
||||
|
||||
## About Me
|
||||
My name is Jon Kent and I'm a freelance iOS designer, developer, and mobile strategist. I love coffee and play the drums. **Hire me!**
|
||||
|
||||
🌎 Web: [http://jonkent.me](http://jonkent.me)
|
||||
|
||||
✉️ Email: [contact@jonkent.me](mailto:contact@jonkent.me) **IMPORTANT: Before emailing me, please read [this](https://github.com/jonkykong/SideMenu/issues/58).**
|
||||
✉️ Email: [contact@jonkent.me](mailto:contact@jonkent.me) **_IMPORTANT: If you're having a problem implementing SideMenu, please open an [issue](https://github.com/jonkykong/SideMenu/issues) instead of emailing me. Thanks!_**
|
||||
|
||||
## License
|
||||
|
||||
|
||||
+8
-8
@@ -8,7 +8,7 @@
|
||||
|
||||
Pod::Spec.new do |s|
|
||||
s.name = "SideMenu"
|
||||
s.version = "2.0.4"
|
||||
s.version = "2.0.0"
|
||||
s.summary = "Simple side menu control for iOS in Swift inspired by Facebook. Right and Left sides. No coding required."
|
||||
|
||||
# This description is used to generate tags and improve search results.
|
||||
@@ -16,24 +16,24 @@ Pod::Spec.new do |s|
|
||||
# * Try to keep it short, snappy and to the point.
|
||||
# * Write the description between the DESC delimiters below.
|
||||
# * Finally, don't worry about the indent, CocoaPods strips it!
|
||||
|
||||
s.description = <<-DESC
|
||||
SideMenu is a simple and versatile side menu control. It's highly customizable, but can also be implemented in storyboard without a single line of code. The are three standard animation styles to choose from along with several other options for further customization if desired. Just type SideMenuManager.menu... and code completion will show you everything you can customize.
|
||||
DESC
|
||||
|
||||
s.homepage = "https://github.com/jonkykong/SideMenu"
|
||||
s.screenshots = [ "https://raw.githubusercontent.com/jonkykong/SideMenu/master/etc/SlideOut.gif", "https://raw.githubusercontent.com/jonkykong/SideMenu/master/etc/SlideIn.gif", "https://raw.githubusercontent.com/jonkykong/SideMenu/master/etc/Dissolve.gif", "https://raw.githubusercontent.com/jonkykong/SideMenu/master/etc/InOut.gif" ]
|
||||
s.license = { :type => 'MIT', :file => 'LICENSE' }
|
||||
s.author = { "jonkykong" => "contact@jonkent.me" }
|
||||
s.license = 'MIT'
|
||||
s.author = { "jonkykong" => "jonk@jonked.com" }
|
||||
s.source = { :git => "https://github.com/jonkykong/SideMenu.git", :tag => s.version.to_s }
|
||||
# s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>'
|
||||
|
||||
s.ios.deployment_target = '8.0'
|
||||
s.platform = :ios, '8.0'
|
||||
s.requires_arc = true
|
||||
|
||||
s.source_files = 'Pod/Classes/**/*'
|
||||
# s.resource_bundles = {
|
||||
# 'SideMenu' => ['Pod/Assets/*.png']
|
||||
# }
|
||||
# s.resource_bundles = {
|
||||
# 'SideMenu' => ['Pod/Assets/*.png']
|
||||
# }
|
||||
|
||||
# s.public_header_files = 'Pod/Classes/**/*.h'
|
||||
# s.frameworks = 'UIKit', 'MapKit'
|
||||
|
||||
Reference in New Issue
Block a user