Obtendo Células Carregadas vs Visíveis em um UITableView ou UICollectionView

Com a introdução do iOS 10, parece que vamos terpré-busca ativada por padrão em UITableView e UICollectionViews. Isso significa que as células que não são exibidas na tela serão buscadas antes que o usuário as veja.

Aqui estão alguns métodos relevantes:

UITableView:

cellForRowAtIndexPath:: retorna "nil se a célula não estiver visível ".visibleCells: cada item representa "uma célula visível na visualização da tabela".indexPathsForVisibleRows: cada item representa "uma linha visível na visualização da tabela".

UICollectionView:

visibleCells: "retorna a lista completa de células visíveis exibidas pela exibição da coleção."indexPathsForVisibleItems: cada item representa "uma célula visível na exibição da coleção".cellForItemAtIndexPath:: retorna "nil se a célula não estiver visível ".

Todos estes mencionam especificamente "visível" em suas descrições. Com a introdução da pré-busca no iOS 10, como eu distinguiria entre uma célula pré-buscada e uma atualmente visível?

Em outras palavras:

Como obtenho todas as células visíveis?Como obtenho todas as células carregadas?

Parece que não há novas APIs no UITableView ou no UICollectionView que possam ajudar com isso.

questionAnswers(1)

yourAnswerToTheQuestion