Что делает метод hitTest?
Суть
hitTest(_:with:) отвечает на вопрос «какая view должна получить касание в этой точке». UIKit вызывает его у UIWindow, и дальше метод рекурсивно спускается по дереву: для каждой view проверяется point(inside:with:), затем её subviews перебираются в обратном порядке (последняя добавленная — верхняя на экране — проверяется первой). Возвращается самая глубокая view, содержащая точку; она становится первым responder'ом для касания.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep