アプリに 6 つのキーを備えた仮想キーボードがあり、全体は で実装された単なるイメージUIImageView
です。各「キー」の画像に対応する正確な x 座標と y 座標を特定し、次のコードを使用してキーボードを操作するユーザーに応答しました。
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch * touch = [[event allTouches] anyObject];
CGPoint point = [touch locationInView:touch.view];
if(point.y < 333 && point.y > 166 && point.x < 72 && point.x > 65)
{
NSLog(@"Key pressed");
}
//Repeat per key...
}
ただし、この方法はあまりスマートではないことに気付きました。電話の視点 (縦から横) を変更したり、デバイスを変更したりすると、x 座標と y 座標が台無しになり、問題が発生するためです。
したがって、x と y の絶対値を指定し、一般的に touchesMoved を使用する代わりの方法を探しています。理想的には、タップされた場合、またはユーザーがボタンの領域に指をドラッグした場合 (たとえ非常にゆっくりでも - 以前はスワイプ検出を使用していましたが、それにはあまりにも多くの時間が必要でした)、特定の設定を持つボタンです。誇張された動き)。
ボタンがタップされた場合、またはタッチイベントがボタンの外で開始されてからボタンに進んだ場合に、そのメソッドを呼び出すようにボタンを設定することは可能ですか? そうでない場合、私の代替手段は何ですか?
ありがとうSE!