I have a grid of thumbnails each of which is a UIView. Each thumbnail has a pan gesture attached. If a pan gesture begins on one thumbnail, subsequent thumbnails do not acknowledge the pan gesture even though my finger is indeed moving across them. How do I get all thumbnails to react to a pan gesture even if the gesture did not initiate in the thumbnail?
Thanks,
Doug
I'm assuming what you're trying to do is basically scrolling through a 2d array of thumbnails? If that's the case, try putting your thumbnails into a UIScrollView. This should take care of panning through pictures. Then put UITapGestureRecognizers in each individual thumbnail if you want to perform some action upon tapping a thumbnail.
Attach the pan gesture to the superview, and use hitTest:inPoint: to determine which thumbnail the gesture is moving through.
Related
I have a map and I want to turn different regions of it into clickable elements. I know I could just splice up the map using photoshop and turn each region I want into a button individually, but that feels a bit hacky to me and I don't know if the aspect ratio of everything would stay the same from device to device when I piece the puzzle together. What is the best way to take a single image and divide it up into several complexly shaped clickable areas?
The most general-purpose solution is probably to make the entire view (image view) clickable by attaching a tap gesture recognizer to it and then interpreting the tap gesture.
I'd suggest creating a custom subclass of UIView that has an image view inside it, attaches a tap gesture recognizer, and responds to the messages from the tap gesture recognizer to figure out which region was tapped.
I'm stuck with a problem with pinch gesture. So I have a pinch gesture on an UIImageView which is itself in a collectionView, and when the user starts zooming, I add new, separates ViewController to control the zoom and pan gestures on the image, so I add my UIImageView to the new ViewController's view. The problem is, when I change my UIImageView hierarchy, the pinch gesture attached to it stops working, so the user has to take off his fingers and start pinch again in order to zoom the image. So basically, I am searching solutions to one off these:
1. Make pinch gesture work right when changing gesture.view hierarchy
OR
2. Make pinch gesture work right when changing gesture.view. So another way is to add a new view to the new ViewController and attach gesture to that view. But it still resets the gesture touches and you need to start it again.
If anyone has any suggestions, please help. Thanks a lot.
Ok, I found the answer. You just need to set userinteraction of vc's view to NO. Works like a charm.
I am playing with the pinching/dragging/rotating gestures (working with the gestures, not raw touch events). It works nice, but I have noticed one problem. For pinching/rotating both fingers need to be inside the view. As long as the view is large enough its not a problem, but as soon as the view becomes very small (in regards to the parent thats a scrollview), it feels a little bit like struggle to get the view "back". I have been checking some other apps, and Whatsapp does that the best. When you add a emoticon to an image inside Whatsapp, you can do all the gestures without the need to have both fingers on the view. For example, I made the emoticon really small, put two fingers so that the emoticon lies between them, and the gesture recognizer applies my movement to the emoticon (but not the to the scrollview which is the superview). When I do it inside my App the gestures are being applied to the scrollview as long as I dont place both fingers on the view I want to transform
Is there some setting on the gestures so it does that or do I have to work with raw touch events and calculate my own stuff ?
Thanks
- The functionality which is required by client is already implemented using UISwipeGestureRecognizer but I am not able to give animation which is needed.
- I want the animation of dragging image as its in paging effect of UIScrollview.
Let me explain in detail:
- In UIScrollView with paging enabled, when we drag image, it will be dragged behind our finger not just slight swipe.
- In my case its moving away as soon as the finger moves over the image, so I want the animation of image to be sliding as far as my fingers moves and on leaving it should move away.
-Friends, I don't want curl effect but I only want swipping functionality as far as my finger moves.
I think you can take a look at this repository and you can find what you need if you edit this repository code and use PanGestureRecognizer instead of SwipeGestureRecognizer in this repository.
https://github.com/agrawalmahesh/MKImageSlideshow
You need to disable paging property of the UIScrollView.
Hi! My problem is not how to implement multiple custom gesture but how to handle multiple Custom Gestures. I have added a pinch custom gesture on corner points of the view and one finger rotation gesture on the view. For pinch custom gesture on corner points, I've used SPUserResizableView and for one finger custom gesture, I've used KTOneFingerRotationGestureRecognizer. But only one gesture is working. How can I resolve this? I've even tried using SPUserResizableView and default rotation gesture and it's not working. What may be the issue? Thank You.
may this links can help you. Simultaneous gesture recognizers in Iphone SDK
https://stackoverflow.com/questions/3160489/handle-tap-gesture-with-an-argument-iphone-ipad
Check it out it's all about gestures ,you doesn't need to use KTOneFingerRotationGestureRecognizer and SPUserResizableView.
You don't really need to use SPUserResizableView to handle the pinch gesture in the corners. You could probably get away with transparent subviews created programmatically, with the pinch gesture recognizer added to them.