Если у вас много кнопок и вы хотите делать с ними модные вещи, я рекомендую использовать layer . Ваш UIView будет обрабатывать интерпретацию, какой слой имел касание (тестирование нажатия) и
ответьте соответственно. Если все, что вы делаете, - это управление целой связкой кнопок с различными эффектами и анимацией, это может быть более простой маршрут.
Что касается плохой инженерии, совсем нет. Если вы посмотрите на соответствующие руководства, вы увидите, что основная анимация и слои действительно требуют тестирования на попадание (хотя это относительно просто), но это намного чище, чем UIView, который делает весь рисунок, и более эффективно, чем многие подпредставления. Он прекрасно проскальзывает между этими двумя подходами.
Полное раскрытие: я просто обдумываю, как лучше всего использовать этот материал сам, но для более сложных интерактивных элементов управления.