Validate that the selected row hasn't been removed when trying to select or scroll to it. Issue #1976
This commit is contained in:
parent
82e7d4eaf0
commit
a5583fc655
|
@ -14,6 +14,13 @@ extension UITableView {
|
|||
Selects a row and scrolls it to the middle if it is not visible
|
||||
*/
|
||||
public func selectRowAndScrollIfNotVisible(at indexPath: IndexPath, animations: Animations) {
|
||||
guard let dataSource = dataSource,
|
||||
let numberOfSections = dataSource.numberOfSections,
|
||||
indexPath.section < numberOfSections(self),
|
||||
indexPath.row < dataSource.tableView(self, numberOfRowsInSection: indexPath.section) else {
|
||||
return
|
||||
}
|
||||
|
||||
selectRow(at: indexPath, animated: animations.contains(.select), scrollPosition: .none)
|
||||
|
||||
if let visibleIndexPaths = indexPathsForRows(in: safeAreaLayoutGuide.layoutFrame) {
|
||||
|
|
Loading…
Reference in New Issue