twostraws / CodeScanner

A SwiftUI view that is able to scan barcodes, QR codes, and more, and send back what was found.
MIT License
1.01k stars 286 forks source link

Dismiss/cancel not discoverable #86

Closed rocketraman closed 1 year ago

rocketraman commented 1 year ago

Say a user opens up the scanner sheet. If they are aware of the fact that a modal sheet was just used, they can swipe down to dismiss it. However, the default view being pretty much full-screen means most users remain unaware that a sheet is active, and do not know how to dismiss/cancel the scanner view.

Can some options be added to make how to cancel/dismiss a scanner view more discoverable? Either an option to add some kind of close/cancel button, OR have the sheet show up as smaller than the full screen, say at 75 or 80% of the screen instead.

Sheets are supposed to have a presentation detents feature for iOS 15 and up -- not sure if that can help here.

rocketraman commented 1 year ago

I do see issue https://github.com/twostraws/CodeScanner/issues/45. Having an explicit wrapper with navigation seems like a good workaround.

I still think it is valid to consider supporting detents as those are the standard way sheet gestures are supposed to be discoverable.

nathanfallet commented 1 year ago

Even when presenting a modal you have to wrap your view into a navigation view with the cancel button (the navigation view inside the modal)