Also check the .UserInteractionEnabled (I think, something like that) field of the UIImageView - it's off by default, so it doesn't respond to gestures.
Same with UILabel. On Mon, Aug 6, 2012 at 4:05 PM, Adam Kemp <[email protected]> wrote: > I'm guessing that it's not valid to have a . in a Selector name. > > It's easier to use gesture recognizers like this: > > var gesture = new UITapGestureRecognizer(); > gesture.AddTarget(() => Recognized(gesture)); > view.AddGetureRecognizer(gesture); > > If you use AddTarget then you don't need to use a selector. It just takes > an Action. You also don't have to set NumberOfTapsRequired if you want the > default of 1, and you usually don't need a Delegate. The only thing your > delegate is doing that is non-default is return true for > ShouldRecognizeSimultaneously. You can also do this more easily: > > gesture.ShouldRecognizeSimultaneously = (thisGesture, otherGesture) => > true; > > All of the delegate methods are exposed as properties on the gesture > itself. If you assign to one of them then it creates an internal delegate > object which just forwards to whatever you assigned to the properties. > That means the properties for those methods are mutually exclusive with > the delegate property: you can use one or the other but not both. I've > found that the properties are much easier because they don't require a > full class. > > If that doesn't help then ensure that your view has UserInteractionEnabled > set to true. I think UIImageViews might default to false. > -- > Adam Kemp > [email protected] > (512) 683-6058 > > [email protected] wrote on 08/05/2012 09:06:44 PM: > >> From: Andre Dobroskok <[email protected]> >> To: "[email protected]" <[email protected]> >> Date: 08/05/2012 09:06 PM >> Subject: [MonoTouch] UITapGestureRecognizer can't get to work >> Sent by: [email protected] >> >> Hi All, >> >> I am trying to implement trivial full screen image view in response >> to user clicking a thumbnail. I have written following controller to >> show image: >> public class ImagePreviewController : UIViewController >> { >> private UIImage _image; >> private UIImageView _fullScreenImageView; >> >> public ImagePreviewController(UIImage image) >> { >> _image = image; >> _fullScreenImageView = new UIImageView(UIScreen >> .MainScreen.Bounds); >> _fullScreenImageView.Image = image; >> var gestureRecognizer = new UITapGestureRecognizer(this, new > >> Selector("ImagePreviewController.HandleTap")); >> gestureRecognizer.NumberOfTapsRequired = 1; >> gestureRecognizer.Delegate = new RecognizerDelegate(); >> _fullScreenImageView.AddGestureRecognizer(gestureRecognizer); >> this.View = _fullScreenImageView; >> >> } >> >> [Export("ImagePreviewController.HandleTap")] >> public void Recognized(UITapGestureRecognizer recognizer) >> { >> _image = null; >> this.RemoveFromParentViewController(); >> } >> >> } >> >> And here is how I call it from parent controller: >> _fullScreenImageController = new >> ImagePreviewController(uiImage); >> this.PresentViewController >> (_fullScreenImageController, true, null); > >> >> As result I get nice full size image on the screen, however tapping >> screen has no effect and Recognized method never gets called. >> Obviously I have done something wrong, but I can't figure out what. >> Please help. >> >> P.S. RecognizerDelegate looks like this: >> public class RecognizerDelegate : UIGestureRecognizerDelegate >> { >> public override bool ShouldReceiveTouch(UIGestureRecognizer >> recognizer, UITouch touch) >> { >> return true; >> } >> >> public override bool ShouldBegin(UIGestureRecognizer recognizer) >> { >> return true; >> } >> >> public override bool > ShouldRecognizeSimultaneously(UIGestureRecognizer >> gestureRecognizer, UIGestureRecognizer otherGestureRecognizer) >> { >> return true; >> } >> } > >> >> Cheers, >> Andre_______________________________________________ >> MonoTouch mailing list >> [email protected] >> http://lists.ximian.com/mailman/listinfo/monotouch > > _______________________________________________ > MonoTouch mailing list > [email protected] > http://lists.ximian.com/mailman/listinfo/monotouch -- Nic Wise t. +44 7788 592 806 | @fastchicken | http://www.linkedin.com/in/nicwise b. http://www.fastchicken.co.nz/ mobileAgent (for FreeAgent): get your accounts in your pocket. http://goo.gl/IuBU Trip Wallet: Keep track of your budget on the go: http://goo.gl/ePhKa Earnest: Self-employed? Track your business expenses and income. http://earnestapp.com Nearest Bus: find when the next bus is coming to your stop. http://goo.gl/Vcz1p London Bike App: Find the nearest Boris Bike, and get riding! http://goo.gl/Icp2 _______________________________________________ MonoTouch mailing list [email protected] http://lists.ximian.com/mailman/listinfo/monotouch
