2011-01-23 5 views
2

Я не совсем уверен, почему это не работает, надеюсь, вы можете помочь мне найти пропавший кусок. У меня есть UIScrollView с поддержкой пейджинга. Я использую его для бокового прокрутки в учебнике. У меня есть кнопка, которая при нажатии должна прокрутить пользователя до начала учебника. Сначала я попробовал использовать кадр вида прокрутки в качестве прямоугольника для прокрутки, потому что CGRect должен представлять первую страницу. Я пробовал пару разных CGRects, но ничего не получилось.UIScrollView scrollRectToVisible ничего не делает

- (IBAction) touchedButtonReturnToBeginning:(id)sender { 
    // I've tried several CGRect's, none of which cause the UIScrollView to move. 
    // CGRect beginning = self.containerScrollView.frame 
    // CGRect beginning = self.containerScrollView.bounds; 
    CGRect beginning = CGRectMake(0, 44, 1, 1); 
    [self.containerScrollView scrollRectToVisible:beginning animated:YES]; 
} 

Я проверил, что self.containerScrollView подключен в моем xib, а также touchedButtonReturnToBeginning действие связано с моей кнопки. Я использовал свой отладчик, чтобы выполнить этот метод, поэтому я подтвердил, что он вызван. Все переменные установлены соответствующим образом, но когда я вызываю scrollRectToVisible, прокрутка просто ничего не делает.

Любые идеи?

+0

Чтобы уточнить, когда вы касаетесь кнопки для прокрутки, вызывается 'touchhedButtonReturnToBeginning' ** **, правильно? – aqua

+0

Да, я поставил NSLog в методе, и я использовал отладчик для перехода, и я вижу, что это происходит. –

+0

Вы проверили свойство 'contentSize' вашего' UIScrollView'? Когда эта проблема поражает меня, это обычно вызвано недопустимым (например, '{0,0}') размером содержимого в представлении прокрутки. – Jay

ответ

11

Я не знаю, почему это не сработает, но вы пробовали [self.containerScrollView setContentOffset:CGPointZero animated:YES]?

+3

Этот DID работает. Почему, черт возьми, не scrollRect работать? Это так странно .. –

+0

действительно странно;) – user170317

5

Чтобы сделать scrollRectToVisible, проверьте свой self.containerScrollView.contentSize. Он должен быть достаточно большим :)

+0

Это было '0 x 0', теперь я установил его равным его фрейму, но он все равно не работает. –

+0

Размер содержимого должен быть больше, чем кадр прокрутки. Другим способом не только scrollRectToVisible не будет работать, но и сама прокрутка ничего не сделает. –

+0

Не следует ли устанавливать его автоматически? А если нет, то какая формула я должен установить? Какова взаимосвязь между размером контента и его границами или рамкой? –

Смежные вопросы