You still need that timer. Especially for non 3.2. If you get your touchEnded before your timer is reached it was just a tap.
Scott Sent from my iPad On Jun 6, 2010, at 8:54 AM, Alejandro Marcos Aragón <alejandro.ara...@gmail.com> wrote: > Hi Matt, > > Thanks for your answer. Still, I don't think that solves the problem. It is > not just the difference in time what matters. If the user just taps the > button, a UISegmentedControl appears, thus this target is in touch up inside. > Now, if the user taps and holds, another type of control appears after a > delay so this has to be done in touch down (because the user is still > holding), and the user should stop holding the button when the new control > appears. > > In your approach, everything is done in the userDidTouchUp, but the tap and > hold control should appear even if the user didn't stop holding. If you have > a better solution, please let me know, again thanks for your answer. > > aa > > > On Jun 6, 2010, at 9:35 AM, Matt Neuburg wrote: > >> On Sat, 05 Jun 2010 21:34:48 -0700, Matt Neuburg <m...@tidbits.com> said: >>> On Fri, 4 Jun 2010 21:16:50 -0500, Alejandro Marcos Arag?n >>> <alejandro.ara...@gmail.com> said: >>>> I've been trying to detect touch and hold vs touch on a subclass of >>>> UIButton. >>> >>> I think you want to imitate Listing 3-3 of Event Handling in the iPhone >>> Application Programming Guide, handling the touches yourself. m. >> >> Okay, forget that answer. :) If the difference between touch and >> touch-and-hold is just a matter of how long the time is between the touch >> down and the touch up, then all you have to do is measure that time: >> >> - (void) userDidTouchDown: (id) sender event: (UIEvent*) e { >> downtime = [e timestamp]; // downtime is an ivar or global >> } >> >> - (void) userDidTouchUp: (id) sender event: (UIEvent*) e { >> double diff = [e timestamp] - downtime; >> if (diff < 0.2) NSLog(@"tap"); >> else NSLog(@"tap and hold"); >> } >> >> Obviously Touch Down is targeted at userDidTouchDown:. I think you might >> want to target both Touch Up Inside and Touch Up Outside at userDidTouchUp:. >> >> If you mean something more complex and profound by the difference between >> touch and touch-and-hold, you can probably figure it out from the UIEvent, >> so you'd do some more complex and profound form of event tracking here. >> >> Anyway, I apologize for being hasty and not very clear before. What I was >> really trying to say was that all your addition and removal of target-action >> pairs seems unnecessary. >> >> m. >> >> -- >> matt neuburg, phd = m...@tidbits.com, <http://www.tidbits.com >> > > _______________________________________________ > > Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) > > Please do not post admin requests or moderator comments to the list. > Contact the moderators at cocoa-dev-admins(at)lists.apple.com > > Help/Unsubscribe/Update your Subscription: > http://lists.apple.com/mailman/options/cocoa-dev/scottandrew%40roadrunner.com > > This email sent to scottand...@roadrunner.com _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com