Кнопки являются первым респондентом, и их uitouchup или другое событие будут срабатывать первыми и не будут распространяться на задний план.
Вы можете создать подкласс для ваших кнопок и сделать, чтобы касания начинались / перемещались / заканчивались делать:
[self.nextResponder touchesBegan:touches withEvent:event];
чтобы ваш вид поддержки обрабатывал все их события для них, и в этом случае ваш код жеста должен работать.