GithubHelp home page GithubHelp logo

slackhq / panmodal Goto Github PK

View Code? Open in Web Editor NEW
3.7K 46.0 525.0 32.81 MB

An elegant and highly customizable presentation API for constructing bottom sheet modals on iOS.

License: MIT License

Ruby 2.02% Swift 97.29% Objective-C 0.69%

panmodal's Introduction

PanModal is an elegant and highly customizable presentation API for constructing bottom sheet modals on iOS.

Screenshot Preview

Platform: iOS 10.0+ Language: Swift 5 CocoaPods compatible Carthage compatible License: MIT

FeaturesCompatibilityInstallationUsageDocumentationContributingAuthorsLicense

Read our blog on how Slack is getting more 👍 with PanModal

Swift 4.2 support can be found on the Swift4.2 branch.

Features

  • Supports any type of UIViewController
  • Seamless transition between modal and content
  • Maintains 60 fps performance

Compatibility

PanModal requires iOS 10+ and is compatible with Swift 4.2 projects.

Installation

pod 'PanModal'
github "slackhq/PanModal"
dependencies: [
  .package(url: "https://github.com/slackhq/PanModal.git", .exact("1.2.6")),
],

Usage

PanModal was designed to be used effortlessly. Simply call presentPanModal in the same way you would expect to present a UIViewController

.presentPanModal(yourViewController)

The presented view controller must conform to PanModalPresentable to take advantage of the customizable options

extension YourViewController: PanModalPresentable {

    var panScrollable: UIScrollView? {
        return nil
    }
}

PanScrollable

If the presented view controller has an embedded UIScrollView e.g. as is the case with UITableViewController, panModal will seamlessly transition pan gestures between the modal and the scroll view

class TableViewController: UITableViewController, PanModalPresentable {

    var panScrollable: UIScrollView? {
        return tableView
    }
}

Adjusting Heights

Height values of the panModal can be adjusted by overriding shortFormHeight or longFormHeight

var shortFormHeight: PanModalHeight {
    return .contentHeight(300)
}

var longFormHeight: PanModalHeight {
    return .maxHeightWithTopInset(40)
}

Updates at Runtime

Values are stored during presentation, so when adjusting at runtime you should call panModalSetNeedsLayoutUpdate()

func viewDidLoad() {
    hasLoaded = true

    panModalSetNeedsLayoutUpdate()
    panModalTransition(to: .shortForm)
}

var shortFormHeight: PanModalHeight {
    if hasLoaded {
        return .contentHeight(200)
    }
    return .maxHeight
}

Sample App

Check out the Sample App for more complex configurations of PanModalPresentable, including navigation controllers and stacked modals.

Documentation

Option + click on any of PanModal's methods or notes for detailed documentation.

Screenshot Preview

Contributing

We're glad to be open sourcing this library. We use it in numerous places within the slack app and expect it to be easy to use as well as modify; we've added extensive documentation within the code to support that.

We will only be fixing critical bugs, thus, for any non-critical issues or feature requests we hope to be able to rely on the community using the library to add what they need. For more information, please read the contributing guidelines.

Authors

Stephen SowoleTosin Afolabi

License

PanModal is released under a MIT License. See LICENSE file for details.

panmodal's People

Contributors

abdullahselek avatar av0c0der avatar freybupt avatar giulio92 avatar guillianbalisi avatar jordanpichler avatar kyoheig3 avatar lkeude96 avatar marcocanc avatar nikitskynikita avatar runmad avatar santosgagbegnon avatar shoheiyokoyama avatar simdani avatar tosinaf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

panmodal's Issues

Bug/Controller dismissed on device rotation.

Description

The PanModalPresentationController is dismissed when the device is rotated.
This appears to be a result of the dismiss call within the adaptivePresentationStyle call, this is called when the presented view controller becomes horizontally compact.

