UIScrollView работает как ожидалось, но scrollRectToVisible: ничего не делает

Я использовал 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

Это все еще действует как реагирование, я хочу прокрутить к, уже видимо, и никакая прокрутка не необходима. Не уверенный, если, именно это происходит. Это - просто darnest вещь. Походит на такую легкую вещь решить...

ПРИЛОЖЕНИЕ № 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. ПОЧЕМУ?!? Какие-либо произвольные предположения?

61
задан 31 May 2013 в 21:06

1 ответ

Для меня проблема состояла в том, что ограничение в подпредставлении не было явным. Проверьте, что каждое ограничение в Вашем содержании установлено, даже если Вам не нужно оно, по-видимому, для расположения.

0
ответ дан 31 October 2019 в 15:05

Другие вопросы по тегам:

Похожие вопросы: