2016-06-24 12 views
0

UIView内のUIButtonで構成されるカスタムクラスがここにあります。ボタン自体を選択していないときにUIButtonをハイライト表示

このクラスの目標は、ユーザーがボタンフレーム自体よりもボタンを選択するための大きな領域(UIView)を持つことができるようにすることです。

ユーザーがビューをタップすると、強調表示された画像が表示されます。しかし、問題はそうではありません。

私は、たとえば、この問題に多くの可能な解決策を読んだ:

呼び出し:[btnObject sendActionsForControlEvents:UIControlEventTouchUpInside] しかしこれは、ボタンのハイライトを変更しませんでした。

また、button.highlighted = YESを設定してみました。 しかし、それはどちらもうまくいきませんでした。

さまざまな状態の画像が正しく設定されています(ノーマルとハイライト)。私はそれを確信しています。

また、ハイライトの不足を除いて機能が優れているため、ジェスチャー認識機能が適切に機能しています。

私はこの一見非常に単純な仕事をやり遂げるために行う必要がある特別なものが欠けているか誰かが知っていますか?確かにそれは何度もされている。

ありがとうございました

+1

これをお読みください http://stackoverflow.com/questions/808503/uibutton-making-the-hit-area-larger-than-the-default-hit-area –

+0

コードを投稿してください。私はむしろあなたが間違っていたことを推測しようとするよりも、あなたのコードを見たいと思います。 – Armin

答えて

0

あなたは正しい軌道に乗っていました。 -[UIButton setHighlighted:]はただのフラグです。あなたがする必要があるのは、highlightedプロパティを変更した直後に、そのボタンでsetNeedsDisplayと呼ぶことです。

0

私は少し前に問題を解決しましたが、ケビン・ローの答えがうまくいくかどうかは分かりません。

しかし何らかの理由で、UITapGestureは、ビューのトランジションとしてハイライトボタンでうまく動作しません(これは、setNeedsDisplayを呼び出さなかったためかもしれません)。作業を終了したジェスチャーは、最小持続時間が0.0秒のUILongPressGestureでした。

関連する問題