У меня проблема с функцией zoomToRect.У меня есть представление прокрутки, которое содержит представления.Когда пользователь нажимает на вид, я запускаю увеличение.Это работает за исключением того, что, когда позиция y кадра выше 2389, функция увеличения масштаба до соответствующего кадра в позиции 2389 y.
Вот код, который я использую:
-(void) launchZoomInAnimationInView:(UIView*) cellView; {
// Get the rect corresponding to the clicked cell
CGRect zoomedFrame = [self.zoomScrollView convertRect:cellView.frame fromView:cellView.superview];
// Zoom to the rect
[self.zoomScrollView zoomToRect:zoomedFrame animated:YES];
// Display for debugging
[ViewToolkit showFrame:zoomedFrame inView:self.zoomScrollView];
NSLog (@"Zoom on frame %@ with contentSize %f", NSStringFromCGRect(zoomedFrame), self.zoomScrollView.contentSize.height);
}
Функция showframe показывает мне, что рассчитанная мной рамка находится в правильном положении (я отображаю красный прямоугольник на экране).
NSLog показывает, что размер контента достаточно велик:
Увеличение кадра {{100, 3021.6}, {230.4, 307.2}} с содержимым размером 10337.759766.
В конце анимации я отображаю границы scrollView, и он дает мне {{100, 2389 }, {768, 1024}} вместо {{100, 3021,6 }, {768, 1024}} Я действительно не понимаю.Для любого значения выше 2389 я всегда получаю конечный кадр с позицией 2389 г.И это значение не меняется, когда contentSize отличается.
Обратите внимание, что перед запуском этой функции я не менял zoomScale scrollView.