0

私のプロジェクトでは、textField の右側にアイコン イメージを取得するために UITextField をカスタマイズしています (ブラウザのブックマーク アイコンのように)。

機能は、1) textField は編集可能であってはなりません

2) 最初は黒い色の右のアイコン。

3) ユーザーがクリックを開始すると、アイコン イメージがオレンジ色に変わります。

4) ユーザーが離すと、アイコン画像は元の状態 (黒色) に変わります

最初の 2 点が実装されました。3 番目のポイントでは、UIControl::beginTrackingWithTouch メソッドをオーバーライドし、アイコンの色をオレンジに変更しました。

最後のポイントを実装するためにあなたの助けを求めます。黒のイメージを変更するためのリリース イベントを取得できません。touchesEndedを使用してみましたが、これは、ユーザーがコントロールから出たときにリリースが完了したときにのみ呼び出されます。

ユーザーのクリックがいつ終了したかを特定する方法を教えてください。

ありがとうございます。

4

2 に答える 2

0

IIRC、ユーザーはブックマーク アイコンをクリックしたままにしますか? はいの場合は、そのために UIButton を使用できます。

UIImage *normalImage = [UIImage imageNamed:@"normal_image.png"];
UIImage *touchedImage = [UIImage imageNamed:@"touched_image.png"];

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, 50, 50); // put your frame here

[button setImage:normalImage forState:UIControlStateNormal]; // Normal state image
[button setImage:touchedImage forState:UIControlStateHighlighted]; // Touched state image
于 2012-06-25T10:24:21.530 に答える
0

以下のメソッドをオーバーライドします。

  • (void)endTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)イベント;
  • (void)cancelTrackingWithEvent:(UIEvent *)イベント;
于 2012-06-25T10:26:56.067 に答える