# FAPanels **Repository Path**: guoami/FAPanels ## Basic Information - **Project Name**: FAPanels - **Description**: FAPanels - Swift - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-07-16 - **Last Updated**: 2021-09-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 
[](https://img.shields.io/badge/swift-5.0-orange.svg?style=flat.svg) [](https://img.shields.io/badge/support-CocoaPods-red.svg?style=flat.svg) [](http://cocoapods.org/pods/FAPanels) [](https://github.com/Carthage/Carthage) [](https://img.shields.io/badge/License-MIT-brightgreen.svg?style=flat.svg) [](http://cocoapods.org/pods/FAPanels) [](http://cocoapods.org/pods/FAPanels) [](http://cocoapods.org/pods/FAPanels) ## Famous Apps Using FAPanels --- - FanTazTech (https://itunes.apple.com/us/app/fantaztech/id1334853147?mt=8) - FTT Tech (https://itunes.apple.com/us/app/ftt-tech/id1376054178?mt=8) - SoleLinks (https://itunes.apple.com/us/app/sole-links/id1434352524?mt=8) - LOGX (https://itunes.apple.com/us/app/l-o-g-x/id1398600417?mt=8&ign-mpt=uo%3D4) - RepairDesk (https://itunes.apple.com/pk/app/repairdesk-pos-register/id1246495656?mt=8) - ScanShake Visitor (https://itunes.apple.com/us/app/scanshake-visitor/id1349888987?mt=8) - ScanShake Exhibitor (https://itunes.apple.com/us/app/scanshake-exhibitor/id1349889664?mt=8) ## New Features Added --- - [x] Swift Package Manager Support Added ## Change Color Of Center Panel While Panning --- ```swift open var colorForTapView: UIColor = UIColor.black.withAlphaComponent(0.35) open var shouldAnimateWithPan: Bool = true ``` ## Issues Resolved ( > 0.5.0 only) --- - [x] XCode 10 support - [x] Swift 5.0 support ## Issues Resolved ( > 0.4.0 only) --- - [x] Presenting a UINavigation controller distorts the frames of center panel while left panel is open and its state is front, is resolved - [x] Crash when right panel is nil and layout panel containers are updated is resolved ## New Features Added ( > 0.3.5 only) --- - [x] Execute a completion closure for any state of side menus, right after the animation of changing center panelVC - [x] Smooth logout feature ( i.e: When user taps on logout button/cell in the side menu, you will change the center panelVC and then can set left panelVC to "nil" as you don't want the user to use side menus in login/signup stories) - [x] Change Left/Right menus with smooth center panelVC animations ## New Features Added ( > 0.3.1 only) --- - [x] Create as many instances of FAPanelController with code only - [x] Configure its left, right and center panels as you want - [x] Update the Root Window Controller with any FAPanelController object ### Usage ```swift // Create FAPanelController object with out any NSCoder, Storyboards and Nib files let rootController = FAPanelController() // Configure the panels as you want and assign this panel controller to root controller of window. window?.rootViewController = rootController // You can also set window's root controller to any FAPanelController object with different FAPanelConfigurations at any time. ``` ## New Features Added ( > 0.3.0 only) --- - [x] Right panel position (front/back) to center panel - [x] Dark Overlay on right panel, if right panel position is front ### Right Panel Position | back | front | | --- | --- | |  |  ### Usage ```swift // Set the Right Panel position let rootController: FAPanelController = window?.rootViewController as! FAPanelController rootController.rightPanelPosition = .front rootController.rightPanelPosition = .back ``` ## New Features Added ( > 0.2.1 only) --- - [x] Left panel position (front/back) to center panel - [x] Shadow on left panel, if left panel position is front - [x] FAPanel State Delegate feature ### Left Panel Position | back | front | | --- | --- | |  |  ### Usage ```swift // Set the Left Panel position let rootController: FAPanelController = window?.rootViewController as! FAPanelController rootController.leftPanelPosition = .front rootController.leftPanelPosition = .back ``` ## Features --- - [x] Implementation with code & storyboard - [x] Left, right and center panel supported - [x] Change left, right or center panel - [x] Open left, right or center panel - [x] Supports Animations - [x] Multiple Panel configurations - [x] Supports status bar preffered style for all panels ### Transitions supported --- - [x] Flip From Left - [x] Flip From Right - [x] Flip From Top - [x] Flip From Bottom - [x] Curl Up - [x] Curl Down - [x] Cross Dissolve - [x] Move Up - [x] Move Down - [x] Move Left - [x] Move Right - [x] Split Horizontally - [x] Split Vertically - [x] Dump Fall - [x] Box Fade ### Panel configurations ```swift // Panels width var leftPanelWidth : CGFloat = 280 // It will override the gap percentage value var rightPanelWidth: CGFloat = 280 var leftPanelGapPercentage : CGFloat = 0.8 var rightPanelGapPercentage: CGFloat = 0.8 // resizes all subviews as well var resizeLeftPanel : Bool = false var resizeRightPanel: Bool = false // Adds push animation on side panels var pusheSidePanels: Bool = false // Bounce effects on panel animations var bounceOnLeftPanelOpen : Bool = true var bounceOnRightPanelOpen : Bool = true var bounceOnCenterPanelOpen: Bool = true var bounceOnLeftPanelClose : Bool = false var bounceOnRightPanelClose : Bool = false var bounceOnCenterPanelChange: Bool = true var bouncePercentage : CGFloat = 0.075 var bounceDuration : CGFloat = 0.1 // Panning Gesture var canRecognizePanGesture: Bool = true var panFromEdge : Bool = false var minEdgeForLeftPanel : CGFloat = 70.0 var minEdgeForRightPanel : CGFloat = 70.0 var canLeftSwipe : Bool = true var canRightSwipe: Bool = true // restricts panning gesture to work for top VC of Navigation/TabBar Controller var restrictPanningToTopVC: Bool = true // Handles the interface auto rotation of visible panel var handleAutoRotation: Bool = true // Applies corner radius to panels var cornerRadius: CGFloat = 0.0 // Shadow configurations open var shadowColor : CGColor = UIColor.black.cgColor open var shadowOffset : CGSize = CGSize(width: 10.0, height: 0.0) open var shadowOppacity: Float = 0.5 // Remove panels from super view when possible var unloadRightPanel: Bool = false var unloadLeftPanel : Bool = false // Max animation duration for animations of side panels var maxAnimDuration : CGFloat = 0.20 // percentage of screen's width to the centerPanel.view must move for panGesture to succeed var minMovePercentage: CGFloat = 0.15 // Only Center Panel Change animation var changeCenterPanelAnimated : Bool = true var centerPanelTransitionType : FAPanelTransitionType = .crossDissolve var centerPanelTransitionDuration: TimeInterval = 0.60 ``` ## Installation ### Cocoapods [CocoaPods](http://cocoapods.org) is a dependency manager for Cocoa projects. You can install it with the following command: ```bash $ gem install cocoapods ``` To integrate FAPanel into your Xcode project using CocoaPods, specify it in your `Podfile`: ```ruby source 'https://github.com/CocoaPods/Specs.git' platform :ios, '9.0' use_frameworks! target '