РЕДАКТИРОВАТЬ Произошел случайный сбой, так что теперь я снова вызываю функцию (отменяя то, что я сказал ниже), без дополнительных изменений ... и, гм, она работает. Я чувствую, что подбрасываю монету.
Я только что это произошло, потому что у меня есть подкласс MKMapView. Я не знаю, подкласс вы это или нет, но по какой-то причине суперфункции Apple, например: - (void) scrollViewDidScroll; называется супер, но не был перехвачен должным образом и пропустил этот вызов.
Когда я удалил «переопределенный» вызов, который был просто вызовом [super scrollView], он начал работать правильно.
Я не знаю, почему код Apple так нарушен (вызов super не имеет такого же эффекта, не переопределяя его), но убедитесь, что вы не подклассифицируете это:
Функции ScrollView
Функции MKMapView ...
или, возможно, с помощью WildCard Gesture Recognizer, очень любезно предоставленного ответом на вопрос, почему представления карты не реагируют на touchesBegan / Moved и т. д. здесь: Как перехватить события касаний в объектах MKMapView или UIWebView? .
Если это не поможет, убедитесь, что у вас нет представления поверх других представлений, неправильные делегаты, xibs расположены и подключены, обычные вещи.