Вам просто нужно применить оператор по модулю:
let indexOnThePage = indexPath.row % 3
indexOnThePage
будет 0 для первого, 1 для второго и 2 для третьего.
4 % 3 == 1 // That means the second cell of the page
Бонус : если вам нужен номер страницы, просто наберите:
let pageNumber = indexPath.row / 3
Это даст 0 на первой странице, 1 на второй и т. д.
РЕДАКТИРОВАТЬ : Вот версия с последней страницей проблемы.
func indexOnPage(row: Int, page: Int, total: Int, itemsOnPage: Int = 3) -> Int {
let lastPage = total / itemsOnPage
if page != lastPage {
return row % itemsOnPage
}
else {
let delta = total % itemsOnPage
return (row - delta) % itemsOnPage
}
}
indexOnPage(row: 0, page: 0, total: 5) // 0
indexOnPage(row: 1, page: 0, total: 5) // 1
indexOnPage(row: 2, page: 0, total: 5) // 2
indexOnPage(row: 2, page: 1, total: 5) // 0
indexOnPage(row: 3, page: 1, total: 5) // 1
indexOnPage(row: 4, page: 1, total: 5) // 2
Это должно работать для вашей проблемы.