Прокрутка UIScrollView для насыщения программно

Как я могу сделать a UIScrollView прокрутить к нижней части в рамках моего кода? Или более универсальным способом, к какой-либо точке подпредставления?

287
задан Ahmad F 6 August 2019 в 01:50
поделиться

3 ответа

Вы можете использовать функцию setContentOffset: animated: в UIScrollView для прокрутки к любой части представления содержимого. Вот код, который будет прокручиваться вниз, если ваш scrollView - self.scrollView :

CGPoint bottomOffset = CGPointMake(0, self.scrollView.contentSize.height - self.scrollView.bounds.size.height + self.scrollView.contentInset.bottom);
[self.scrollView setContentOffset:bottomOffset animated:YES];

Надеюсь, это поможет!

611
ответ дан 23 November 2019 в 01:46
поделиться

Если Вы так или иначе изменяете scrollView contentSize (напр. добавьте что-то к stackView, который является внутри scrollView), необходимо звонить scrollView.layoutIfNeeded() перед прокруткой, иначе это ничего не делает.

Пример:

scrollView.layoutIfNeeded()
let bottomOffset = CGPoint(x: 0, y: scrollView.contentSize.height - scrollView.bounds.size.height + scrollView.contentInset.bottom)
if(bottomOffset.y > 0) {
    scrollView.setContentOffset(bottomOffset, animated: true)
}
0
ответ дан 23 November 2019 в 01:46
поделиться

Я также нашел другой полезный способ сделать это в случае, если вы используете UITableview (который является подкласс UIScrollView):

[(UITableView *)self.view scrollToRowAtIndexPath:scrollIndexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES];
7
ответ дан 23 November 2019 в 01:46
поделиться
Другие вопросы по тегам:

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