If you would like your table to be refreshed “ala Twitter”, with new data being added on top, here’s a quick an easy way to do it for iOS:
func updateTableViewAfterAdditionInNewArray(){
//Get new feeds and check if counts are different
let countOfAddedItems = oldArray.count – newArray.count
//If we’re adding information
if (oldArray) > 0 {
if debugMode == true{
print(“We have a difference in counts of \(oldArray)”)
}
if oldArray.count != 0 {
//Update data model
oldArray = newArray
var initialContentOffSet = tableView.contentOffset.y
//If offset is less than 0 due to refresh up gesture, assume 0
if initialContentOffSet < 0 {
initialContentOffSet = 0
}
//Reload, scroll and offset
tableView.reloadData()
tableView.scrollToRow(at: IndexPath(row: countOfAddedItems, section: 0), at: .top, animated: false)
tableView.contentOffset.y = tableView.contentOffset.y + initialContentOffSet
}else{
if debugMode == true{
print(“There was no data in oldArray, avoid scrolling. “)
}
//Update data model
oldArray = newArray
tableView.reloadData()
}
}
}
Hope it helps! I’m really enjoying going back to iOS development, expect more iOS posts this next couple of months as I’m ramping up on my next project.
Questions / comments / suggestions? I’m at @MarcMasVi
Marc