2

サブクラスである とグラデーションボタンUIScrollViewを含む があります。グラデーション ボタンは、ユーザーがタップしたかどうかに応じて異なる方法で描画されます (ハイライトを示します)。UIButtonUIControl

ボタンはスクロール ビュー内で定期的に動作しますが、グラデーション ボタンはそうではありません。ボタンをタップすると、すぐに再描画され、強調表示されていることが示されます。ただし、グラデーション ボタンはすぐには反応しません。タップを0.5秒ほど押したままにすると、再描画されます。

スクロール ビューの外では、グラデーション ボタンは期待どおりに動作することに注意してください。

UIScrollView代わりにスクロールするかどうかを決定するために、イベントを転送する前に a がしばらく待機するという事実に関連しているようです。

私の質問は - 何がUIButton違うのですか? グラデーションボタンでこの動作を模倣するにはどうすればよいですか? それとも、側の特別扱いUIScrollViewですか?

編集:問題は描画に関連しているようです。タッチ イベントは適切に呼び出されますが、2 回の呼び出しではなく、drawRect:1 回しか取得できません。runloop に強制的にイベントを処理させ、 を呼び出すと[CATransacation flush]、2 つの呼び出しdrawRect:が行われますが、目に見える変化はありません。

4

0 に答える 0