Reading time: 2 min

This recipe shows how to get current scroll offset of a SwiftUI ScrollView. The necessary functionality is wrapped in a new component, ObservableScrollView, which works exactly the same as ScrollView does, but also exposes its current scroll offset in a binding.

Continue Reading...

Reading time: 1 min

This quick recipe shows how to put any custom view in a navigation bar, replacing the default navigation bar title text. Of course, that view can be interactable and respond to user input.

Continue Reading...

Reading time: 3 min

This recipe shows how to add section index with titles to a SwiftUI List. This will render a vertical list of custom shortcuts on the right-hand side of the list, allowing you to quickly navigate to any section by pressing or just moving your finger over it. The same functionality in UITableView is implemented with sectionIndexTitles(for:) and tableView(_:sectionForSectionIndexTitle:at:).

Continue Reading...

Reading time: 5 min

This recipe shows how to detect when touch enters or exits your view. It shows how to do this for for two scenarios:

  1. Detect enter/exit in a single view.
  2. Detect enter/exit on a group of views, all sharing a single gesture.

Continue Reading...

Reading time: 3 min

This recipe shows how to add weights to HStack and VStack elements, so that you can easily size them relative to each other. E.g, if you had two views, one with weight of 10, and the other with weight of 5, the first one would be twice as wide / tall as the second one.

Continue Reading...