当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift Never tag(_:)用法及代码示例


实例方法

tag(_:)

设置此视图的唯一标记值。

声明

func tag<V>(_ tag: V) -> some View where V : Hashable

返回值

具有指定标记集的视图。

参数

tag

用作视图标记的 Hashable 值。

详述

使用此修饰符来区分某些可选视图,例如 Picker 的可能值或 TabView 的选项卡。标签值可以是任何符合 Hashable 协议的类型。

在下面的示例中,Picker 视图构建器中的 ForEach 循环遍历 Flavor 枚举。它提取每个枚举元素的字符串值以用于构造行标签,并将枚举值强制转换为可选值,作为tag(_:) 修饰符的输入。 Picker 要求标签具有与选择类型完全匹配的类型,在这种情况下是可选的 Flavor


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


    @State private var selectedFlavor: Flavor? = nil


    var body: some View {
        Picker("Flavor", selection: $selectedFlavor) {
            ForEach(Flavor.allCases) { flavor in
                Text(flavor.rawValue).tag(Optional(flavor))
            }
        }
    }
}

如果将 selectedFlavor 更改为非可选,则需要从标签输入中删除 Optional 强制转换以匹配。

ForEach 使用相应元素的id 参数自动将默认标记应用于每个枚举视图。如果元素的 id 参数和选择器的 selection 输入具有完全相同的类型,则可以省略显式标记修饰符。要查看不需要显式标记的示例,请参阅 Picker

可用版本

iOS 13.0+, iPadOS 13.0+, macOS 10.15+, Mac Catalyst 13.0+, tvOS 13.0+, watchOS 6.0+

相关用法


注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Never tag(_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。