0

たとえば、10個のUIButtonが横一列に配置されたカスタムキーボードを作成しています。ボタンは画面の幅にまたがっており、同じサイズであり、互いに面一に配置する必要があります。

また、ボタンの列に沿って指をスライドさせて、ユーザーがボタンを選択できるようにしたいと思います。選択したボタンのプレビューが画面の他の場所に表示されます。ユーザーが行に沿って指を動かすと、プレビューが更新されます。ユーザーが選択に満足したら、指を離して選択を確認します。

試してみるのは明らかなことですが、UICountrolEventDragExitまたはUIControlEventDragOutsideを使用して前のボタンのアクションを削除し、UIControlEventTouchUpInsideを使用して現在のボタンをアクティブにして前のタッチイベントを強制終了します。ただし、UICountrolEventDragExitおよびUIControlEventDragOutsideは、ユーザーが指定されたボタンから十分に離れた場所にドラッグした場合にのみアクティブになります。私のボタンは互いに面一になっている必要があるので、これは遠すぎて私には十分ではありません。

提案?

4

3 に答える 3

2

ボタンの表示に使用されるビューでのユーザー操作を無効にし、含まれているビューを介してすべてのタッチを追跡します。これは、Appleのキーボードコードの動作と似ています。

(または、単一のキーボードビューですべてのボタンを直接描画することもできますが、drawRect:向きの変更中は適切に表示されません)

于 2010-08-08T07:01:56.543 に答える
0

10ボタンの「キーパッド」が必要な場合は、UISegmentedControlの使用を検討します。それぞれ独自のキーを持つ10個のセグメントで1つを作成し、次のようにプログラムで選択されたキーを受け取ることができます。

 segmentSelected = mySegmentControll.selectedSegmentIndex;
于 2010-08-08T06:16:41.850 に答える
0

呼び出し

-(void)touchesBegan:(NSSet )touches withEvent:(UIEvent)event;

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;

10個のUIImage(UIButtonではない)を表示するビューでも適切に機能します。

于 2010-08-16T08:11:24.807 に答える