{"repo":"exyte/PopupView","free":true,"listed":false,"github":"https://github.com/exyte/PopupView","clone":"git clone https://github.com/exyte/PopupView.git","description":"Toasts and popups library written with SwiftUI","language":"Swift","stars":4061,"topics":["swiftui","swiftui-framework","swiftui-components","popup","toast"],"license":"MIT","category":"mobile-apps","readme_excerpt":"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Floaters Toasts Popups Sheets Popup View Toasts, alerts and popups library written with SwiftUI Read Article » Update to version 5 - Moved all the popup types out of the main class with generic, to allow easier storing in variables, like this Popup.DisplayMode without Popup .DisplayMode - DismissSource - Popup.DismissSource - Scroll popup is not a part of PopupType enum anymore, it is created through a separate modifier, like this: What's new in version 4 You can show multiple popups on top of anything, and they can also let the taps pass through to lower views. There are 3 ways to display a popup: as a simple overlay, using SwiftUI's fullscreenSheet, and using UIKit's UIWindow. There are pros and cons for all of these, here is a table. Overlay Sheet Window Show on top of navbar ❌ ✅ ✅ Show on top of sheet ❌ ❌ ✅ Show multiple popups ✅ ❌ ✅ Taps \"pass through\" the transparent bg ✅ ❌ ✅ SwiftUI @State update mechanism works as expected ✅ ✅ ❌ Basically UIWindow based popup is the best option for most situations, just remember - to get adequate UI updates, use ObservableObjects or @Bindings instead of @State. This won't work: This will work: Update to version 4 New DisplayMode enum was introduced instead of isOpaque . isOpaque is now deprecated. Instead of: use: So, new .displayMode(.sheet) corresponds to old .isOpaque(true) , .displayMode(.overlay) corresponds to .isOpaque(false) . Default DisplayMode is .window . What's new in version 3 - zoom in/out","default_branch":null,"files":null,"tree":[],"storefront":"/r/exyte","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/exyte/PopupView/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}