Re: [iPhone] Preprocessing events sent to UITableView
Re: [iPhone] Preprocessing events sent to UITableView
- Subject: Re: [iPhone] Preprocessing events sent to UITableView
- From: glenn andreas <email@hidden>
- Date: Sat, 05 Jun 2010 19:09:48 -0500
On Saturday, June 05, 2010, at 05:51PM, "WT" <email@hidden> wrote:
>I need to hijack the set of touch events sent to a UITableView instance prior to allowing the table to process those events.
>
>I have a custom UIView, of which the table view is a subview, and I override -hitTest:withEvent: there (in the custom view) to return self, thereby preventing the table from receiving those touches.
>
>Since my custom view does not implement any of the four event-handling methods (-touchesBegan:withEvent:, etc), the view controller managing my custom view gets the touches, through the regular traversal of the responder chain.
>
>There, in the view controller event-handling methods, I determine whether or not I need to consume the events. If not, I need to send them back to the table view for it to do its normal event handling (for instance, scrolling).
>
>All of the above works fine, except...
Probably not as "fine" as you expect - UIViews are not designed to support UIEvents forwarded to them except under very controlled conditions. From <http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/EventHandling/EventHandling.html#//apple_ref/doc/uid/TP40007072-CH9-SW17>:
"The classes of the UIKit framework are not designed to receive touches that are not bound to them; in programmatic terms, this means that the view property of the UITouch object must hold a reference to the framework object in order for the touch to be handled. If you want to conditionally forward touches to other responders in your application, all of these responders should be instances of your own subclasses of UIView."
That document contains a number of suggestions on how to approach those sort of design issues...
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden