Мне нужно внимательно следить за масштабом представления прокрутки, чтобы я мог обновлять элементы представления контента (подматрица, управляющая несколькими CALayers) в соответствии с анимированным увеличением прокрутки.
В iOS 3.1 все работает так, как ожидалось, я использую zoomToRect: анимированный: и сообщение scrollViewDidScroll: сообщение UIScrollViewDelegate вызывается повторно во время анимации, позволяя мне обновлять элементы subview в соответствии с фактическое масштабирование.
Тот же самый код в iOS 4.0 не показывает того же поведения. Когда я вызываю zoomToRect: animated:, делегаты (scrollViewDidScroll: и scrollViewDidZoom) получают только вызов один раз, что делает мои дочерние элементы деинхронизированными до завершения анимации. Фактически, подэлементы сразу же прыгают, а затем увязаны анимацией масштабирования, пока все не окажется в правильном месте. Это как если бы анимация не собирала модификации на CALayers subviews.
Я пробовал анимацию вручную с блоками анимации, но ситуация такая же, никаких прогрессивных вызовов обратного вызова. Я также пробовал KVO, но мне непонятно, как я буду использовать анимацию, управляемую UIScrollView.
Есть ли обходной путь для iOS 4, который позволил бы мне подтолкнуть значение шкалы к моим подзонам, когда анимированная шкала UIScrollView?