0

我正在尝试一些代码来探测 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。

4

1 回答 1

0

文档说:

“此方法忽略隐藏、禁用用户交互或 alpha 级别小于 0.01 的视图对象。此方法在确定命中时不会考虑视图的内容。因此,即使指定点位于该视图内容的透明部分。”

是否启用了与您的分段控件的用户交互?

于 2011-08-07T16:45:30.363 回答