Я только что установил XCode 4.2 и iOS5 на свой тестовый iPad сегодня, и у меня возникла та же проблема.
Я мог бы решить проблему, наблюдая за примером кода от Apple с именем ScrollViewSuite. Он содержит приложение с именем TapToZoom, которое показывает правильную реализацию масштабирования пинча (работает в iOS5).
По сути, мне просто нужно было сделать три вещи:
1 - определить константу в начале файла .m контроллера представления (сразу после #import):
#define ZOOM_VIEW_TAG 100
2 - Затем я добавил строку в начале viewDidLoad (или loadView, если вы не используете nib-файл и создаете свой вид с помощью кодирования - как в примере Apple), который устанавливает тег в вашем tableView ( таблица, встроенная в scrollView):
[tableView setTag:ZOOM_VIEW_TAG];
3- Затем, наконец, измените значение, возвращаемое в viewForZoomingInScrollView, с предыдущего «return tableView» на:
return [scrollView viewWithTag:ZOOM_VIEW_TAG];
Как только эти три элемента были на месте, мое масштабирование не только снова заработало, но я понимаю, что теперь оно гораздо более плавное, чем раньше - это означает, что моя предыдущая реализация уже имела недостатки в iOS4.
Я считаю, что если вы будете следовать этим указаниям, ваша проблема должна быть решена. Пожалуйста, скажите мне, если нет.
(технически вы можете установить тег вашего tableView в интерфейсном окне, затем избавиться от шагов один и два и просто дать номер тега, который вы определили на шаге 3, но в долгосрочной перспективе код будет менее читабельным - по крайней мере, на мой взгляд)