如何在单击表视图行时以编程方式呈现菜单,如在iOS 16日历应用中?

b1uwtaje  于 2023-04-13  发布在  iOS
关注(0)|答案(2)|浏览(113)

在iOS 16日历应用中,有一个新的下拉菜单样式,用于“重复”等选项,当点击该行的任何位置时,会出现一个菜单。并且在表格视图单元格的右侧有一个向上和向下的V形图标。
如何在iOS 16中做到这一点?上下文菜单是通过长按触发的,但这种新风格是通过单击。

ozxc1zmp

ozxc1zmp1#

似乎这只是SwiftUI。我找不到iOS 16 UIKit中的更改来实现这一点。在SwiftUI中:

import SwiftUI

struct SettingsView: View {
    @State private var selectedFlavor: Flavor = .chocolate

    var body: some View {
        List {
            Picker("Flavor", selection: $selectedFlavor) {
                Text("Chocolate").tag(Flavor.chocolate)
                Text("Vanilla").tag(Flavor.vanilla)
                Text("Strawberry").tag(Flavor.strawberry)
            }
        }
    }
}

struct SettingsView_Previews: PreviewProvider {
    static var previews: some View {
        SettingsView()
    }
}

enum Flavor: String, CaseIterable, Identifiable {
    case chocolate, vanilla, strawberry
    var id: Self { self }
}
vecaoik1

vecaoik12#

您可以在TableViewCell中添加UIButton并填充整个空间。使用UIButton的menu属性可以实现系统日历效果。

button.menu = menu

你可以检查我写的代码,希望对你有帮助。https://github.com/zhi6w/TableViewCellWithMenuButton

相关问题