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経験しましたが、UISegmentedControl ではなく UIToolbar に設定される理由がわかりません。ターゲットが同じコントロールであると予想していました。または、セグメント化されたコントロール内のいくつかの UIView。

4

1 に答える 1

0

ドキュメントは言う:

「このメソッドは、非表示のビュー オブジェクト、ユーザー インタラクションが無効になっているビュー オブジェクト、またはアルファ レベルが 0.01 未満のビュー オブジェクトを無視します。このメソッドは、ヒットを判断するときにビューのコンテンツを考慮しません。したがって、ビューは、指定されたポイントは、そのビューのコンテンツの透過部分にあります。」

セグメント化されたコントロールとのユーザー インタラクションは有効になっていますか?

于 2011-08-07T16:45:30.363 に答える