Comments (13)
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.
What are you attempting to do? Listen to long press on the bar?
from lnpopupcontroller.
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.
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.
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.
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.
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.
Apparently the problem seems to be that self.popupBar
is not valid.
from lnpopupcontroller.
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.
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.
π
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.
Thanks a lot for helping me! β€οΈ
from lnpopupcontroller.
Cheers! Happy coding!
from lnpopupcontroller.
Related Issues (20)
- UIView+LNPopupSupportPrivate.m - Line 296 - valueForUndefinedKey:]: this class is not key value coding-compliant for the key backgroundTransitionProgress HOT 4
- Use the -beginAppearanceTransition:animated: and -endAppearanceTransition APIs HOT 4
- Hope it's not too complicated HOT 1
- Question
- Incorrect popupPresentationState returned after delegate call HOT 4
- SPM resource management is not working HOT 6
- iOS 14 : [<UITabBar 0x11796b300> valueForUndefinedKey:]: this class is not key value coding-compliant for the key backgroundTransitionProgress. HOT 1
- PopupBar is disappearing after hidesBottomBarWhenPushed HOT 1
- Failing builds on Azure Pipeline with Xcode 14. HOT 3
- Carthage build failed with Xcode 14.3 HOT 7
- Left image in popupItem
- iOS 17: New βFloating" Popup Bar Style HOT 10
- iOS 17: Scroll edge appearance does not animate when presenting/dismissing popup bars
- Example App Crashes on launch HOT 15
- Style question HOT 10
- SwiftUI preview does not compile with missing required module 'LNPopupController_ObjC HOT 13
- Floating background color HOT 7
- Larger text sizes / content categories look bad HOT 32
- Bat layout is broken under certain extreme situations HOT 1
- RTL layout issues HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lnpopupcontroller.