Как объяснено в этом ответе , UIButton или другой UIControl, который является подпредставлением представления прокрутки, будет автоматически реагировать на нажатия, позволяя перетаскивать ручку представления прокрутки.Однако кнопки, которые являются подпредставлениями прокрутки, также будут перемещаться вместе с прокручиваемым контентом, а не оставаться в том же положении на экране, что и прокрутка контента под ними.Я предполагаю, что именно поэтому вы не хотите помещать кнопки в представление прокрутки.
Если это так, вы можете получить желаемое поведение еще одним шагом.Поместите все свои кнопки в UIView, который является подпредставлением представления прокрутки, затем в методе scrollViewDidScroll делегата представления прокрутки установите для frame.origin этого представления значение contentOffset представления прокрутки.Я только что реализовал это в своем приложении, и оно отлично работает, без необходимости делать подклассы или участвовать в цепочке респондента или сенсорных событиях.