public func adaptivePresentationStyle(for controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle {
        controller.presentedViewController.dismiss(animated: false, completion: nil)
        return .none
    }

However the presented views frame is correctly adjusted in viewWillTransition, but as a result of the above call as soon as this completes the controller is dismissed.

What type of issue is this? (place an x in one of the [ ])

  • bug

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

PanModal version: Latest

iOS version: iOS 12.0 but I don't think this will be specific to the issue. (Testing on an iPhone X)

Steps to reproduce:

  1. Enable device orientation for landscape left / right
  2. Present the controller
  3. Rotate the device

Expected result:

The views are resized for the new orientation.

Actual result:

The presentationTransitionWillBegin is called and as a result the controller is dismissed.

Add CI to the project

Description

I see that this project does not currently use CI. Do you think it would be a good idea to add github actions (it's free for open source) for test running.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

How to disable longForm view in dragging up?

We have multiple detail screens. all of them have to display as Pin Model style. However, Some of them depending a state are expandable or not. I mean, those not expandable screens are only showed in shortForm style and user is able to drag down to dismiss. (If user tries to make drag up shouldn't happen nothing)

'
Working with PanModel 1.02 due to Swift 3

Why not make panScrollable nil by default?

Description

As the titles says, is there any reason to not make it nil by default?

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

the demo "User Groups" Gesture is strange

Description

when I Slide up, the view frame Immediately change to the top.

I check the code

this func : handleScrollViewTopBounce(scrollView: UIScrollView, change: NSKeyValueObservedChange)

let yOffset = scrollView.contentOffset.y

yOffset == 0 and oldYValue > yOffset

so the frame change

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

PanModal version:

iOS version:

Steps to reproduce:

Expected result:

What you expected to happen

Actual result:

What actually happened

Attachments:

Logs, screenshots, screencast, sample project, funny gif, etc.

Can't scroll on iPad(6th generation)

Description

Hi,
when i display some items in the tableview with panmodal, on some devices, it can scroll to view the items, but on iPad(6th generation), it can not scroll to view the items.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

PanModal version:
1.2.5
iOS version:
iOS 13.1 iPad(6th generation)

Steps to reproduce:

1.List items in the tableview
2.Set value of 'anchorModalToLongForm' property to 'true'
3.Scroll the tableview to view the unvisible items

ps: i checked the codes, the 'isPresentedViewAnchored' method return 'false', it seems there is a floating-point precision issue

Expected result:

the tableview can scroll

Actual result:

the tableview can not scroll

Attachments:

Logs, screenshots, screencast, sample project, funny gif, etc.
debuginfo

UserGroupViewController

Hi,
This is a good example of the Pan model.
I need the delegate method when I click on any cell for UserGroupViewController

Missing view controller appearance callbacks

Description

Appearance callbacks are missing because the view controller is presented with a .custom modalPresentationStyle, so the PanModalPresentationAnimator is in charge of making the appropriate calls as necessary (before animating, after animating).

You can get by without it, but it's nice to have and I would reckon fairly expected from view controller presentations, so I am marking it as an enhancement.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Behavior of the modal different between devices

Description

Describe your issue here.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

PanModal version: 1.2.2

iOS version: 12.2

Steps to reproduce:

  1. present a panModal view
  2. scroll or drag the modal view
  3. nothing is responding except the tap to dismiss

Expected result:

I should be able to pan to expand and scroll the scrollView inside the panModal

Actual result:

The modal is presented ✅

  • iPhone X
    pan to expand ✅
    scroll ✅

  • iPhone 6 Plus
    pan to expand ✅
    scroll ❌

  • iPhone 6
    pan to expand ❌
    scroll ❌

  • iPhone 6 Plus
    pan to expand ✅
    scroll ❌

  • iPhone 6
    pan to expand ❌
    scroll ❌

Attachments:

Logs, screenshots, screencast, sample project, funny gif, etc.

Should the pan modal still be in a popover in a compact layout?

Description

In the documentation there is a comment about why you are not checking the size classes, but then it mentions This is essential when transitioning from .popover to .custom on iPad split view, however I am always seeing a popover on iPad and never seeing this transition from .popover to .custom. I guess it's a bit confusing if the expected behavior is that it's always a popover on iPad and this comment makes me think there is a workaround such as dismissing the popover and re-presenting as .custom or something

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Demo App: Navigation Controller option not working.

Hi there, this project looks great. Awesome work.
Was just fiddling around with the demo app provided and noticed that the navigation controller option doesn't appear to be working correctly. If I happen to discover what the cause is, I'll be
happy to open a PR. But I figured ya'll might have a fix sooner.
Simulator Screen Shot - iPhone 8 Plus - 2019-04-04 at 11 33 50

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • [ x] I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • [ x] I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

PanModal version:

iOS version:

Steps to reproduce:

  1. Open demo App
  2. Tap User Groups (Navigation Controller)
  3. Observe the screen overlay but no nav bar

Expected result:

What you expected to happen

Actual result:

What actually happened

Attachments:

Logs, screenshots, screencast, sample project, funny gif, etc.

PanModal content is shifted to bottom when switching from short to long form on iPhone X models

Description

On iPhone X and newer models with safe area bottom insets, the PanModal works incorrectly when changing state from short to long form and vice versa. The issues vary based on the initial position.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

  1. When the PanModal starts in short form and is switched to long form, the view content shifts to the bottom. This behavior can be reproduced as many times as possible by switching the states over and over again.
  2. When the PanModal starts in long form and then is dismissed and is started again, the content shifts to the bottom. This gets fixed by switching to short form and back to the long form again.

Otherwise, if PanModal was started in long form and gets switched to short form, everything seems to be working fine.

Reproducible in:

PanModal version: 1.2.4

iOS version: 12.4.1

Steps to reproduce:

Here's the code that can reproduce this issue:

class TestViewController: UIViewController, PanModalPresentable {
    
    private var isViewHidden = false
    
    private let hideableViewHeight = UIScreen.main.bounds.height / 2.75
    
    @IBOutlet var labelTitle: UILabel!
    
    @IBOutlet var constraintLabelTitleTop: NSLayoutConstraint!
    
    @IBOutlet var constraintLabelTitleBottom: NSLayoutConstraint!
    
    @IBOutlet var hideableView: UIView!
    
    @IBOutlet var containerTabs: UIView!
    
    @IBOutlet var constraintHideableViewHeight: NSLayoutConstraint!
    
    @IBOutlet var constraintContainerBottom: NSLayoutConstraint!
    
    private lazy var constraintContainerHeight: NSLayoutConstraint = {
        return initializeContainerHeightConstraint()
    }()
    
    var panScrollable: UIScrollView? = nil
    
    var allowsDragToDismiss: Bool = false
    
    var isUserInteractionEnabled: Bool = true
    
    var showDragIndicator: Bool = false
    
    var shortFormHeight: PanModalHeight {
        if isViewHidden {
            return .contentHeight(getShortFormHeight())
        }
        return longFormHeight
    }
    
    var longFormHeight: PanModalHeight {
        return .maxHeight
    }
    
    func shouldRespond(to panModalGestureRecognizer: UIPanGestureRecognizer) -> Bool {
        return false
    }
    
    var backgroundAlpha: CGFloat = 0.38
    
    var springDamping: CGFloat = 0.8
    
    var transitionDuration: Double = 0.4
    
    override func viewDidLoad() {
        super.viewDidLoad()
        observe()
    }
    
    private func initializeContainerHeightConstraint() -> NSLayoutConstraint {
        var height = presentingViewController?.view?.bounds.height ?? UIScreen.main.bounds.height
        height -= view.safeAreaInsets.top
        height -= view.safeAreaInsets.bottom
        height -= constraintLabelTitleTop.constant
        height -= labelTitle.bounds.height
        height -= constraintLabelTitleBottom.constant
        height -= hideableViewHeight
        return NSLayoutConstraint(
            item: containerTabs!,
            attribute: NSLayoutConstraint.Attribute.height,
            relatedBy: NSLayoutConstraint.Relation.equal,
            toItem: nil,
            attribute: NSLayoutConstraint.Attribute.notAnAttribute,
            multiplier: 1,
            constant: round(height)
        )
    }
    
    private func getShortFormHeight() -> CGFloat {
        return constraintContainerHeight.constant +
            labelTitle.bounds.height +
            constraintLabelTitleTop.constant +
            constraintLabelTitleBottom.constant
    }
    
    private func updateConstraints() {
        constraintHideableViewHeight.constant = isViewHidden ? 0 : hideableViewHeight
        if isViewHidden {
            containerTabs.addConstraint(constraintContainerHeight)
        } else {
            containerTabs.removeConstraint(constraintContainerHeight)
        }
        constraintContainerBottom.isActive = !isViewHidden
    }
    
    private func observe() {
        var isFirstTime = true
        /*observable bool field*/.observeNext { hide in
            self.isSignalAnalyzerHidden = hide
            self.updateConstraints()
            self.buttonChart.alpha = hide ? 0.38 : 1.0
            
            if isFirstTime {
                isFirstTime = false
                return
            }
            self.view.setNeedsLayout()
            UIView.animate(
                withDuration: 0.4,
                delay: 0.0,
                usingSpringWithDamping: 0.8,
                initialSpringVelocity: 0.0,
                options: [.curveEaseInOut, .beginFromCurrentState],
                animations: {
                    self.view.layoutIfNeeded()
                },
                completion: nil
            )
            
            self.panModalSetNeedsLayoutUpdate()
            self.panModalTransition(to: self.isViewHidden ? .shortForm : .longForm)
        }
    }
}

Expected result:

PanModal should not shift its content.

Actual result:

PanModal shifts its content to the bottom of the screen.

Attachments:

Video

Bottom offset issue

Description

Describe your issue here.
Pan model has a bottom offset of content, same as in the top, so the user cannot scroll normally to the bottom.

Is it any workaround? Tried this but didn't helped

 override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        
        // Workaround to update contrains after PanModel is shown
        panModalSetNeedsLayoutUpdate()
    }

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

PanModal version: 1.2.4
iOS version: 13.1

Steps to reproduce:

  1. Has tableView inside PopModel

Expected result:

Content should fit normally

Actual result:

What actually happened

Attachments:

Logs, screenshots, screencast, sample project, funny gif, etc.

SPM doesn't work with Xcode 11

Glad to see there is now SPM support!

... except it doesn't seem to work with Xcode 11's UI. I actually don't know what the problem is, whether it's with Xcode or with the library, and I've asked on SO as well with no answers. So I'm opening an issue here in case anyone has an idea.

Does anyone else have the issue or it's just me?

iPad UI/UX

Description

Describe your issue here.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

PanModal version: 1.2.2

iOS version: 12.2 (Simulator)

Steps to reproduce:

Just ran an example from the PanModal repo

Expected result:

What you expected to happen

  • expected it fully support iPad view

Actual result:

What actually happened

  • minor UI/UX problem > image below

Attachments:

Simulator Screen Shot - iPad Pro (12 9-inch) (3rd generation) - 2019-05-21 at 11 16 00

Logs, screenshots, screencast, sample project, funny gif, etc.

[question & discussion]

Thanks For this wonderful repository, I have a trouble about configuration, if my final implementation effect like picture below, how should I configure ?thanks!

image

Trying to move a table item down makes the modal dismiss

Description

Describe your issue here.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

The tableview that I'm displaying in the PanModal has editing capabilities. If I try to move an item from the top of the list downwards, the modal thinks I'm swiping downwards, dismissing the modal

Reproducible in:

Xcode 11.3.1

PanModal version:
1.2.6

iOS version:
iOS 13.3.1

Steps to reproduce:

  1. Create a UITableViewController, and make it conform to PanModalPresentable. Set the panScrollable property to be the tableView
  2. Add editing and move functionality to the tableView
  3. Display the panModal view, and try to move the first cell down the list

Expected result:

The item is able to be moved downwards successfully.

Actual result:

The panModal view is dismissed

Attachments:

Something to note here: Our designers want the cell to have swipe to delete and move functionality, so the move is being done by pressing and holding on a cell, and then dragging it. I'm not sure if this is what is causing the weird behavior or not. I'm still investigating.

deleteRows The UserGroupViewController automatically moves the top

Description

Describe your issue here.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

tableView.deleteRows(at: [NSIndexPath(item: indexPath.row, section: 0) as IndexPath], with: .fade)
deleteRows The UserGroupViewController automatically moves the top

Reproducible in:

PanModal version:

iOS version:

Steps to reproduce:

Expected result:

What you expected to happen

Actual result:

What actually happened

Attachments:

Logs, screenshots, screencast, sample project, funny gif, etc.

PanScrollable of scrollView in WKWebView does not working

Description

PanScrollable of scrollView in WKWebView does not working.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Reproducible in:

PanModal version: 1.2

iOS version: 12.1

Steps to reproduce:

  1. I create simple WebViewController that implemented PanModalPresentable
import UIKit
import WebKit

import PanModal

final class WebViewController: UIViewController {
    
    private let webView: WKWebView = {
        let webView = WKWebView()
        webView.translatesAutoresizingMaskIntoConstraints = false
        webView.allowsBackForwardNavigationGestures = true
        return webView
    }()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        view.addSubview(webView)
        webView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
        webView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
        webView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
        webView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
        
        loadWeb()
    }
    
    private func loadWeb() {
        let request = URLRequest(url: URL(string: "https://github.com/slackhq/PanModal/blob/master/README.md")!)
        webView.load(request)
    }
    
}

extension WebViewController: PanModalPresentable {
    
    var panScrollable: UIScrollView? {
        return webView.scrollView
    }
    
}
  1. PresentPanModal WebViewController
let controller = WebViewController()
presentPanModal(controller)

Expected result:

PanScrollable panModal webView.

Actual result:

Height is zero.

Attachments:

  1. Default setting.

  1. Add longFormHeight for default height is zero. But, panScrollable is not working.
extension WebViewController: PanModalPresentable {
    
    var panScrollable: UIScrollView? {
        return webView.scrollView
    }

    var longFormHeight: PanModalHeight {
        return .maxHeight
    }
    
}

Unbalanced calls to begin/end appearance transitions

Description

Describe your issue here.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

I'm receiving constantly this message: 'Unbalanced calls to begin/end appearance transitions for ...' in the log, when I use UINavigationController with PanModalPresentable.

The log appears each time when a UINavigationController is being shown or dismissed.

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

PanModal version: 1.2.4

iOS version: 12.3

Steps to reproduce:

The simpliest way:

  1. Launch your example project.
  2. Select from the list this item: 'User Groups (NavigationController)'.
  3. See the log messages.

Expected result:

No message on the log like this: 'Unbalanced calls to begin/end appearance transitions for ...'

Actual result:

This message on the log: 'Unbalanced calls to begin/end appearance transitions for ...'

Attachments:

unbalanced-bug

how to don't call viewWillAppear when dismiss PanModal viewcontroller

Description

Describe your issue here.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • [ x] question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

When i dismiss PanModal view controller, i don't want to call viewWillAppear of parent viewcontroller.

So, i trying to set

panmodalVC.modalPresentationStyle = .overFullScreen

parentVC.presentPanModal(panmodalVC)

and when dismiss,

called viewWillAppear of parentVC.

How to apply don't call viewWillAppear of parentVC?

could you make SwiftUI Example?

Description

Describe your issue here.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

PanModal version:

iOS version:

Steps to reproduce:

  1. edit function
  2. edit readme

Expected result:

We are going to use SwiftUI as Apple suggests, so PanModal should be supporting SwiftUI as well.

Actual result:

Attachments:

Logs, screenshots, screencast, sample project, funny gif, etc.

How to use it from top side for alerts?

Description

Describe your issue here.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • [ X] question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Hey, How can I use pan present from top side not bottom on alerting something.

Using Storyboard!

Hi,
I really like your PanModal customizable presentation. Amazing job. I am new to Xcode and Swift.
I am trying to call a View Controller from Storyboard instead of programmatically. It loads the controller but has transparent background and non of the labels I have show up. I am using the Basic() just to see if I can load it from there. Do I need to initiate Storyboard somewhere or I am doing something wrong. Any help will much appreciated. Thanks in advance.!

Describe your issue here.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • [X ] question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • [ X] I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • [ X] I've read and agree to the Code of Conduct.
  • [X ] I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

PanModal version:

iOS version:

Steps to reproduce:

Expected result:

What you expected to happen

Actual result:

What actually happened

Attachments:

Logs, screenshots, screencast, sample project, funny gif, etc.

changing the Height

Description

Describe your issue here.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

i'd like to change the height when navigating.
i'm presenting navigation Controller with VC1 as root with a short height of 350
when some action in VC1 happened it will push VC2 witch should change the short height to 500
if push VC3 short height is 400
if pop to VC1 short height is 350 again
and so on
is this behavior applicable?

Dismissing the modal programmatically

Description

Is there a way to dismiss the modal programmatically? I see that there are panModalWillDismiss and panModalDidDismiss, but how would I go around dismissing it, for example using panModalDismiss()?

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

PanModal version: 1.2.5

iOS version: 13.2.2

Wrong bottomLayoutOffset when root view controller is UITabBarController created by code

Description

Describe your issue here.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

PanModalPresentable.bottomLayoutOffset returns wrong value when:

  1. the root view controller is a programatically created UITabBarController(A).
  2. the tab bar controller(A) has a presented view controller(B) with modalPresentationStyle = .fullScreen.
  3. the PanModal is presented from the presented view controller(B)

Reproducible in:

PanModal version: 1.2.6

iOS version: 13.x

Steps to reproduce:

You can simply checkout https://github.com/devxoul/PanModalBottomLayoutOffset and run. You will see the value of bottomLayoutGuide.length of keyWindow.rootViewController has changed after AnotherViewController is presented:

[TabBarController] rootViewController.bottomLayoutGuide.length: 34.0
[TabBarController] rootViewController.safeAreaInsets.bottom: 34.0

[TabBarController] Present AnotherViewController

[AnotherViewController] rootViewController.bottomLayoutGuide.length: 0.0
[AnotherViewController] rootViewController.safeAreaInsets.bottom: 34.0

Expected result:

It should return the proper bottom offset. (e.g. 34.0)

Actual result:

0.0

Attachments

Screen Shot 2020-01-22 at 4 11 39 AM

Support/guidelines for use with AsyncDisplayKit (Texture)

Description

Sorry guys I was looking for a slack that I could drop into to ask this question but I didn't find one. Firstly, thanks for the effort made to open source this - it's great and I think will really fit my use-case.

My question:
Do you have any guidelines or best practices for using AsyncDisplayKit (now Texture) with PanModal? I have heard that ASDK is used internally at Slack and so you have likely used the two together. Specifically I am having problems with .intrinsicHeight and also not receiving expected heights in constrainedSize when using .contentHeight(x) for longFormHeight (I suspect I get the full controller height instead of x). I am fairly new to iOS development and brand spanking new to ASDK, so please do say if this is a poor question or if I should direct it elsewhere.

Thanks for any help you can provide!

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

table view is not selectable

I putted a table view inside a ViewController and when I present the view controller with the panmodal pod

  • and then make this var longFormHeight: PanModalHeight {
    return .contentHeight(contentheight)
    }
    -the table is not selectable (didSelectRowAt didn't get called )

When will you update to swift 5.1 ?

Description

When will you update to swift 5.1?

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Reproducible in:

PanModal version: 1.0

iOS version: 11.0 ~ 13.x

Is there a way to change the modal type on iPad?

Description

When running the example project on an iPad, the modals are displayed inside of a popover. Is there a way to change it to a bottom to top vertical modal similar to the iPhone?
Describe your issue here.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

PanModal version: 1.2.6

iOS version: 11.3

Steps to reproduce:

  1. Launch the example project
  2. Build the app for an iPad device (Simulator is fine)
  3. Tap on an example

Expected result:

The modal is displayed vertically, from bottom to top

Actual result:

What actually happened
The modal is displayed in a popover on the top leading edge of the screen. I tried conforming the class to the UIPopoverPresentationControllerDelegate and then setting the modal style to .fullScreen with no luck.

Attachments:

Logs, screenshots, screencast, sample project, funny gif, etc.
Screen Shot 2019-12-23 at 10 54 16 AM

failure get controller from self.storyboard?.instantiateViewController

Description

how do I resolve this failure Argument type 'ConfirmOrderAlertVC' does not conform to expected type 'PanModalPresentable' when I call a controller from the storyboard

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Attachments:

Screen Shot 2019-10-24 at 00 29 19

Full content display in short form

Description

I am using your amazing work for displaying a collapsible header table view in 75% of the screen format and also in 100%. I limited the ability to transition between short form and long form only by accessing a draggable top view (scrolling the UITableView towards the top will not pan the container view).

The problem that I am encountering is about being able to display the entire UITableView content in the short form too, for the moment the rest of 25% of the UITableView content is not scrollable and can be accessed only if the user is expanding the UIViewController to the long format.

Is there a way to know the percentage/height of the current state? It would be great to have this enhancement!

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

How to Handle Keyboard ?

Description

Describe your issue here.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Thanks for the awesome library.
I have a form type fields inside the PanModal and I want to handle the field (UITextView or UITextField) whenever this field get focus, keyboard will open and this field should be adjusted so that it will get lie above the keyboard.
I'm new to iOS so I don't know the issue in this library or there are other ways to achieve this type of things. Please help

Reproducible in:

PanModal version: 1.2.6

iOS version:

Steps to reproduce:

  1. Put a UITextField or UITextView
  2. Click to focus (open a keyboard)

Expected result:

Expected to move panmodal so that desired field get focus (above the keyboard)

Actual result:

Keyboard overlap on the field

modal dismissal needs to scroll all the way to top first

Description

Describe your issue here.
Thank you for this amazing library - it took all of 10 minutes to convert my regular pop ups to panModal and it looks fabulous!

I have a web view in my view controller with a title view. The title view remains on the top, while the web view scrolls. This works perfectly with panModal with one behavior that I've not been able to modify -- If I scroll down in the web view, then swipe down on the title or the drag indicator, it doesn't drag...
How do I get the modal to dismiss if the user drags the handle (or part of the view controller that's not the scroll view?)

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • [x ] question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • [ x] I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • [ x] I've read and agree to the Code of Conduct.
  • [x ] I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

PanModal version:

iOS version:

Steps to reproduce:

Expected result:

What you expected to happen

Actual result:

What actually happened

Attachments:

Logs, screenshots, screencast, sample project, funny gif, etc.

Pan Modal does not respect definesPresentationContext

Description

Pan Modal does not respect definesPresentationContext. Presented PanModals always appear at the TOP of the navigation hierarchy, even if a lower container has definesPresentationContext=true.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

PanModal presenter should find the lowest container with definesPresentationContext=true rather than always finding the topmost container, as expected in UIKit and documented: https://developer.apple.com/documentation/uikit/uiviewcontroller/1621456-definespresentationcontext

This is probably because the presentation style is currently set to custom, and this UIKit behavior is only provided when ModalPresentationStyle is currentContext or overCurrentContext. Semantically I feel Pan Modal best models an overCurrentContext presentation style.

Reproducible in:

PanModal version: 1.2.4

iOS version: iOS 12.4

Steps to reproduce:

  1. Create a top-level container (eg UITabBarController)
  2. Create a lower-level container (eg UINavigationController) with definesPresentationContext=true: this container should present the modal.
  3. Create a content view controller inside of the lower-level nav controller.
  4. Present a Pan Modal from the content view controller.

Expected result:

Pan Modal is presented on the Navigation Controller, allowing any full screen presentation coming from a top-level Tab Bar to appear overtop the pan modal.

Actual result:

Pan Modal is presented on the topmost Tab Bar Controller, preventing any full screen presentation from covering it.

Attachments:

Warning: Attempt to present <SomeModal: xx> on <TopmostRoot: xx> which is already presenting <PanModal: xx>
😢

Add an option to disable panModal dismissal on background view tap

Description

Add an option to disable the dismissal of the modal VC on tapping the background. Currently there is no way to prevent dismissal – you can only tap into the process by overriding panModalWillDismiss().

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Background dimming animation broken

Description

After upgrading to the latest PanModal version, showing the pan modal no longer has background dimming animation. That is, while the modal animates up from the bottom, the black transparent background appears instantly without a fade-in effect.

Dismissing works fine: both the modal and the background has an animation for dismissal.

Expected: The dimming background should animate from alpha 0 to 1 when the pan modal is activated.

What type of issue is this? (place an x in one of the [ ])

  • bug

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

longFormHeight .maxHeight isn't working with safeAreaLayoutGuide

Swift: 5
XCode: 10.2.1
PanModal: 1.2.4

When I set the longFormHeight to use maxHeight the drag indicator always goes behind the status bar. This happen in any iPhone that needs to use the safeAreaLayoutGuide.

presentPanModal( MyController() )
class MyController: UITableViewController, PanModalPresentable {
  var panScrollable: UIScrollView? {
    return tableView
  }

  var longFormHeight: PanModalHeight {
    return .maxHeight
  }
  
  var shortFormHeight: PanModalHeight {
    return longFormHeight
  }
}

Screenshot 2019-07-12 at 12 09 21

Let me know if you need any more information from me. Thank you.

(Share) Extension Compatibility

Description

This Library is not currently compatible with a Share Extension Target

What type of issue is this?

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Building this library against a share extension target fails and results in the following Swift Compiler Error:

PanModalPresentable+LayoutHelpers.swift:37:30: 'shared' is unavailable in application extensions for iOS: Use view controller based solutions where appropriate instead.

return UIApplication.shared.keyWindow?.rootViewController?.bottomLayoutGuide.length ?? 0

Reproducible in:

PanModal version: 1.2.6

iOS version: 13.3

Steps to reproduce:

  1. Add Library as a CocoaPods (or other) dependency to a Share Extension Target
  2. Build / Run the Share Extension
  3. Swift Compiler Error is given

Expected result:

Compatibility with Share Extension context (not dependent on UIApplication).

Unclear at the moment how crucial the UIApplication.shared.keyWindow is to the functionality of this Library

Actual result:

Swift Compiler Error

Attachments:

Screenshot 2020-01-23 at 10 09 43

Device rotation causing layout issue.

Description

I m using panModal for my app. My device orientation is not fixed. So when I open a panmodal view controller, it resizes my view and looks so buggy.

What type of issue is this?

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

PanModal version: Latest

iOS version: 13.2.3

Steps to reproduce:

  1. Implement Pan modal and rotate the device when the modal is open

Expected result:

I know currently you are not going to add new features. Kindly keep this in mind and fix it ASAP.

Actual result:

What actually happened

Attachments:

Logs, screenshots, screencast, sample project, funny gif, etc.

Problems with tableView

Description

I faced the problem with tableView inside presented controller. When I try to scroll it up, all the content jumps to the top. In panScrollable I return tableView.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Customizable Transition Duration

Description

Describe your issue here.

What type of issue is this?

  • enhancement (feature request)

Requirements

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

I was really excited to see the addition of a full screen presentation mechanism for PanModal recently. I noticed in the Full Screen example there was a custom spring damping, which seems reasonable, but the animation doesn't feel quite native as a result. The issue isn't the spring damping though, but the fact that the animation duration isn't customizable.

I'd like to request to add an animationDuration property to PanModalPresentable for use in the modal presentation, that will allow the timing to be customized.

Thanks a lot!

Reproducible in:

PanModal version:
1.2.2

iOS version:
Tested on 12.2, but should be all versions that PanModal supports.

Horizontal sliding problem

Description

Describe your issue here.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

PanModal version:latest

iOS version:12.0

Steps to reproduce:

1.Add a horizontal scrolling collectionview on the Viewcontroller
2.PanModal also responds to my slip when I slide the collectionView

Expected result:

When I slide collectionview, PanModal not respond to my slide

When slide up and down, left and right slide ban

Actual result:

What actually happened
Sliding in all directions

Attachments:

Screenshot Preview

Logs, screenshots, screencast, sample project, funny gif, etc.

There's no option to pass touches to the underlaying controller

Description

If you want to allow the user to interact both with the presenting view controller and the presented view controller, it's impossible currently. Eg if you treat the library as card presenter, you often want to allow the user to interact eg with the map above (example: Google Maps).
Another example is using the library as a notification panel. I believe in most situations you don't want to block the user interface for those 5s (or different value) as the notification is visible.

What type of issue is this?

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

UIPickerView in the PanModalPresentable controller

Description

Describe your issue here.

What type of issue is this?

  • question

What is the best solution for having a simple UIViewController as a PanModalPresentable which has a UIPickerView as a UI element? When I scroll in the UIPickerView, the pan gesture is also triggered in PanModal/Controller/PanModalPresentationController.
Is there any possibility to limit the gesture only to some of the views in the hierarchy?

How can I change a background color for the DimmedView?

Description

Looks like it's no way to change the DimmedView background color. It's always black with alpha set to 0.7. How can I change it to white color with alpha set to 0.7?

What type of issue is this?

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Add support for Swift Package Manager

Description

As an iOS developer wanting to use this library, I'd like to be able to take advantage of Xcode 11's iOS SPM support.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Support dynamic height when inputting?

Description

Describe your issue here.

What type of issue is this? (place an x in one of the [ ])

  • bug
  • enhancement (feature request)
  • question
  • documentation related
  • testing related
  • discussion

Requirements (place an x in each of the [ ])

  • I've read and understood the Contributing guidelines and have done my best effort to follow them.
  • I've read and agree to the Code of Conduct.
  • I've searched for any related issues and avoided creating a duplicate issue.

Bug Report

Filling out the following details about bugs will help us solve your issue sooner.

Reproducible in:

PanModal version:

iOS version:

Steps to reproduce:

  1. Add a textField at the bottom
  2. Present ViewController
  3. Tapped textField

Expected result:

Keyboard should not obscure textField.

Actual result:

Attachments:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.