I’m using scrollPosition in SwiftUI on a new view, and I find it surprising that the position won’t update unless you physically drag your finger on the ScrollView. Removing/reordering items in the view doesn't trigger an update (even though the visible item changes) and using a ScrollViewReader with .scrollTo does not trigger an update. So when I remove an item from my list, I have to explicitly update the value of scrollPosition to an index +/- 1 depending on if the item was last in the list.
This is a problem because in this particular view, scrollPosition tells me which item to delete (the active one), so if the position isn't up to date, a nil item will be deleted.