Я экспериментирую с некоторым кодом, который исследует интерфейс, чтобы увидеть его структуру. В рамках этого я делаю hitTest для UISegmentedControl, который встроен в UIToolbar внизу экрана. У меня есть такая структура:
UIToolbar
UISegmentedControl
UISegment
...
Я получаю центр UISegmentedControl и проверяю его, как это:
UIView *view = // code which gets a reference to the UISegmentedControl.
frameInWindow = [view.window convertRect:view.frame fromView:view.superview];
CGPoint locationInWindow = CGPointMake(
frameInWindow.origin.x + 0.5 * frameInWindow.size.width,
frameInWindow.origin.y + 0.5 * frameInWindow.size.height);
UIView *target = [view.window hitTest:locationInWindow withEvent:nil];
Я проходил это много раз, и я не могу понять, почему он устанавливает target
на UIToolbar вместо UISegmentedControl. Я бы ожидал, что целью будет такой же контроль. Или какой-нибудь UIView внутри сегментированного элемента управления.