<UIKit/UIGestureRecognizerSubclass.h>
をインポートし、シミュレートする必要がある状態のシーケンスに適切に応じてstate
プロパティを設定します。これにより、追加されたターゲット/アクションのペアが呼び出されます。手動で状態を設定するたびに、メッセージがディスパッチされるように実行ループを実行させる必要があります。
UILongPressGestureRecognizer
については
、ジェスチャーの実際の「タッチ、ホールド、ドラッグ、リリース」配列に見られるような状態の正しい順序を取得するために、私はviewDidLoad
内部UIViewController
サブクラスに次のコードを書いた:。
UILongPressGestureRecognizer *r = [[UILongPressGestureRecognizer alloc] init];
[self.view addGestureRecognizer:r];
[r addTarget:self action:@selector(recognize:)];
r.state = UIGestureRecognizerStateBegan;
[[NSRunLoop mainRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01]];
r.state = UIGestureRecognizerStateChanged;
[[NSRunLoop mainRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01]];
r.state = UIGestureRecognizerStateEnded;
[[NSRunLoop mainRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.01]];
[r reset];
私は、これは(あなたがreset
を呼び出すために、その後望むかもしれないが、私は私のテストでそうやないこととの間に差は認められません)生産コードでは危険だろうと想像が、あなたのユースケースは、ターゲットということを確認するためのテストを自動化されている場合アクションが正しく設定されていれば、これはあなたのニーズを満たすかもしれません。
「メッセージをオブジェクトに送る」とはどういう意味ですか? – iProgrammed
@iプログラム説明を明確にするために私の言い添えられた質問をご覧ください。 –