Skip to content
SOPullUpView library for iOS, with pull up gesture πŸ“±πŸ–οΈβ†•οΈ
Swift Ruby
Branch: master
Clone or download
Latest commit fb682a9 Jan 1, 2020
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/workflows update yml Dec 19, 2019
Example Fix Some issues, and add a new function Dec 15, 2019
SOPullUpView Fix Some issues, and add a new function Dec 15, 2019
.gitignore init Dec 3, 2019
LICENSE update Dec 8, 2019 Update Jan 1, 2020
SOPullUpView.podspec add CI Dec 19, 2019
first.gif update screenshots Jan 1, 2020
second.gif update screenshots Jan 1, 2020


Version License Platform


SOPullUpView is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'SOPullUpView'

Basic usage

  1. Add pod 'SOPullUpView' to your Podfile.

  2. The main part of the library SOPullUpView. It defines an instance of SOPullUpControl where a MainViewController, called the SOPullUpView , can be dragged up and down, hiding or revealing the content. As an example, defines SOPullUpControl and assign the datasource and init the view to be the PullUpViewController

      let pullUpController = SOPullUpControl()
      override func viewDidLoad() {
          pullUpController.dataSource = self
          pullUpController.setupCard(from: view)
  3. Make sure the main view controller that will adopt SOPullUpViewDataSource

    • pullUpViewCollapsedViewHeight ...startViewHeightForPullUpViewController...

      As an example, the StartViewHeight is determined by the following delegate callback:

         func pullUpViewCollapsedViewHeight() -> CGFloat {
             return  100.0
    • pullUpViewController ...UIViewController as child of your main controller...

        func pullUpViewController() -> UIViewController {
           guard let vc = UIStoryboard(name: StoryBoardName, bundle: nil).instantiateInitialViewController() as? YourPullUpView else {return UIViewController()}
           vc.pullUpControl = self.pullUpController
           return vc
    • pullUpViewExpandedViewHeight ...maximumHeightForPullUpViewController... (Optional method)

  4. In the PullUpViewController defines an instance from SOPullUpControl to be initialized from the ParentViewContrroler

     var pullUpControl: SOPullUpControl? {
         didSet {
             pullUpControl?.delegate = self
  5. finally just adopt the SOPullUpViewDelegate in the pullUpViewController

    • pullUpViewStatus ...will trigger the status of the pull Up View when it's collapsed and expanded...

         func pullUpViewStatus(_ sender: UIViewController, didChangeTo status: PullUpStatus) {
             switch status {
               case .collapsed:
               case .expanded:
    • pullUpHandleArea ... return the view that will handle the action of the user when click on it, will collapse and expand the pullUpViewController....

        func pullUpHandleArea(_ sender: UIViewController) -> UIView {
            return handleArea


To run the example project, clone the repo, and run pod install from the Example directory first.




Brian Advent


SOPullUpView is available under the MIT license. See the LICENSE file for more info.

You can’t perform that action at this time.