私はUIView
というカスタムを持っています。ビューにタップ(指の離し)を検出するためにビューにUITapGestureRecognizer
を追加しました。 。これは正常に動作します。タップしている間にUIViewの外観を変更します(しかしまだリリースされていません)
しかし、(UIButtonの動作と同様に)ビュー上で指が押されている間に、UIViewの外観を変更したい(少し暗くしたい)。
どうすればよいですか?
私はUIView
というカスタムを持っています。ビューにタップ(指の離し)を検出するためにビューにUITapGestureRecognizer
を追加しました。 。これは正常に動作します。タップしている間にUIViewの外観を変更します(しかしまだリリースされていません)
しかし、(UIButtonの動作と同様に)ビュー上で指が押されている間に、UIViewの外観を変更したい(少し暗くしたい)。
どうすればよいですか?
外観を-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
に変更してください。
明確にするために、タップジェスチャ認識装置は、指を離すと起動します。そのため、この目的では動作しません。指が下がったときと終わったときを知るには、下位レベルの 'touches::withEvent:'メソッドを実装する必要があります。 – Costique
@Costiqueと@fannheyward:ありがとう、これらのメソッドは素晴らしい動作します。しかし、ただ一つのことを確認するだけです:画面上をすばやくタップすると(つまり、画面に非常に短く触れるなど)、 'touchesEnded:'は 'touchesBegan:'の後に非常に素早く送信されます。より暗い「下」の色を表示する。私はこの問題を回避するために、2つのメソッド呼び出しの間の時間を測定しました。時間が十分に短い(1秒未満)場合、私は 'performSelector:withObject:afterDelay:'を使って通常の色への戻りを遅らせる。これは正常に動作します。しかし、これが最善のアプローチですか? – Enchilada
@Enchilada私はそれがOKだと思います。遅延は、アニメーションの持続時間と同じくらい短くすることができます。 – Costique
UIButtonのサブクラス化はオプションではありませんか? – johnluttig