Coder Social home page Coder Social logo

Comments (13)

funkenstrahlen avatar funkenstrahlen commented on May 28, 2024

I tried this:

        let longpressRecognizer = UILongPressGestureRecognizer(target: self, action: "handleLongPress:")
        self.popupBar.addGestureRecognizer(longpressRecognizer)
    func handleLongPress(recognizer: UITapGestureRecognizer) {
        print("long press")
    }

But the action does not get called.

from lnpopupcontroller.

LeoNatan avatar LeoNatan commented on May 28, 2024

What are you attempting to do? Listen to long press on the bar?

from lnpopupcontroller.

funkenstrahlen avatar funkenstrahlen commented on May 28, 2024

If the popup controller is minified I want to listen to a long press on the whole visible player bar.

On 04.12.2015, at 17:57, Leo Natan [email protected] wrote:

What are you attempting to do? Listen to long press on the bar?

β€”
Reply to this email directly or view it on GitHub.

from lnpopupcontroller.

LeoNatan avatar LeoNatan commented on May 28, 2024

The bar already includes a long press gesture recognizer. So with your own recognizer, set the delegate and implement the gestureRecognizer(_, shouldRecognizeSimultaneouslyWithGestureRecognizer:) delegate method. Return true in this method to allow simultaneous recognition.

from lnpopupcontroller.

funkenstrahlen avatar funkenstrahlen commented on May 28, 2024

Thank you for pointing me to the problem with multiple gesture recognizers. This helps a lot.

However I am currently struggling with the first part: Setting the delegate.

popupBarLongPressGestureRecognizerDelegate is an attribute of LNPopupController. But this is all in the private part of your code, so I can not access it.

What about defining a delegate protocol for the whole lnpopup project, so I can react to certain events and making this a real public api?

from lnpopupcontroller.

LeoNatan avatar LeoNatan commented on May 28, 2024

You should not modify the internals of LNPopupController. Instead, add an additional long press gesture recognizer (as you have in the example above), and set that recognizer's delegate.

from lnpopupcontroller.

funkenstrahlen avatar funkenstrahlen commented on May 28, 2024

Ok I did that:

    override func viewDidLoad() {
        super.viewDidLoad()
        let longpressRecognizer = UILongPressGestureRecognizer(target: self, action: "handleLongPress:")
        longpressRecognizer.delegate = self
        self.popupBar.addGestureRecognizer(longpressRecognizer)
    }

    func handleLongPress(recognizer: UILongPressGestureRecognizer) {
        print("long press")
    }

    func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
        return true
    }

However I still do not receive the long press event.

Is that the way you intended to tell me?

from lnpopupcontroller.

funkenstrahlen avatar funkenstrahlen commented on May 28, 2024

Apparently the problem seems to be that self.popupBar is not valid.

from lnpopupcontroller.

LeoNatan avatar LeoNatan commented on May 28, 2024

Just did the following in the demo project and it worked.

    func longPress(gestureRecognizer: UILongPressGestureRecognizer) {
        print("Are you talking to me?")
    }

    func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool
    {
        return true
    }

    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        let popupContentController = storyboard?.instantiateViewControllerWithIdentifier("DemoMusicPlayerController") as! DemoMusicPlayerController
        popupContentController.songTitle = titles[indexPath.row]
        popupContentController.albumTitle = subtitles[indexPath.row]

        tabBarController?.presentPopupBarWithContentViewController(popupContentController, animated: true, completion: nil)

        let lpgr = UILongPressGestureRecognizer(target: self, action: "longPress:")
        lpgr.delegate = self
        print(tabBarController?.popupBar)
        tabBarController?.popupBar?.addGestureRecognizer(lpgr)

        tableView.deselectRowAtIndexPath(indexPath, animated: true)
    }

Remember the popupBar property is non-nil only after presenting the popup. I did find a bug in the header file, where the popupBar is not marked as nullable and will push a fix.

from lnpopupcontroller.

funkenstrahlen avatar funkenstrahlen commented on May 28, 2024

I got it working now too!

I tried to configure self.popupBar in viewDidLoad() of popupContentController but popupBar was not valid yet. I did it now in prepareForSegue and it works now.

from lnpopupcontroller.

LeoNatan avatar LeoNatan commented on May 28, 2024

πŸ‘

Make sure to pull the latest changes.

Thanks,
Leo Natan

On Dec 4, 2015, at 23:05, Stefan Trauth [email protected] wrote:

I got it working now too!

I tried to configure self.popupBar in viewDidLoad() of popupContentController but popupBar was not valid yet. I did it now in prepareForSegue and it works now.

β€”
Reply to this email directly or view it on GitHub.

from lnpopupcontroller.

funkenstrahlen avatar funkenstrahlen commented on May 28, 2024

Thanks a lot for helping me! ❀️

from lnpopupcontroller.

LeoNatan avatar LeoNatan commented on May 28, 2024

Cheers! Happy coding!

from lnpopupcontroller.

Related Issues (20)

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.