У меня была такая же проблема, и я решил ее с помощью следующих шагов:
- Создание UIView.
- Создание UITapGestureRecognizer
- Добавьте UITapGestureRecognizer в UIView для обработки касаний.
- Создание кнопки UIB.
- Отключить взаимодействие с пользователем (
isUserInteractionEnabled = false
) на кнопке.
- Добавление кнопки UIB в качестве подвида UIView.
- В селекторе с касанием UITapGestureRecognizer обработайте вызов UIButton touchesUpInside.
- Добавьте первый UIView в UIScrollView.
- Убедитесь, что содержимое задержки UIScrollView касается
delaysContentTouches = true
UIScrollView должен теперь иметь возможность плавного увеличения, и вы можете реагировать на ваши кнопки.
Вы можете вообще пропустить кнопку, если хотите, и просто обработать нажатие в распознавателе жестов. Я должен был сделать это как описано выше, потому что кнопки были пользовательскими субклассами и включали в себя множество дополнительных пользовательских функций рендеринга и функциональности.