サブクラスである とグラデーションボタンUIScrollView
を含む があります。グラデーション ボタンは、ユーザーがタップしたかどうかに応じて異なる方法で描画されます (ハイライトを示します)。UIButton
UIControl
ボタンはスクロール ビュー内で定期的に動作しますが、グラデーション ボタンはそうではありません。ボタンをタップすると、すぐに再描画され、強調表示されていることが示されます。ただし、グラデーション ボタンはすぐには反応しません。タップを0.5秒ほど押したままにすると、再描画されます。
スクロール ビューの外では、グラデーション ボタンは期待どおりに動作することに注意してください。
UIScrollView
代わりにスクロールするかどうかを決定するために、イベントを転送する前に a がしばらく待機するという事実に関連しているようです。
私の質問は - 何がUIButton
違うのですか? グラデーションボタンでこの動作を模倣するにはどうすればよいですか? それとも、側の特別扱いUIScrollView
ですか?
編集:問題は描画に関連しているようです。タッチ イベントは適切に呼び出されますが、2 回の呼び出しではなく、drawRect:
1 回しか取得できません。runloop に強制的にイベントを処理させ、 を呼び出すと[CATransacation flush]
、2 つの呼び出しdrawRect:
が行われますが、目に見える変化はありません。