♻️ :: Updated example application

This commit is contained in:
Felix Mau
2019-08-25 22:20:18 +02:00
parent c7fd4bfa35
commit 88cfdeb994
5 changed files with 124 additions and 108 deletions
@@ -12,37 +12,64 @@ import GradientLoadingBar
class AdvancedExampleViewController: UIViewController {
// MARK: - Outlets
@IBOutlet private var customSuperviewButton: BlueBorderedButton!
@IBOutlet private var customColorsButton: BlueBorderedButton!
@IBOutlet private var interfaceBuilderButton: BlueBorderedButton!
@IBOutlet private var programaticallyButton: BlueBorderedButton!
@IBOutlet private var gradientActivityIndicatorView: GradientActivityIndicatorView!
// MARK: - Private properties
private var buttonGradientLoadingBar: GradientLoadingBar?
private var customColorsGradientLoadingBar: GradientLoadingBar?
// swiftlint:disable:next identifier_name
private let programaticallyGradientActivityIndicatorView: GradientActivityIndicatorView = {
let gradientActivityIndicatorView = GradientActivityIndicatorView()
gradientActivityIndicatorView.alpha = 0.0
gradientActivityIndicatorView.isHidden = true
// Source: https://color.adobe.com/Pink-Flamingo-color-theme-10343714/
gradientActivityIndicatorView.gradientColorList = [
#colorLiteral(red: 0.9490196078, green: 0.3215686275, blue: 0.431372549, alpha: 1), #colorLiteral(red: 0.9450980392, green: 0.4784313725, blue: 0.5921568627, alpha: 1), #colorLiteral(red: 0.9529411765, green: 0.737254902, blue: 0.7843137255, alpha: 1), #colorLiteral(red: 0.4274509804, green: 0.8666666667, blue: 0.9490196078, alpha: 1), #colorLiteral(red: 0.7568627451, green: 0.9411764706, blue: 0.9568627451, alpha: 1)
]
return gradientActivityIndicatorView
}()
// MARK: - Public methods
override func viewDidLoad() {
super.viewDidLoad()
buttonGradientLoadingBar = GradientLoadingBar(height: 3.0,
onView: customSuperviewButton)
// Source: https://color.adobe.com/Pink-Flamingo-color-theme-10343714/
let gradientColorList = [
#colorLiteral(red: 0.9490196078, green: 0.3215686275, blue: 0.431372549, alpha: 1), #colorLiteral(red: 0.9450980392, green: 0.4784313725, blue: 0.5921568627, alpha: 1), #colorLiteral(red: 0.9529411765, green: 0.737254902, blue: 0.7843137255, alpha: 1), #colorLiteral(red: 0.4274509804, green: 0.8666666667, blue: 0.9490196078, alpha: 1), #colorLiteral(red: 0.7568627451, green: 0.9411764706, blue: 0.9568627451, alpha: 1)
]
customColorsGradientLoadingBar = BottomGradientLoadingBar(height: 3.0,
gradientColorList: gradientColorList,
onView: customColorsButton)
setupCustomColorsGradientActivityIndicatorView()
}
@IBAction func customSuperviewButtonTouchUpInside(_: Any) {
buttonGradientLoadingBar?.toggle()
@IBAction func interfaceBuilderButtonTouchUpInside(_: Any) {
if gradientActivityIndicatorView.isHidden {
gradientActivityIndicatorView.fadeIn()
} else {
gradientActivityIndicatorView.fadeOut()
}
}
@IBAction func customGradientColorsButtonTouchUpInside(_: Any) {
customColorsGradientLoadingBar?.toggle()
@IBAction func programaticallyButtonTouchUpInside(_: Any) {
if programaticallyGradientActivityIndicatorView.isHidden {
programaticallyGradientActivityIndicatorView.fadeIn()
} else {
programaticallyGradientActivityIndicatorView.fadeOut()
}
}
// MARK: - Private methods
func setupCustomColorsGradientActivityIndicatorView() {
programaticallyGradientActivityIndicatorView.translatesAutoresizingMaskIntoConstraints = false
programaticallyButton.addSubview(programaticallyGradientActivityIndicatorView)
NSLayoutConstraint.activate([
programaticallyGradientActivityIndicatorView.leftAnchor.constraint(equalTo: programaticallyButton.leftAnchor),
programaticallyGradientActivityIndicatorView.rightAnchor.constraint(equalTo: programaticallyButton.rightAnchor),
programaticallyGradientActivityIndicatorView.bottomAnchor.constraint(equalTo: programaticallyButton.bottomAnchor),
programaticallyGradientActivityIndicatorView.heightAnchor.constraint(equalToConstant: 3.0)
])
}
}
@@ -1,12 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14113" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="31S-8b-Niv">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="31S-8b-Niv">
<device id="retina4_7" orientation="portrait">
<adaptation id="fullscreen"/>
</device>
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14088"/>
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14490.49"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
@@ -38,10 +37,10 @@
</connections>
</navigationBar>
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" alignment="center" spacing="16" translatesAutoresizingMaskIntoConstraints="NO" id="Hrq-tB-Sk3">
<rect key="frame" x="16" y="150" width="343" height="468"/>
<rect key="frame" x="16" y="361.5" width="343" height="40"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="W6V-cT-b8Q" customClass="BlueFilledButton" customModule="GradientLoadingBar_Example" customModuleProvider="target">
<rect key="frame" x="0.0" y="214" width="103.5" height="40"/>
<rect key="frame" x="0.0" y="0.0" width="163.5" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="MdR-sO-dac"/>
</constraints>
@@ -51,19 +50,8 @@
<action selector="showButtonTouchUpInside:" destination="vXZ-lx-hvc" eventType="touchUpInside" id="cns-MK-XRQ"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vPX-Aq-vYS" customClass="BlueFilledButton" customModule="GradientLoadingBar_Example" customModuleProvider="target">
<rect key="frame" x="119.5" y="214" width="104" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="4ZW-wQ-OIp"/>
</constraints>
<fontDescription key="fontDescription" type="system" weight="semibold" pointSize="13"/>
<state key="normal" title="Toggle"/>
<connections>
<action selector="toggleButtonTouchUpInside:" destination="vXZ-lx-hvc" eventType="touchUpInside" id="DbQ-vV-zN6"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="mLp-ey-yd5" customClass="BlueFilledButton" customModule="GradientLoadingBar_Example" customModuleProvider="target">
<rect key="frame" x="239.5" y="214" width="103.5" height="40"/>
<rect key="frame" x="179.5" y="0.0" width="163.5" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="vge-I5-pFX"/>
</constraints>
@@ -78,10 +66,9 @@
</subviews>
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
<constraints>
<constraint firstItem="2fi-mo-0CV" firstAttribute="top" secondItem="Hrq-tB-Sk3" secondAttribute="bottom" id="FqA-7j-fEt"/>
<constraint firstItem="Hrq-tB-Sk3" firstAttribute="centerY" secondItem="kh9-bI-dsS" secondAttribute="centerY" constant="48" id="Gqm-Zj-6sL"/>
<constraint firstAttribute="trailingMargin" secondItem="Hrq-tB-Sk3" secondAttribute="trailing" id="I3l-1I-GbG"/>
<constraint firstAttribute="trailing" secondItem="m1A-KD-5Hc" secondAttribute="trailing" id="J6w-Dc-YCP"/>
<constraint firstItem="Hrq-tB-Sk3" firstAttribute="top" secondItem="m1A-KD-5Hc" secondAttribute="bottom" id="T1x-Al-PQd"/>
<constraint firstItem="Hrq-tB-Sk3" firstAttribute="leading" secondItem="kh9-bI-dsS" secondAttribute="leadingMargin" id="TjU-ze-AHg"/>
<constraint firstItem="m1A-KD-5Hc" firstAttribute="top" secondItem="jyV-Pf-zRb" secondAttribute="bottom" id="gIx-CI-Ztc"/>
<constraint firstItem="m1A-KD-5Hc" firstAttribute="leading" secondItem="kh9-bI-dsS" secondAttribute="leading" id="s9E-VE-DFo"/>
@@ -115,11 +102,16 @@
<outlet property="delegate" destination="sEh-Tc-lv1" id="37c-xg-1ug"/>
</connections>
</navigationBar>
<view contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="wLK-vz-uDn">
<rect key="frame" x="67" y="269" width="240" height="128"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</view>
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" alignment="center" spacing="16" translatesAutoresizingMaskIntoConstraints="NO" id="xhZ-U8-Vur">
<rect key="frame" x="16" y="150" width="343" height="468"/>
<rect key="frame" x="16" y="361.5" width="343" height="40"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Ogf-h2-Nhm" customClass="BlueFilledButton" customModule="GradientLoadingBar_Example" customModuleProvider="target">
<rect key="frame" x="0.0" y="214" width="103.5" height="40"/>
<rect key="frame" x="0.0" y="0.0" width="163.5" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="Ae3-GF-JqK"/>
</constraints>
@@ -129,19 +121,8 @@
<action selector="showButtonTouchUpInside:" destination="sEh-Tc-lv1" eventType="touchUpInside" id="8M0-h9-3np"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="E8a-FF-yeJ" customClass="BlueFilledButton" customModule="GradientLoadingBar_Example" customModuleProvider="target">
<rect key="frame" x="119.5" y="214" width="104" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="VZP-Xt-PJC"/>
</constraints>
<fontDescription key="fontDescription" type="system" weight="semibold" pointSize="13"/>
<state key="normal" title="Toggle"/>
<connections>
<action selector="toggleButtonTouchUpInside:" destination="sEh-Tc-lv1" eventType="touchUpInside" id="Oxs-nG-cKH"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ZBM-PV-ZnL" customClass="BlueFilledButton" customModule="GradientLoadingBar_Example" customModuleProvider="target">
<rect key="frame" x="239.5" y="214" width="103.5" height="40"/>
<rect key="frame" x="179.5" y="0.0" width="163.5" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="2cO-9h-Wp9"/>
</constraints>
@@ -156,12 +137,11 @@
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="J9t-Vs-nTW" firstAttribute="top" secondItem="xhZ-U8-Vur" secondAttribute="bottom" id="Hau-6s-zLZ"/>
<constraint firstItem="xhZ-U8-Vur" firstAttribute="centerY" secondItem="iwi-Ev-GiP" secondAttribute="centerY" constant="48" id="3Bq-aq-EAw"/>
<constraint firstAttribute="trailingMargin" secondItem="xhZ-U8-Vur" secondAttribute="trailing" id="Vlb-3d-gS4"/>
<constraint firstItem="vUY-8I-ztr" firstAttribute="top" secondItem="Iik-d0-ufh" secondAttribute="bottom" id="Y6v-Tg-EQf"/>
<constraint firstItem="vUY-8I-ztr" firstAttribute="leading" secondItem="iwi-Ev-GiP" secondAttribute="leading" id="ZlK-zd-lD9"/>
<constraint firstAttribute="trailing" secondItem="vUY-8I-ztr" secondAttribute="trailing" id="jWO-kc-RVA"/>
<constraint firstItem="xhZ-U8-Vur" firstAttribute="top" secondItem="vUY-8I-ztr" secondAttribute="bottom" id="qcc-a9-Itv"/>
<constraint firstItem="xhZ-U8-Vur" firstAttribute="leading" secondItem="iwi-Ev-GiP" secondAttribute="leadingMargin" id="yN0-pL-Fsj"/>
</constraints>
</view>
@@ -203,10 +183,10 @@
</connections>
</navigationBar>
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" alignment="center" spacing="16" translatesAutoresizingMaskIntoConstraints="NO" id="oWt-EZ-h2R">
<rect key="frame" x="16" y="150" width="343" height="468"/>
<rect key="frame" x="16" y="361.5" width="343" height="40"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6AO-o8-uCr" customClass="BlueFilledButton" customModule="GradientLoadingBar_Example" customModuleProvider="target">
<rect key="frame" x="0.0" y="214" width="103.5" height="40"/>
<rect key="frame" x="0.0" y="0.0" width="163.5" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="JJW-aV-Rqk"/>
</constraints>
@@ -217,20 +197,8 @@
<action selector="showButtonTouchUpInside:" destination="G0W-Ta-C7r" eventType="touchUpInside" id="Qs5-r9-ZAd"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zo2-4H-Hin" customClass="BlueFilledButton" customModule="GradientLoadingBar_Example" customModuleProvider="target">
<rect key="frame" x="119.5" y="214" width="104" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="riS-mt-ZpT"/>
</constraints>
<fontDescription key="fontDescription" type="system" weight="semibold" pointSize="13"/>
<state key="normal" title="Toggle"/>
<connections>
<action selector="toggleButtonTouchUpInside:" destination="vXZ-lx-hvc" eventType="touchUpInside" id="TxM-L3-Bau"/>
<action selector="toggleButtonTouchUpInside:" destination="G0W-Ta-C7r" eventType="touchUpInside" id="hwC-ky-d9y"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="enr-bC-bdY" customClass="BlueFilledButton" customModule="GradientLoadingBar_Example" customModuleProvider="target">
<rect key="frame" x="239.5" y="214" width="103.5" height="40"/>
<rect key="frame" x="179.5" y="0.0" width="163.5" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="tlC-vL-RSX"/>
</constraints>
@@ -246,13 +214,12 @@
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="oWt-EZ-h2R" firstAttribute="top" secondItem="5Gd-IJ-QP8" secondAttribute="bottom" id="Cb5-yj-M0J"/>
<constraint firstItem="9TC-19-AMF" firstAttribute="top" secondItem="oWt-EZ-h2R" secondAttribute="bottom" id="Ly6-Eu-YZl"/>
<constraint firstItem="5Gd-IJ-QP8" firstAttribute="leading" secondItem="5Bk-7E-1bh" secondAttribute="leading" id="aAS-80-sL9"/>
<constraint firstAttribute="trailing" secondItem="5Gd-IJ-QP8" secondAttribute="trailing" id="aKg-4f-ls7"/>
<constraint firstItem="5Gd-IJ-QP8" firstAttribute="top" secondItem="4Ae-UH-dXd" secondAttribute="bottom" id="epg-Ar-7Yp"/>
<constraint firstItem="oWt-EZ-h2R" firstAttribute="leading" secondItem="5Bk-7E-1bh" secondAttribute="leadingMargin" id="kcL-jt-Q6n"/>
<constraint firstAttribute="trailingMargin" secondItem="oWt-EZ-h2R" secondAttribute="trailing" id="l2g-bp-mok"/>
<constraint firstItem="oWt-EZ-h2R" firstAttribute="centerY" secondItem="5Bk-7E-1bh" secondAttribute="centerY" constant="48" id="pBl-97-ljW"/>
</constraints>
</view>
<tabBarItem key="tabBarItem" title="Safe Area Example" image="iphone_x" id="VBS-L1-AHW"/>
@@ -283,50 +250,63 @@
<outlet property="delegate" destination="l28-cg-vu8" id="gIY-Ta-u93"/>
</connections>
</navigationBar>
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" alignment="center" spacing="16" translatesAutoresizingMaskIntoConstraints="NO" id="U9H-uQ-uml">
<rect key="frame" x="16" y="150" width="343" height="468"/>
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" alignment="center" spacing="16" translatesAutoresizingMaskIntoConstraints="NO" id="wzq-Eo-AIU">
<rect key="frame" x="16" y="377.5" width="343" height="40"/>
<subviews>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xCv-N4-HyQ" customClass="BlueBorderedButton" customModule="GradientLoadingBar_Example" customModuleProvider="target">
<rect key="frame" x="0.0" y="214" width="163.5" height="40"/>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="JKA-wf-nyj" customClass="BlueBorderedButton" customModule="GradientLoadingBar_Example" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="163.5" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="dRO-9l-Y6y"/>
</constraints>
<fontDescription key="fontDescription" name=".AppleSystemUIFont" family=".AppleSystemUIFont" pointSize="13"/>
<state key="normal" title="Custom Superview"/>
<connections>
<action selector="customSuperviewButtonTouchUpInside:" destination="l28-cg-vu8" eventType="touchUpInside" id="7BK-na-Bab"/>
</connections>
</button>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="v4T-ew-NT3" userLabel="Custom Colors Button" customClass="BlueBorderedButton" customModule="GradientLoadingBar_Example" customModuleProvider="target">
<rect key="frame" x="179.5" y="214" width="163.5" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="0Ni-Bh-WPG"/>
<constraint firstAttribute="height" constant="40" id="sKv-MC-7kH"/>
</constraints>
<fontDescription key="fontDescription" type="system" weight="semibold" pointSize="13"/>
<state key="normal" title="Custom Colors"/>
<state key="normal" title="Interface Builder"/>
<connections>
<action selector="customGradientColorsButtonTouchUpInside:" destination="l28-cg-vu8" eventType="touchUpInside" id="eeU-Lu-Jg0"/>
<action selector="interfaceBuilderButtonTouchUpInside:" destination="l28-cg-vu8" eventType="touchUpInside" id="LxY-q4-Lbo"/>
</connections>
</button>
<button opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Cbn-y8-lGV" userLabel="Custom Colors Button" customClass="BlueBorderedButton" customModule="GradientLoadingBar_Example" customModuleProvider="target">
<rect key="frame" x="179.5" y="0.0" width="163.5" height="40"/>
<constraints>
<constraint firstAttribute="height" constant="40" id="emu-Jk-zMc"/>
</constraints>
<fontDescription key="fontDescription" type="system" weight="semibold" pointSize="13"/>
<state key="normal" title="Programatically"/>
<connections>
<action selector="programaticallyButtonTouchUpInside:" destination="l28-cg-vu8" eventType="touchUpInside" id="wN5-5z-SMc"/>
</connections>
</button>
</subviews>
</stackView>
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dTf-4j-4fr" customClass="GradientActivityIndicatorView" customModule="GradientLoadingBar">
<rect key="frame" x="16" y="364" width="343" height="3"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" constant="3" id="xmv-tK-5hF"/>
</constraints>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="layer.cornerRadius" value="3"/>
</userDefinedRuntimeAttributes>
</view>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="trailingMargin" secondItem="U9H-uQ-uml" secondAttribute="trailing" id="9FL-Ah-Ya2"/>
<constraint firstAttribute="trailing" secondItem="bs6-mY-v3z" secondAttribute="trailing" id="9bA-3n-nu0"/>
<constraint firstItem="U9H-uQ-uml" firstAttribute="top" secondItem="bs6-mY-v3z" secondAttribute="bottom" id="MfL-jV-R4x"/>
<constraint firstItem="wzq-Eo-AIU" firstAttribute="centerY" secondItem="EZo-KN-FDG" secondAttribute="centerY" constant="64" id="OCb-6J-FVO"/>
<constraint firstItem="dTf-4j-4fr" firstAttribute="centerY" secondItem="EZo-KN-FDG" secondAttribute="centerY" constant="32" id="PEs-q2-uio"/>
<constraint firstItem="wzq-Eo-AIU" firstAttribute="leading" secondItem="EZo-KN-FDG" secondAttribute="leadingMargin" id="PSd-qd-uaV"/>
<constraint firstItem="dTf-4j-4fr" firstAttribute="leading" secondItem="EZo-KN-FDG" secondAttribute="leadingMargin" id="PmV-qi-kVc"/>
<constraint firstItem="bs6-mY-v3z" firstAttribute="leading" secondItem="EZo-KN-FDG" secondAttribute="leading" id="QMM-vg-Yxt"/>
<constraint firstItem="U9H-uQ-uml" firstAttribute="leading" secondItem="EZo-KN-FDG" secondAttribute="leadingMargin" id="af7-rF-a3Q"/>
<constraint firstItem="dTf-4j-4fr" firstAttribute="trailing" secondItem="EZo-KN-FDG" secondAttribute="trailingMargin" id="jfG-Rt-Wnk"/>
<constraint firstItem="bs6-mY-v3z" firstAttribute="top" secondItem="vvP-wW-eUz" secondAttribute="bottom" id="qRd-cH-wBY"/>
<constraint firstItem="9Nv-iX-Uwf" firstAttribute="top" secondItem="U9H-uQ-uml" secondAttribute="bottom" id="rO6-12-9bW"/>
<constraint firstAttribute="trailingMargin" secondItem="wzq-Eo-AIU" secondAttribute="trailing" id="xfq-u1-BZR"/>
</constraints>
</view>
<tabBarItem key="tabBarItem" title="Advanced Example" image="rocket" id="SyM-zw-tlg"/>
<simulatedTabBarMetrics key="simulatedBottomBarMetrics"/>
<connections>
<outlet property="customColorsButton" destination="v4T-ew-NT3" id="Z7N-mY-X4b"/>
<outlet property="customSuperviewButton" destination="xCv-N4-HyQ" id="Mxt-nu-ZS3"/>
<outlet property="gradientActivityIndicatorView" destination="dTf-4j-4fr" id="OMu-fw-5cD"/>
<outlet property="interfaceBuilderButton" destination="JKA-wf-nyj" id="7c6-5T-R8p"/>
<outlet property="programaticallyButton" destination="Cbn-y8-lGV" id="6Np-Ed-c8S"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="fkr-pn-u5J" userLabel="First Responder" sceneMemberID="firstResponder"/>
@@ -17,11 +17,6 @@ class BasicExampleViewController: UIViewController {
gradientLoadingBar.show()
}
@IBAction func toggleButtonTouchUpInside(_: Any) {
let gradientLoadingBar = GradientLoadingBar.shared
gradientLoadingBar.toggle()
}
@IBAction func hideButtonTouchUpInside(_: Any) {
let gradientLoadingBar = GradientLoadingBar.shared
gradientLoadingBar.hide()
@@ -16,26 +16,44 @@ class NavigationBarExampleViewController: UIViewController {
// MARK: - Private properties
private var gradientLoadingBar: BottomGradientLoadingBar?
private var gradientProgressIndicatorView = GradientActivityIndicatorView()
// MARK: - Public methods
override func viewDidLoad() {
super.viewDidLoad()
gradientLoadingBar = BottomGradientLoadingBar(onView: navigationBar)
setupGradientProgressIndicatorView()
}
@IBAction func showButtonTouchUpInside(_: Any) {
gradientLoadingBar?.show()
gradientProgressIndicatorView.fadeIn()
}
@IBAction func toggleButtonTouchUpInside(_: Any) {
gradientLoadingBar?.toggle()
// gradientLoadingBar?.toggle()
}
@IBAction func hideButtonTouchUpInside(_: Any) {
gradientLoadingBar?.hide()
gradientProgressIndicatorView.fadeOut()
}
// MARK: - Private methods
private func setupGradientProgressIndicatorView() {
gradientProgressIndicatorView.alpha = 0.0
gradientProgressIndicatorView.isHidden = true
gradientProgressIndicatorView.translatesAutoresizingMaskIntoConstraints = false
navigationBar.addSubview(gradientProgressIndicatorView)
NSLayoutConstraint.activate([
gradientProgressIndicatorView.leftAnchor.constraint(equalTo: navigationBar.leftAnchor),
gradientProgressIndicatorView.rightAnchor.constraint(equalTo: navigationBar.rightAnchor),
gradientProgressIndicatorView.bottomAnchor.constraint(equalTo: navigationBar.bottomAnchor),
gradientProgressIndicatorView.heightAnchor.constraint(equalToConstant: 3.0)
])
}
}
@@ -21,10 +21,6 @@ class SafeAreaExampleViewController: UIViewController {
safeAreaGradientLoadingBar.show()
}
@IBAction func toggleButtonTouchUpInside(_: Any) {
safeAreaGradientLoadingBar.toggle()
}
@IBAction func hideButtonTouchUpInside(_: Any) {
safeAreaGradientLoadingBar.hide()
}