touchesBeganからperformSelectorによって呼び出される独自のメソッドにタッチとイベントを渡す必要があります。NSInvocationを使用して引数をパッケージ化していますが、ターゲットに問題があります。
このようにする理由は、他のスクロールイベントを処理できるようにするためです。
これが私のコードです:
- (void) touchesBegan: (NSSet *) touches withEvent: (UIEvent *) event
{
UITouch *theTouch = [touches anyObject];
switch ([theTouch tapCount])
{
case 1:
NSInvocation *inv = [NSInvocation invocationWithMethodSignature: [self methodSignatureForSelector:@selector(handleTap: withEvent:)]];
[inv setArgument:&touches atIndex:2];
[inv setArgument:&event atIndex:3];
[inv performSelector:@selector(invokeWithTarget:) withObject:[self target] afterDelay:.5];
break;
}
}
handleTapは次のように定義されます。
-(IBAction)handleTap:(NSSet *)touches withEvent:(UIEvent *)event
{
[super touchesBegan:touches withEvent:event];
}
私の問題は、コンパイルすると警告が表示されることです。
'CategoryButton'多くは'-target'に応答しません
実行すると、次のようにクラッシュします。
-[CategoryButtonターゲット]:認識されないセレクターがインスタンス0x5b39280に送信されました
私は、ターゲットがここで何をしようとしているのか、そしてそれがどのように設定されているのかを本当に理解していないことを認めなければなりません。
ご協力いただきありがとうございます。