简体   繁体   中英

How can I create a popup menu in iOS?

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 .

This is an action sheet . Here's the documentation about it in the iOS Human Interface Guidelines.

You can make one like this:

SwiftUI (iOS 15 and above)

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) { }
}

SwiftUI (iOS 13 and 14)

@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()
        ]
    )
}

UIKit

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)

它的UIAlertController与 preferredStyle - UIAlertControllerStyle.actionSheet https://developer.apple.com/documentation/uikit/uialertcontroller

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM