Я использовал 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 и его содержимое определены в кончике IB и используются с IBOutlet. Единственный код, который я использую в своем приложении для обработки scrollView, это
[scrollView setContentSize:CGSizeMake(scrollView.contentSize.width, imageView.frame.size.height)];
(меня интересует только вертикальная прокрутка, а не горизонтальная).
Кто-нибудь сталкивался с такой проблемой?
Я сравнил атрибуты scrollView в обоих приложениях, и они идентичны.
ДОПОЛНЕНИЕ:
Мой кадр scrollViews: 0,000000 0,000000 480,000000 179,000000
Мой scrollViews contentSize: 0.000000 324.000000
Он по-прежнему действует так, как прямоугольник, на который я хочу перейти, уже виден, и прокрутка не требуется. Не уверен, что это то, что происходит. Это просто самая ужасная вещь. Кажется, что это легко решить ...
ADDENDUM # 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
. ЗАЧЕМ?!? Какие-нибудь дикие догадки?