1

通常のUIButtonがたくさんあり、押すとターゲットが表示されます。ただし、スワイプしたときにも機能し、touchesbeginまたはtouchesmoved/touchesendedをアクティブにします。スワイプ可能な単語パズルのようなものを作成したいので、それが必要です。これは、タッチアッププレスも受け取ります。ただし、スワイプシリーズは、タッチがself.viewで始まる場合にのみ機能しますが、ボタン自体では機能しません。押すだけでタッチイベントは登録されません。

UIButton* Butt = [UIButton buttonWithType:UIButtonTypeCustom];
Butt.frame= CGRectMake(0, -500, 63 , 63);
[Butt addTarget:self action:@selector(clickWord:)forControlEvents:UIControlEventTouchUpInside];
Butt.userInteractionEnabled= YES;
[aSubview addSubview:Butt];

誰か助けてもらえますか?UIButtonをサブビューに配置するのは面倒かもしれませんが、要素を構造化された方法で保持するためにそれを実行したいと思います。すべてが直接self.viewにあるわけではありません。

ボタンをサブクラス化しようとしましたが、役に立ちませんでした

サブクラス化コード:

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
  [super touchesBegan:touches withEvent:event];
  [self.nextResponder touchesBegan:touches withEvent:event];
  // This is where the touch is passed on
 }

 - (void) toouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
  [super touchesMoved:touches withEvent:event];
  [self.nextResponder touchesMoved:touches withEvent:event];
 // This is where the touch is passed on
}

- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
  [super touchesEnded:touches withEvent:event];
  [self.nextResponder touchesEnded:touches withEvent:event];
  // This is where the touch is passed on
}
4

2 に答える 2

1

ゲームをプログラミングしている場合、標準のUI要素の代わりにCocos2Dのようなフレームワークを使用する価値があるでしょうか?

しかし、トピックに戻ります。ボタンの上に画面サイズの非表示のUIViewを作成してスワイプをチェックし、スワイプがない場合は、「ユーザーインタラクションを有効にする」をオフに切り替えます。

それ以外の場合は、ユーザーがタッチした場所とこのビューでユーザーが行ったことを確認するマトリックスを作成し、このデータをバックグラウンドで使用します。そうすれば、ボタンももう必要ありません...

それが少し役立つことを願っています。

編集:標準のUI要素を、開発された目的に近いことを何もしないように変更するのは奇妙に感じます。たぶん、UIControl自体をサブクラス化することがあなたが望むものになるでしょうか?簡単なことではありませんが、おそらくあなたに最適なソリューションですか?

于 2013-01-22T13:28:18.617 に答える
0

タッチが応答しているように見えますが、uibuttonの範囲に到達すると、インターセプトされます。

于 2013-02-04T23:08:31.163 に答える