Я использовал UIScrollView
раньше, и теперь я использую его, и у меня никогда не было проблемы. Теперь я добавляю его в старое приложение, и, хотя он работает так, как ожидалось (я могу посмотреть содержимое, прокрутить его пальцем, все границы и размеры настроены правильно, поэтому в содержимом нет пустого места и т.д..) Я просто не могу заставить scrollToRectVisible
работать. Я даже упростил вызов, чтобы он просто переместился в положение 0,0:
[scrollView scrollRectToVisible:CGRectMake(0, 0, 10, 10) animated:YES];
или переместите его на 0,200:
[scrollView scrollRectToVisible:CGRectMake(0, 200, 10, 10) animated:YES];
Я даже сделал быстрое приложение, чтобы проверить это, и я могу заставить scrollRectToVisible
работать там, как я ожидаю. Но в моем старом приложении я не могу заставить ничего сделать.
Я могу прокрутить scrollView с помощью setContentOffset:
, но это не то, что я хочу.
Этот scrollView и его содержимое определяются в nib by IB и используются с IBOutlet. Единственный код, который я использую в своем приложении для обработки прокрутки, -
[scrollView setContentSize:CGSizeMake(scrollView.contentSize.width, imageView.frame.size.height)];
(меня интересует только вертикальная прокрутка, а не горизонтальная).
Кто-нибудь сталкивался с такой проблемой?
Я сравнивал атрибуты scrollView в обоих приложениях, и они идентичны.
ДОПОЛНЕНИЕ:
Мой кадр scrollViews: 0.000000 0.000000 480.000000 179.000000
My scrollViews contentSize: 0.000000 324.000000
Он по-прежнему действует как прямоугольник, который я хочу прокрутить до уже видимого, и прокрутка не требуется. Не уверен, что это то, что происходит. Это просто самое страшное. Кажется, такая легкая вещь для решения...
ДОБАВЛЕНИЕ № 2:
Вот как я делаю это без scrollRectToVisible
:
CGPoint point = myRect.origin;
if (![clefScrollView pointInside:point withEvent:nil]) {
point.x = 0;
if (point.y > clefScrollView.contentSize.height - clefScrollView.bounds.size.height)
point.y = clefScrollView.contentSize.height - clefScrollView.bounds.size.height;
[clefScrollView setContentOffset:point animated: YES];
}
Все остальное в этом scrollView работает так, как ожидалось, но scrollRectToVisible
. ЗАЧЕМ?!? Любые дикие догадки?