【发布时间】:2011-08-07 14:07:30
【问题描述】:
我正在尝试一些代码来探测 UI 以查看其结构。作为其中的一部分,我正在对嵌入在屏幕底部的 UIToolbar 中的 UISegmentedControl 进行 hitTest。我有这样的结构:
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。
【问题讨论】:
-
您是否尝试过可视化该点以确保它指向 UISegmentedControl 而不是 UIToolbar?
-
是的,我已经排除了相关框架等的坐标,一切看起来都正确。
标签: objective-c ios hittest