How can I create a popup menu like the one present in WhatsApp?
Sorry for the dumb question, but I don't even know what to search. I'm pretty sure it's not a UIPickerView
.
Creating the Popup Window ViewIn the init(), create an UIView for the window, two UILabel for the title and the message, and an UIButton that close the popup when you press it. Declare a variable of PopUpWindowView() and pass the data from UIViewController's init to the popup view.
Android Popup Menu: Android Popup Menu displays a list of items in a vertical list which presents to the view that invoked the menu and useful to provide an overflow of actions that related to specific content.
In iOS and iPadOS, a context menu can display a preview of the current content near the list of commands. People can choose a command in the menu or — in some cases — they can tap the preview to open it or drag it to another area. Prefer a graphical preview that clarifies the target of a context menu's commands.
This is an action sheet. Here's the documentation about it in the iOS Human Interface Guidelines.
You can make one like this:
Use confirmationDialog()
. Here is the official documentation for it and here are some real-world examples, which are partially the source of the example code.
@State private var shouldShowActionSheet = false
<custom view>
.confirmationDialog("", isPresented: $shouldShowActionSheet) {
Button("Option 1") {
<handler>
}
Button("Option 2") {
<handler>
}
Button("Cancel", role: .cancel) { }
}
@State private var shouldShowActionSheet = false
[...]
<custom view>
.actionSheet(isPresented: $shouldShowActionSheet) {
ActionSheet(
title: Text(""),
buttons: [
.default(Text("Option 1")) {
<handler>
},
.default(Text("Option 2")) {
<handler>
},
.cancel()
]
)
}
let alert = UIAlertController(
title: nil,
message: nil,
preferredStyle: .actionSheet
)
alert.addAction(
.init(title: "Action 1", style: .default) { _ in
<handler>
}
)
alert.addAction(
.init(title: "Action 1", style: .default) { _ in
<handler>
}
)
present(alert, animated: true)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With