UITableView - прокрутите вверх

369
задан Leo Dabus 6 November 2017 в 04:56
поделиться

32 ответа

В iOS 11 используйте adjustedContentInset для правильной прокрутки вверх для обоих случаев, когда строка состояния во время разговора видна или нет.

if (@available(iOS 11.0, *)) {
    [tableView setContentOffset:CGPointMake(0, -tableView.adjustedContentInset.top) animated:YES];
} else {
    [tableView setContentOffset:CGPointMake(0, -tableView.contentInset.top) animated:YES];
}

Swift:

if #available(iOS 11.0, *) {
    tableView.setContentOffset(CGPoint(x: 0, y: -tableView.adjustedContentInset.top), animated: true)
} else {
    tableView.setContentOffset(CGPoint(x: 0, y: -tableView.contentInset.top), animated: true)
}
10
ответ дан Thanh Pham 6 November 2017 в 04:56
поделиться

Так как мой tableView полон всевозможных вставок, это было единственное, что сработало:

Swift 3

if tableView.numberOfSections > 0 && tableView.numberOfRows(inSection: 0) > 0 {
  tableView.scrollToRow(at: IndexPath(row: 0, section: 0), at: .top, animated: true)
}

Swift 2

if tableView.numberOfSections > 0 && tableView.numberOfRowsInSection(0) > 0 {
  tableView.scrollToRowAtIndexPath(NSIndexPath(forRow: 0, inSection: 0), atScrollPosition: .Top, animated: true)
}
5
ответ дан budidino 6 November 2017 в 04:56
поделиться