I isolated a couple of new iOS 15 ScrollView
bugs recently while working on the timing editor view in our new video subtitling app Captionista. These particular problems did not exist in iOS 14.
Beware the cancelled interactive dismiss of SwiftUI popovers
Another in the long serious of little niggles with SwiftUI popovers on iPad. This time, it’s more serious but there is a workaround.
If you show a sheet
the user can interactively dismiss these on iOS, but they can also cancel the dismissal by bringing the sheet back up near to its “shown” position.
Popovers on iPad in SwiftUI render ugly corner aliasing when forcing a colorScheme
The app we’re working on is for adding subtitles to videos on your iPhone or iPad and because it is video oriented we’re forcing dark mode as the colour scheme using .environment(\.colorScheme, .dark)
.
This works great mostly, but we found that on iPad if you use popovers, the corners have a light antialiasing artefact if the system colour scheme is set to light.
Using SwiftUI .hoverEffect modifier on iPad causes doubling of visuals
Another discovery on the trail to the Captionista release!
I thought I’d add .hoverEffect
modifiers for the iPad UI to show the nice hover animations that iOS provides for pointing device users. Sadly, in SwiftUI this doubles up the visual of the buttons when focused. You move the pointer around and can see the lifted/translated version over the top of the original.
Sheets in SwiftUI on iPhone do not make the presenting view shrink behind
After solving the problem with SwiftUI adaptive popovers on iPad not dismissing properly on iPhone or in compact split view on iPad in Captionista, I noticed something…
If you show a modal sheet on iPhone, if you look closely you can see that the view behind does not shrink backwards as it would with a native UIKit modal presentation since iOS 13.