Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 17b8fcd413 | |||
| 64f9d0bfbd | |||
| 8dde1951c3 | |||
| 7d15070513 | |||
| b76a39208e | |||
| 2c496c3c56 | |||
| 37071b5d06 | |||
| 607260ac2e | |||
| 9f3759c90c | |||
| c346f2e0db | |||
| 6c72727408 | |||
| b649404a7e | |||
| 3272a0f63e | |||
| 70fa815037 | |||
| 794767455a | |||
| 7359ee6801 | |||
| 0b62749bff | |||
| 7179713c18 |
+63
-63
@@ -1,11 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="yAA-s6-Bam">
|
||||
<device id="retina4_7" orientation="portrait">
|
||||
<adaptation id="fullscreen"/>
|
||||
</device>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14868" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="yAA-s6-Bam">
|
||||
<device id="retina4_7" orientation="portrait" appearance="light"/>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14490.49"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14824"/>
|
||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
@@ -15,7 +13,7 @@
|
||||
<objects>
|
||||
<navigationController id="yAA-s6-Bam" sceneMemberID="viewController">
|
||||
<navigationBar key="navigationBar" contentMode="scaleToFill" barStyle="black" id="Bue-4e-bCJ">
|
||||
<rect key="frame" x="0.0" y="20" width="375" height="44"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<gestureRecognizers/>
|
||||
<color key="tintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
@@ -38,10 +36,10 @@
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<scrollView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LFJ-SB-Zp9">
|
||||
<rect key="frame" x="0.0" y="64" width="375" height="571"/>
|
||||
<rect key="frame" x="0.0" y="44" width="375" height="591"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="iBe-qv-i0y">
|
||||
<rect key="frame" x="20" y="20" width="335" height="675"/>
|
||||
<rect key="frame" x="20" y="20" width="335" height="681"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Menu Presentation Style" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Efp-5L-qft">
|
||||
<rect key="frame" x="0.0" y="0.0" width="335" height="20.5"/>
|
||||
@@ -50,7 +48,7 @@
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="1" translatesAutoresizingMaskIntoConstraints="NO" id="KV2-tN-Aff">
|
||||
<rect key="frame" x="0.0" y="28.5" width="335" height="29"/>
|
||||
<rect key="frame" x="0.0" y="28.5" width="335" height="32"/>
|
||||
<segments>
|
||||
<segment title="Slide In"/>
|
||||
<segment title="Slide Out"/>
|
||||
@@ -62,19 +60,19 @@
|
||||
</connections>
|
||||
</segmentedControl>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="wsl-iY-a5K">
|
||||
<rect key="frame" x="0.0" y="64.5" width="335" height="4"/>
|
||||
<rect key="frame" x="0.0" y="67.5" width="335" height="4"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="4" id="oRw-Gi-ezT"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Menu Blur Style" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="OHe-SA-S0e">
|
||||
<rect key="frame" x="0.0" y="76.5" width="335" height="20.5"/>
|
||||
<rect key="frame" x="0.0" y="79.5" width="335" height="20.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" translatesAutoresizingMaskIntoConstraints="NO" id="owH-AA-wgw">
|
||||
<rect key="frame" x="0.0" y="105" width="335" height="29"/>
|
||||
<rect key="frame" x="0.0" y="108" width="335" height="32"/>
|
||||
<segments>
|
||||
<segment title="None"/>
|
||||
<segment title="Dark"/>
|
||||
@@ -86,121 +84,121 @@
|
||||
</connections>
|
||||
</segmentedControl>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="svy-p5-tiL">
|
||||
<rect key="frame" x="0.0" y="141" width="335" height="4"/>
|
||||
<rect key="frame" x="0.0" y="147" width="335" height="4"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="4" id="wra-S3-qWU"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Menu Start Alpha" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tRs-iN-9Ht">
|
||||
<rect key="frame" x="0.0" y="153" width="335" height="20.5"/>
|
||||
<rect key="frame" x="0.0" y="159" width="335" height="20.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" minValue="0.0" maxValue="1" translatesAutoresizingMaskIntoConstraints="NO" id="pqT-4M-nw1">
|
||||
<rect key="frame" x="-2" y="181.5" width="339" height="31"/>
|
||||
<rect key="frame" x="-2" y="187.5" width="339" height="31"/>
|
||||
<color key="thumbTintColor" red="0.25098040700000002" green="0.0" blue="0.50196081400000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<connections>
|
||||
<action selector="changeControl:" destination="QHN-nZ-kbB" eventType="valueChanged" id="Rfw-ZT-ziI"/>
|
||||
</connections>
|
||||
</slider>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="r3M-VQ-eCj">
|
||||
<rect key="frame" x="0.0" y="219.5" width="335" height="4"/>
|
||||
<rect key="frame" x="0.0" y="225.5" width="335" height="4"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="4" id="RvV-Fo-ext"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Presenting End Alpha" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NmN-uG-ABp">
|
||||
<rect key="frame" x="0.0" y="231.5" width="335" height="20.5"/>
|
||||
<rect key="frame" x="0.0" y="237.5" width="335" height="20.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" minValue="0.0" maxValue="1" translatesAutoresizingMaskIntoConstraints="NO" id="xlA-NK-mN4">
|
||||
<rect key="frame" x="-2" y="260" width="339" height="31"/>
|
||||
<rect key="frame" x="-2" y="266" width="339" height="31"/>
|
||||
<color key="thumbTintColor" red="0.25098040700000002" green="0.0" blue="0.50196081400000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<connections>
|
||||
<action selector="changeControl:" destination="QHN-nZ-kbB" eventType="valueChanged" id="ah6-OO-Zh9"/>
|
||||
</connections>
|
||||
</slider>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bjn-LU-15M">
|
||||
<rect key="frame" x="0.0" y="298" width="335" height="4"/>
|
||||
<rect key="frame" x="0.0" y="304" width="335" height="4"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="4" id="jLL-oP-eBj"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<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">
|
||||
<rect key="frame" x="0.0" y="310" width="335" height="20.5"/>
|
||||
<rect key="frame" x="0.0" y="316" width="335" height="20.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<slider opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" minValue="0.0" maxValue="1" translatesAutoresizingMaskIntoConstraints="NO" id="Osf-2d-Znm">
|
||||
<rect key="frame" x="-2" y="338.5" width="339" height="31"/>
|
||||
<rect key="frame" x="-2" y="344.5" width="339" height="31"/>
|
||||
<color key="thumbTintColor" red="0.25098040700000002" green="0.0" blue="0.50196081400000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<connections>
|
||||
<action selector="changeControl:" destination="QHN-nZ-kbB" eventType="valueChanged" id="Vw7-lT-kal"/>
|
||||
</connections>
|
||||
</slider>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="cKX-Y9-C8e">
|
||||
<rect key="frame" x="0.0" y="376.5" width="335" height="4"/>
|
||||
<rect key="frame" x="0.0" y="382.5" width="335" height="4"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="4" id="6m5-zX-BY6"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Menu Screen Width" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Snj-Mg-6ww">
|
||||
<rect key="frame" x="0.0" y="388.5" width="335" height="20.5"/>
|
||||
<rect key="frame" x="0.0" y="394.5" width="335" height="20.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" minValue="0.0" maxValue="1" translatesAutoresizingMaskIntoConstraints="NO" id="Cor-r1-osR">
|
||||
<rect key="frame" x="-2" y="417" width="339" height="31"/>
|
||||
<rect key="frame" x="-2" y="423" width="339" height="31"/>
|
||||
<color key="thumbTintColor" red="0.25098040700000002" green="0.0" blue="0.50196081400000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<connections>
|
||||
<action selector="changeControl:" destination="QHN-nZ-kbB" eventType="valueChanged" id="QfP-ZL-gGs"/>
|
||||
</connections>
|
||||
</slider>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="03z-3b-0TF">
|
||||
<rect key="frame" x="0.0" y="455" width="335" height="4"/>
|
||||
<rect key="frame" x="0.0" y="461" width="335" height="4"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="4" id="Kf2-9J-fIV"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Menu Scale Factor" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Tsg-30-YHs">
|
||||
<rect key="frame" x="0.0" y="467" width="335" height="20.5"/>
|
||||
<rect key="frame" x="0.0" y="473" width="335" height="20.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="0.001" minValue="0.001" maxValue="2" translatesAutoresizingMaskIntoConstraints="NO" id="Xp9-C5-Td1">
|
||||
<rect key="frame" x="-2" y="495.5" width="339" height="31"/>
|
||||
<rect key="frame" x="-2" y="501.5" width="339" height="31"/>
|
||||
<color key="thumbTintColor" red="0.25098040700000002" green="0.0" blue="0.50196081400000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<connections>
|
||||
<action selector="changeControl:" destination="QHN-nZ-kbB" eventType="valueChanged" id="lNd-9Z-lpP"/>
|
||||
</connections>
|
||||
</slider>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="FrH-kR-j43">
|
||||
<rect key="frame" x="0.0" y="533.5" width="335" height="4"/>
|
||||
<rect key="frame" x="0.0" y="539.5" width="335" height="4"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="4" id="9kG-hd-eZS"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Presenting Scale Factor" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="j7p-7c-wlI">
|
||||
<rect key="frame" x="0.0" y="545.5" width="335" height="20.5"/>
|
||||
<rect key="frame" x="0.0" y="551.5" width="335" height="20.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="0.001" minValue="0.001" maxValue="2" translatesAutoresizingMaskIntoConstraints="NO" id="Oso-tQ-0MO">
|
||||
<rect key="frame" x="-2" y="574" width="339" height="31"/>
|
||||
<rect key="frame" x="-2" y="580" width="339" height="31"/>
|
||||
<color key="thumbTintColor" red="0.25098040700000002" green="0.0" blue="0.50196081400000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<connections>
|
||||
<action selector="changeControl:" destination="QHN-nZ-kbB" eventType="valueChanged" id="TuI-Au-hWY"/>
|
||||
</connections>
|
||||
</slider>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="DMn-tw-NTB">
|
||||
<rect key="frame" x="0.0" y="612" width="335" height="63"/>
|
||||
<rect key="frame" x="0.0" y="618" width="335" height="63"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Menu Fade Status Bar" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Gtc-KE-FIO">
|
||||
<rect key="frame" x="0.0" y="17.5" width="168.5" height="20.5"/>
|
||||
@@ -236,7 +234,7 @@
|
||||
</constraints>
|
||||
</scrollView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="← Swipe Screen Edges in View →" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ma4-O6-wOT">
|
||||
<rect key="frame" x="87.5" y="643" width="200.5" height="16"/>
|
||||
<rect key="frame" x="87" y="643" width="201.5" height="16"/>
|
||||
<fontDescription key="fontDescription" style="UICTFontTextStyleFootnote"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
@@ -294,6 +292,7 @@
|
||||
<navigationController storyboardIdentifier="LeftMenuNavigationController" navigationBarHidden="YES" id="DuX-EW-0mP" customClass="SideMenuNavigationController" customModule="SideMenu" sceneMemberID="viewController">
|
||||
<navigationItem key="navigationItem" id="ipz-Lx-Wgf"/>
|
||||
<navigationBar key="navigationBar" contentMode="scaleToFill" id="35F-wh-r6h">
|
||||
<rect key="frame" x="0.0" y="-20" width="0.0" height="0.0"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</navigationBar>
|
||||
<userDefinedRuntimeAttributes>
|
||||
@@ -312,13 +311,13 @@
|
||||
<objects>
|
||||
<tableViewController id="V6g-oO-Tbm" customClass="SideMenuTableViewController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" dataMode="static" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" id="Dqh-bs-m2M">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="647"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<color key="tintColor" red="0.0" green="0.47843137250000001" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<inset key="separatorInset" minX="15" minY="0.0" maxX="8" maxY="0.0"/>
|
||||
<view key="tableFooterView" contentMode="scaleToFill" id="vVB-ag-TnU">
|
||||
<rect key="frame" x="0.0" y="132" width="375" height="0.0"/>
|
||||
<rect key="frame" x="0.0" y="188" width="375" height="0.0"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</view>
|
||||
@@ -326,14 +325,14 @@
|
||||
<tableViewSection id="gP8-eA-dcW">
|
||||
<cells>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="4WI-Ed-3Gr" style="IBUITableViewCellStyleDefault" id="7tx-O6-zAs" customClass="UITableViewVibrantCell" customModule="SideMenu">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
|
||||
<rect key="frame" x="0.0" y="28" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="7tx-O6-zAs" id="K0u-J2-Ab7">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
|
||||
<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">
|
||||
<rect key="frame" x="15" y="0.0" width="344" height="43.5"/>
|
||||
<rect key="frame" x="16" y="0.0" width="343" height="44"/>
|
||||
<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"/>
|
||||
@@ -347,14 +346,14 @@
|
||||
</connections>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="DpJ-hV-lmw" style="IBUITableViewCellStyleDefault" id="f9Q-QP-TZ6" customClass="UITableViewVibrantCell" customModule="SideMenu">
|
||||
<rect key="frame" x="0.0" y="44" width="375" height="44"/>
|
||||
<rect key="frame" x="0.0" y="72" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="f9Q-QP-TZ6" id="i3p-Ya-AvO">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
|
||||
<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">
|
||||
<rect key="frame" x="15" y="0.0" width="344" height="43.5"/>
|
||||
<rect key="frame" x="16" y="0.0" width="343" height="44"/>
|
||||
<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"/>
|
||||
@@ -368,14 +367,14 @@
|
||||
</connections>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="mAf-mx-C48" style="IBUITableViewCellStyleDefault" id="dc6-l8-0cu" customClass="UITableViewVibrantCell" customModule="SideMenu">
|
||||
<rect key="frame" x="0.0" y="88" width="375" height="44"/>
|
||||
<rect key="frame" x="0.0" y="116" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="dc6-l8-0cu" id="gyo-JQ-fx5">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
|
||||
<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">
|
||||
<rect key="frame" x="15" y="0.0" width="344" height="43.5"/>
|
||||
<rect key="frame" x="16" y="0.0" width="343" height="44"/>
|
||||
<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"/>
|
||||
@@ -407,7 +406,7 @@
|
||||
<objects>
|
||||
<viewController id="BYZ-38-t0r" customClass="PresentedViewController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="647"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" red="0.80000001190000003" green="1" blue="0.40000000600000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<viewLayoutGuide key="safeArea" id="tWG-DO-ZIZ"/>
|
||||
@@ -425,6 +424,7 @@
|
||||
<objects>
|
||||
<navigationController storyboardIdentifier="RightMenuNavigationController" navigationBarHidden="YES" id="z7k-fk-pfc" customClass="SideMenuNavigationController" customModule="SideMenu" sceneMemberID="viewController">
|
||||
<navigationBar key="navigationBar" contentMode="scaleToFill" id="qOd-yQ-2i8">
|
||||
<rect key="frame" x="0.0" y="-20" width="0.0" height="0.0"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</navigationBar>
|
||||
<connections>
|
||||
@@ -440,12 +440,12 @@
|
||||
<objects>
|
||||
<tableViewController id="Ol4-YR-KUL" customClass="SideMenuTableViewController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" scrollEnabled="NO" dataMode="static" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="28" sectionFooterHeight="28" id="49z-eA-JB7">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="647"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<inset key="separatorInset" minX="0.0" minY="0.0" maxX="15" maxY="0.0"/>
|
||||
<view key="tableFooterView" contentMode="scaleToFill" id="UXT-t2-k90">
|
||||
<rect key="frame" x="0.0" y="132" width="375" height="0.0"/>
|
||||
<rect key="frame" x="0.0" y="188" width="375" height="0.0"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</view>
|
||||
@@ -453,14 +453,14 @@
|
||||
<tableViewSection id="xTE-WH-UeX">
|
||||
<cells>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="NLA-8t-ufi" style="IBUITableViewCellStyleDefault" id="8Ng-b4-4hH" customClass="UITableViewVibrantCell" customModule="SideMenu">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
|
||||
<rect key="frame" x="0.0" y="28" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="8Ng-b4-4hH" id="U5K-l9-XWv">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
|
||||
<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">
|
||||
<rect key="frame" x="15" y="0.0" width="344" height="43.5"/>
|
||||
<rect key="frame" x="16" y="0.0" width="343" height="44"/>
|
||||
<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"/>
|
||||
@@ -474,14 +474,14 @@
|
||||
</connections>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="IdU-2D-zHb" style="IBUITableViewCellStyleDefault" id="Eok-gX-LwQ" customClass="UITableViewVibrantCell" customModule="SideMenu">
|
||||
<rect key="frame" x="0.0" y="44" width="375" height="44"/>
|
||||
<rect key="frame" x="0.0" y="72" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Eok-gX-LwQ" id="IOJ-bC-bNt">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
|
||||
<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">
|
||||
<rect key="frame" x="15" y="0.0" width="344" height="43.5"/>
|
||||
<rect key="frame" x="16" y="0.0" width="343" height="44"/>
|
||||
<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"/>
|
||||
@@ -495,14 +495,14 @@
|
||||
</connections>
|
||||
</tableViewCell>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" textLabel="6x7-O7-DkG" style="IBUITableViewCellStyleDefault" id="41i-KK-YM3" customClass="UITableViewVibrantCell" customModule="SideMenu">
|
||||
<rect key="frame" x="0.0" y="88" width="375" height="44"/>
|
||||
<rect key="frame" x="0.0" y="116" width="375" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="41i-KK-YM3" id="629-G3-Agl">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="43.5"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="44"/>
|
||||
<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">
|
||||
<rect key="frame" x="15" y="0.0" width="344" height="43.5"/>
|
||||
<rect key="frame" x="16" y="0.0" width="343" height="44"/>
|
||||
<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"/>
|
||||
@@ -534,11 +534,11 @@
|
||||
<objects>
|
||||
<viewController id="uMV-sw-TbB" customClass="PresentedViewController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="087-P6-J9s">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="647"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="TJh-vs-sd4">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="647"/>
|
||||
<state key="normal" title="Dismiss">
|
||||
<color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
@@ -573,11 +573,11 @@
|
||||
<objects>
|
||||
<viewController id="Upx-FH-Mbv" customClass="PresentedViewController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="efR-Hd-Gxy">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="647"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="cKk-fD-whk">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="647"/>
|
||||
<state key="normal" title="Dismiss">
|
||||
<color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
@@ -612,11 +612,11 @@
|
||||
<objects>
|
||||
<viewController id="EG7-2X-5hP" customClass="PresentedViewController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="vac-ts-bf9">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="647"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="a17-pq-WAQ">
|
||||
<rect key="frame" x="0.0" y="20" width="375" height="647"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="647"/>
|
||||
<state key="normal" title="Dismiss">
|
||||
<color key="titleColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</state>
|
||||
@@ -651,7 +651,7 @@
|
||||
<objects>
|
||||
<viewController id="u7M-mb-V6o" customClass="PresentedViewController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="9Dr-7n-COJ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="647"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" red="1" green="0.80000001190000003" blue="0.40000000600000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<viewLayoutGuide key="safeArea" id="hUi-v8-7VE"/>
|
||||
@@ -669,7 +669,7 @@
|
||||
<objects>
|
||||
<viewController id="b5t-IX-0yu" customClass="PresentedViewController" customModule="Example" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="Ias-bH-Sau">
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="667"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="375" height="647"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" red="1" green="0.40000000600000002" blue="0.40000000600000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<viewLayoutGuide key="safeArea" id="bHF-BB-8F0"/>
|
||||
|
||||
+3
-2
@@ -1,4 +1,4 @@
|
||||
// swift-tools-version:4.0
|
||||
// swift-tools-version:5.0
|
||||
// The swift-tools-version declares the minimum version of Swift required to build this package.
|
||||
|
||||
import PackageDescription
|
||||
@@ -11,6 +11,7 @@ let package = Package(
|
||||
dependencies: [],
|
||||
targets: [
|
||||
.target(name: "SideMenu", path: "Pod/Classes")
|
||||
]
|
||||
],
|
||||
swiftLanguageVersions: [.v4_2, .v5]
|
||||
)
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ extension NSObject: InitializableClass {}
|
||||
internal extension UIView {
|
||||
|
||||
@discardableResult func untransformed(_ block: () -> CGFloat) -> CGFloat {
|
||||
let t = self.transform
|
||||
let t = transform
|
||||
transform = .identity
|
||||
let value = block()
|
||||
transform = t
|
||||
@@ -40,19 +40,33 @@ internal extension UIView {
|
||||
|
||||
internal extension UIViewController {
|
||||
|
||||
// View controller actively displayed in that layer. It may not be visible if it's presenting another view controller.
|
||||
var activeViewController: UIViewController {
|
||||
switch self {
|
||||
case let navigationController as UINavigationController:
|
||||
return navigationController.visibleViewController?.activeViewController ?? self
|
||||
return navigationController.topViewController?.activeViewController ?? self
|
||||
case let tabBarController as UITabBarController:
|
||||
return tabBarController.selectedViewController?.activeViewController ?? self
|
||||
case let splitViewController as UISplitViewController:
|
||||
return splitViewController.viewControllers.last?.activeViewController ?? self
|
||||
default:
|
||||
return presentedViewController?.activeViewController ?? self
|
||||
return self
|
||||
}
|
||||
}
|
||||
|
||||
// View controller being displayed on screen to the user.
|
||||
var topMostViewController: UIViewController {
|
||||
let activeViewController = self.activeViewController
|
||||
return activeViewController.presentedViewController?.topMostViewController ?? activeViewController
|
||||
}
|
||||
|
||||
var containerViewController: UIViewController {
|
||||
return navigationController?.containerViewController ??
|
||||
tabBarController?.containerViewController ??
|
||||
splitViewController?.containerViewController ??
|
||||
self
|
||||
}
|
||||
|
||||
@objc var isHidden: Bool {
|
||||
return presentingViewController == nil
|
||||
}
|
||||
@@ -94,3 +108,10 @@ internal extension UIPanGestureRecognizer {
|
||||
} ?? 0
|
||||
}
|
||||
}
|
||||
|
||||
internal extension UIApplication {
|
||||
|
||||
var keyWindow: UIWindow? {
|
||||
return UIApplication.shared.windows.filter { $0.isKeyWindow }.first
|
||||
}
|
||||
}
|
||||
|
||||
@@ -176,7 +176,7 @@ private extension SideMenuManager {
|
||||
}
|
||||
|
||||
guard let menu = menu(forLeftSide: leftSide) else { return }
|
||||
menu.presentFrom(activeViewController, interactively: true)
|
||||
menu.present(topMostViewController, interactively: true)
|
||||
}
|
||||
|
||||
activeMenu?.handleMenuPan(gesture, true)
|
||||
@@ -216,8 +216,8 @@ private extension SideMenuManager {
|
||||
return SideMenuPanGestureRecognizer(addTo: view, target: self, action: #selector(handlePresentMenuPan(_:)))
|
||||
}
|
||||
|
||||
var activeViewController: UIViewController? {
|
||||
return UIApplication.shared.keyWindow?.rootViewController?.activeViewController
|
||||
var topMostViewController: UIViewController? {
|
||||
return UIApplication.shared.keyWindow?.rootViewController?.topMostViewController
|
||||
}
|
||||
}
|
||||
|
||||
@@ -226,6 +226,6 @@ extension SideMenuManager: SideMenuNavigationControllerTransitionDelegate {
|
||||
internal func sideMenuTransitionDidDismiss(menu: Menu) {
|
||||
defer { switching = false }
|
||||
guard switching, let switchToMenu = self.menu(forLeftSide: !menu.leftSide) else { return }
|
||||
switchToMenu.presentFrom(activeViewController, interactively: true)
|
||||
switchToMenu.present(topMostViewController, interactively: true)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,8 +165,9 @@ open class SideMenuNavigationController: UINavigationController {
|
||||
}
|
||||
|
||||
public init(rootViewController: UIViewController, settings: SideMenuSettings = SideMenuSettings()) {
|
||||
super.init(rootViewController: rootViewController)
|
||||
self.settings = settings
|
||||
super.init(rootViewController: rootViewController)
|
||||
|
||||
setup()
|
||||
}
|
||||
|
||||
@@ -243,7 +244,7 @@ open class SideMenuNavigationController: UINavigationController {
|
||||
// the view hierarchy leaving the screen black/empty. This is because the transition moves views within a container
|
||||
// view, but dismissing without animation removes the container view before the original hierarchy is restored.
|
||||
// This check corrects that.
|
||||
if let foundViewController = self.visibleViewController(from: presentingViewController), foundViewController.view.window == nil {
|
||||
if let foundViewController = findViewController, foundViewController.view.window == nil {
|
||||
transitionController?.transition(presenting: false, animated: false)
|
||||
}
|
||||
|
||||
@@ -506,9 +507,9 @@ internal extension SideMenuNavigationController {
|
||||
}
|
||||
|
||||
// Note: although this method is syntactically reversed it allows the interactive property to scoped privately
|
||||
func presentFrom(_ viewControllerToPresentFrom: UIViewController?, interactively interactive: Bool, completion: (() -> Void)? = nil) {
|
||||
func present(_ viewControllerToPresentFrom: UIViewController?, interactively: Bool, completion: (() -> Void)? = nil) {
|
||||
guard let viewControllerToPresentFrom = viewControllerToPresentFrom, transitioningDelegate != nil else { return }
|
||||
transitionController?.interactive = interactive
|
||||
transitionController?.interactive = interactively
|
||||
viewControllerToPresentFrom.present(self, animated: true, completion: completion)
|
||||
}
|
||||
}
|
||||
@@ -517,28 +518,13 @@ private extension SideMenuNavigationController {
|
||||
|
||||
weak var activeDelegate: SideMenuNavigationControllerDelegate? {
|
||||
guard !view.isHidden else { return nil }
|
||||
if let sideMenuDelegate = sideMenuDelegate {
|
||||
return sideMenuDelegate
|
||||
}
|
||||
return visibleViewController(from: presentingViewController) as? SideMenuNavigationControllerDelegate
|
||||
if let sideMenuDelegate = sideMenuDelegate { return sideMenuDelegate }
|
||||
return findViewController as? SideMenuNavigationControllerDelegate
|
||||
}
|
||||
|
||||
func visibleViewController(from: UIViewController?) -> UIViewController? {
|
||||
if let foundDelegate = foundViewController {
|
||||
return foundDelegate
|
||||
}
|
||||
if let navigationController = from as? UINavigationController {
|
||||
return visibleViewController(from: navigationController.topViewController)
|
||||
}
|
||||
if let tabBarController = from as? UITabBarController {
|
||||
return visibleViewController(from: tabBarController.selectedViewController)
|
||||
}
|
||||
if let splitViewController = from as? UISplitViewController {
|
||||
return visibleViewController(from: splitViewController.viewControllers.last)
|
||||
}
|
||||
|
||||
foundViewController = from
|
||||
return from
|
||||
var findViewController: UIViewController? {
|
||||
foundViewController = foundViewController ?? presentingViewController?.activeViewController
|
||||
return foundViewController
|
||||
}
|
||||
|
||||
func dismissAnimation(animated: Bool) {
|
||||
@@ -557,7 +543,9 @@ private extension SideMenuNavigationController {
|
||||
modalPresentationStyle = .overFullScreen
|
||||
|
||||
setupBlur()
|
||||
registerForNotifications()
|
||||
if #available(iOS 13.0, *) {} else {
|
||||
registerForNotifications()
|
||||
}
|
||||
}
|
||||
|
||||
func setupBlur() {
|
||||
@@ -603,6 +591,7 @@ private extension SideMenuNavigationController {
|
||||
}
|
||||
}
|
||||
|
||||
@available(iOS, deprecated: 13.0)
|
||||
func registerForNotifications() {
|
||||
NotificationCenter.default.removeObserver(self)
|
||||
|
||||
@@ -612,6 +601,7 @@ private extension SideMenuNavigationController {
|
||||
}
|
||||
}
|
||||
|
||||
@available(iOS, deprecated: 13.0)
|
||||
@objc func handleNotification(notification: NSNotification) {
|
||||
guard isHidden else { return }
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@ internal final class SideMenuPresentationController {
|
||||
private let config: PresentationModel
|
||||
private unowned var containerView: UIView
|
||||
private var interactivePopGestureRecognizerEnabled: Bool?
|
||||
private var clipsToBounds: Bool?
|
||||
private let leftSide: Bool
|
||||
private weak var originalSuperview: UIView?
|
||||
private unowned var presentedViewController: UIViewController
|
||||
@@ -90,7 +91,12 @@ internal final class SideMenuPresentationController {
|
||||
|
||||
guard let statusBarView = statusBarView else { return }
|
||||
let statusBarOffset = containerView.frame.size.height - presentedViewController.view.bounds.height
|
||||
var statusBarFrame = UIApplication.shared.statusBarFrame
|
||||
var statusBarFrame: CGRect
|
||||
if #available(iOS 13.0, *) {
|
||||
statusBarFrame = containerView.window?.windowScene?.statusBarManager?.statusBarFrame ?? .zero
|
||||
} else {
|
||||
statusBarFrame = UIApplication.shared.statusBarFrame
|
||||
}
|
||||
|
||||
// For in-call status bar, height is normally 40, which overlaps view. Instead, calculate height difference
|
||||
// of view and set height to fill in remaining space.
|
||||
@@ -185,9 +191,7 @@ internal final class SideMenuPresentationController {
|
||||
statusBarView?.removeFromSuperview()
|
||||
presentedViewController.view.removeFromSuperview()
|
||||
|
||||
presentingViewController.view.motionEffects.removeAll()
|
||||
presentingViewController.view.layer.shadowOpacity = 0
|
||||
presentedViewController.view.layer.shadowOpacity = 0
|
||||
removeStyles(from: presentingViewController.containerViewController.view)
|
||||
|
||||
if let interactivePopGestureRecognizerEnabled = interactivePopGestureRecognizerEnabled,
|
||||
let topNavigationController = presentingViewController as? UINavigationController {
|
||||
@@ -235,6 +239,8 @@ private extension SideMenuPresentationController {
|
||||
view.layer.shadowRadius = config.presentationStyle.onTopShadowRadius
|
||||
view.layer.shadowOpacity = config.presentationStyle.onTopShadowOpacity
|
||||
view.layer.shadowOffset = config.presentationStyle.onTopShadowOffset
|
||||
clipsToBounds = clipsToBounds ?? view.clipsToBounds
|
||||
view.clipsToBounds = false
|
||||
}
|
||||
|
||||
func addParallax(to view: UIView) {
|
||||
@@ -263,4 +269,12 @@ private extension SideMenuPresentationController {
|
||||
view.addMotionEffect(group)
|
||||
}
|
||||
}
|
||||
|
||||
func removeStyles(from view: UIView) {
|
||||
view.motionEffects.removeAll()
|
||||
view.layer.shadowOpacity = 0
|
||||
view.layer.shadowOpacity = 0
|
||||
view.clipsToBounds = clipsToBounds ?? true
|
||||
clipsToBounds = false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,46 +10,46 @@ import UIKit
|
||||
@objcMembers
|
||||
open class SideMenuPresentationStyle: InitializableClass {
|
||||
/// Background color behind the views and status bar color
|
||||
public var backgroundColor: UIColor = .black
|
||||
open var backgroundColor: UIColor = .black
|
||||
/// The starting alpha value of the menu before it appears
|
||||
public var menuStartAlpha: CGFloat = 1
|
||||
open var menuStartAlpha: CGFloat = 1
|
||||
/// Whether or not the menu is on top. If false, the presenting view is on top. Shadows are applied to the view on top.
|
||||
public var menuOnTop: Bool = false
|
||||
open var menuOnTop: Bool = false
|
||||
/// The amount the menu is translated along the x-axis. Zero is stationary, negative values are off-screen, positive values are on screen.
|
||||
public var menuTranslateFactor: CGFloat = 0
|
||||
open var menuTranslateFactor: CGFloat = 0
|
||||
/// The amount the menu is scaled. Less than one shrinks the view, larger than one grows the view.
|
||||
public var menuScaleFactor: CGFloat = 1
|
||||
open var menuScaleFactor: CGFloat = 1
|
||||
/// The color of the shadow applied to the top most view.
|
||||
public var onTopShadowColor: UIColor = .black
|
||||
open var onTopShadowColor: UIColor = .black
|
||||
/// The radius of the shadow applied to the top most view.
|
||||
public var onTopShadowRadius: CGFloat = 5
|
||||
open var onTopShadowRadius: CGFloat = 5
|
||||
/// The opacity of the shadow applied to the top most view.
|
||||
public var onTopShadowOpacity: Float = 0
|
||||
open var onTopShadowOpacity: Float = 0
|
||||
/// The offset of the shadow applied to the top most view.
|
||||
public var onTopShadowOffset: CGSize = .zero
|
||||
open var onTopShadowOffset: CGSize = .zero
|
||||
/// The ending alpha of the presenting view when the menu is fully displayed.
|
||||
public var presentingEndAlpha: CGFloat = 1
|
||||
open var presentingEndAlpha: CGFloat = 1
|
||||
/// The amount the presenting view is translated along the x-axis. Zero is stationary, negative values are off-screen, positive values are on screen.
|
||||
public var presentingTranslateFactor: CGFloat = 0
|
||||
open var presentingTranslateFactor: CGFloat = 0
|
||||
/// The amount the presenting view is scaled. Less than one shrinks the view, larger than one grows the view.
|
||||
public var presentingScaleFactor: CGFloat = 1
|
||||
open var presentingScaleFactor: CGFloat = 1
|
||||
/// The strength of the parallax effect on the presenting view once the menu is displayed.
|
||||
public var presentingParallaxStrength: CGSize = .zero
|
||||
open var presentingParallaxStrength: CGSize = .zero
|
||||
|
||||
required public init() {}
|
||||
|
||||
/// This method is called just before the presentation transition begins. Use this to setup any animations. The super method does not need to be called.
|
||||
func presentationTransitionWillBegin(to presentedViewController: UIViewController, from presentingViewController: UIViewController) {}
|
||||
open func presentationTransitionWillBegin(to presentedViewController: UIViewController, from presentingViewController: UIViewController) {}
|
||||
/// This method is called during the presentation animation. Use this to animate anything alongside the menu animation. The super method does not need to be called.
|
||||
func presentationTransition(to presentedViewController: UIViewController, from presentingViewController: UIViewController) {}
|
||||
open func presentationTransition(to presentedViewController: UIViewController, from presentingViewController: UIViewController) {}
|
||||
/// This method is called when the presentation transition ends. Use this to finish any animations. The super method does not need to be called.
|
||||
func presentationTransitionDidEnd(to presentedViewController: UIViewController, from presentingViewController: UIViewController, _ completed: Bool) {}
|
||||
open func presentationTransitionDidEnd(to presentedViewController: UIViewController, from presentingViewController: UIViewController, _ completed: Bool) {}
|
||||
/// This method is called just before the dismissal transition begins. Use this to setup any animations. The super method does not need to be called.
|
||||
func dismissalTransitionWillBegin(to presentedViewController: UIViewController, from presentingViewController: UIViewController) {}
|
||||
open func dismissalTransitionWillBegin(to presentedViewController: UIViewController, from presentingViewController: UIViewController) {}
|
||||
/// This method is called during the dismissal animation. Use this to animate anything alongside the menu animation. The super method does not need to be called.
|
||||
func dismissalTransition(to presentedViewController: UIViewController, from presentingViewController: UIViewController) {}
|
||||
open func dismissalTransition(to presentedViewController: UIViewController, from presentingViewController: UIViewController) {}
|
||||
/// This method is called when the dismissal transition ends. Use this to finish any animations. The super method does not need to be called.
|
||||
func dismissalTransitionDidEnd(to presentedViewController: UIViewController, from presentingViewController: UIViewController, _ completed: Bool) {}
|
||||
open func dismissalTransitionDidEnd(to presentedViewController: UIViewController, from presentingViewController: UIViewController, _ completed: Bool) {}
|
||||
}
|
||||
|
||||
public extension SideMenuPresentationStyle {
|
||||
|
||||
@@ -51,7 +51,7 @@ Check out the example project to see it in action!
|
||||
|  |  |  |  |
|
||||
|
||||
## Requirements
|
||||
- [x] Xcode 10.
|
||||
- [x] Xcode 11.
|
||||
- [x] Swift 5.
|
||||
- [x] iOS 10 or higher.
|
||||
|
||||
@@ -111,7 +111,7 @@ Once you have your Swift package set up, adding SideMenu as a dependency is as e
|
||||
|
||||
```swift
|
||||
dependencies: [
|
||||
.package(url: "https://github.com/Alamofire/Alamofire.git", from: "6.0.0")
|
||||
.package(url: "https://github.com/jonkykong/SideMenu.git", from: "6.0.0")
|
||||
]
|
||||
```
|
||||
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@
|
||||
|
||||
Pod::Spec.new do |s|
|
||||
s.name = "SideMenu"
|
||||
s.version = "6.2.9"
|
||||
s.version = "6.4.3"
|
||||
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.
|
||||
|
||||
Reference in New Issue
Block a user