Transforms any view to sliding panel
Panel supports Anchor points, TabBarController and NavigationController, also it has basic TableView support.
Add following to your Podfile:
pod "CTSlidingUpPanel"
Import(Make sure to build and clean the project):
import CTSlidingUpPanel
- Download this repository
- Copy files from lib folder to your project.
- Should be done.
You can view example project to better understand how stuff works.
But here are basic steps with Storyboard:
-
Drag any View(Or Container View) to the parent view. DO NOT give this view any constraints.
-
Create outlet of the view you wish to use as bottom panel
After that in your ViewController:
@IBOutlet weak var bottomView: UIView!
var bottomController:CTBottomSlideController?;
override func viewDidLoad() {
super.viewDidLoad()
//You can provide nil to tabController and navigationController
bottomController = CTBottomSlideController(parent: view, bottomView: bottomView,
tabController: self.tabBarController!,
navController: self.navigationController, visibleHeight: 64)
//0 is bottom and 1 is top. 0.5 would be center
bottomController?.setAnchorPoint(anchor: 0.7)
}
And done, view you provided to bottomView should slide up and down.
You can do same without Storyboards. Add new subview to your parent and then provide that subview to CTBottomSlideController. It is recomended that you don't give that subview any constraints.
- Add this to your ViewController
class ViewController: UIViewController, CTBottomSlideDelegate
{...}
- Set viewcontroller as a delegate
bottomController?.delegate = self;
- Implement following methods
func didPanelCollapse();
func didPanelExpand();
func didPanelAnchor();
func didPanelMove(panelOffset: CGFloat);
Use this if you want sliding panel to slide up or down depending on TableViews offset:
func set(table:UITableView)
Use these to programatically change panels state
func expandPanel();
func anchorPanel();
func closePanel();
func hidePanel();
Use this to check panels state
swift bottomController?.currentState
State can be
.collapsed
.expanded
.anchored
.hidden