UIButton
タッチした後、選択状態のままにしたいのですが。TouchUpInside
イベント中に選択した状態を設定するコードを追加しました。ただし、すばやくタップすると、状態間にわずかな「点滅」が発生します。UImageView
を使用してこれを行うためのいくつかの戦略UITapGestureRecognize
がありますが、より簡単な方法が必要です。
5 に答える
フラッシュの理由は、TouchUpInsideが遅すぎるためです。定義上、ユーザーの指はすでに上がっています。おそらく、代わりに(またはさらに)TouchDownInsideのアクションイベントを実装することを検討する必要があります。
もう1つの可能性は、1つのセグメントでUISegmentedControlを使用し、momentary
NOに設定することです。
これは私の頭のすぐ上にあります
UIBUttonには、通常、強調表示、選択、無効の4つの状態があります。気付いている「点滅」は、強調表示された状態が原因だと思います。ボタンをタップすると、おそらくボタンが強調表示された状態になり、「点滅」します。
強調表示された状態のプロパティを、選択した状態と同じように設定してみてください。
これを試して、
[button sendActionsForControlEvents:UIControlEventTouchUpInside];
[button setSelected:YES];
UIViewを作成すると、ボタンのようになります。ボタンをUIViewのサブビューとして追加し、ボタンのタイトル(UILabel)を同じUIViewのサブビューとして追加するだけです。ボタンを押したら、UIViewとUILabelのプロパティを変更して、押されたボタンのように見せ、これらのプロパティを再度変更するまでビューが押された状態のままになるようにします。
お役に立てれば。
素晴らしい答えをありがとう。UIButtonを処理するのではなく、UIImageViewを使用して、タップジェスチャに基づいてアニメーションブロックで強調表示された状態を設定することになりました。UIButtonジェスチャ処理を説明するよりも、押された状態を実現する方がはるかに簡単になりました。