All inherited responder objects UIResponder can receive and process events. In chronological order, the most suitable view is found first, and then the view's touches method is called. The default behavior of these methods is to pass the event up the response chain and hand the event over to the previous responder for processing until a view can handle the response or discard it. This is a top-down and then bottom-up process. 1. Event Generation
2. Event delivery The event is first passed from the parent control to the child control (UIApplication->window->find the most suitable view to handle the event). If the parent view cannot receive touch events, then the child view cannot receive touch events either. 2.1 How to find the most appropriate view to handle events Determine whether keywindow accepts events Determine whether the incident happened to you Traverse the sub-controls in the sub-view array from back to front, repeating the previous steps 1 and 2 If there is no suitable child control, then you are the most suitable control 2.2 Find the most suitable view bottom-level analysis There are two important methods:
The view will call the hitTest:withEvent: method, which will call the pointInside:withEvent: method to determine whether the touch point is in the coordinate system of this view. If it is, the event will be distributed to the child views of this view. Then each child view will repeat the above steps until a suitable view is found at the top level. 3. Response to incidents The event response will start from the most appropriate view at the bottom layer, and then respond to touch events layer by layer along the chain found in the previous step. By default, the touch event will be passed to the upper layer. If it reaches the view of the viewcontroller, it will be passed to the viewcontroller. If the viewcontroller cannot handle it, it will be passed to UIWindow. If UIWindow cannot handle it, it will be passed to UIApplication. If UIApplication cannot handle it, it will be passed to UIApplicationDelegate. If UIApplicationDelegate cannot handle it, it will discard the event. |
>>: Aiti Tribe Stories (34): Self-cultivation of a full-stack engineer
We have seen that many popular short video accoun...
The truth behind the disappearance of traffic div...
In a recent survey conducted by consumer insights...
There are two types of advertisements for WeChat ...
This article contains: 1) Overview of the direct-...
In recent years, information flow ads have become...
Today, Apple released the official version of mac...
How much does it cost to attract investors for th...
Do you have such feeling? When I was chatting wit...
Recommendations for places to taste tea in Jiangn...
A detailed analysis of the advantages of WeChat M...
In the past decade or so, with the rapid developm...
Source code introduction This example is an Andro...
[[152434]] With Youku Tudou handing over to Aliba...
The most taboo for novices learning Baidu bidding...