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


Swift Optional accessibilityRotor(_:entries:)用法及代码示例


用法一

实例方法

accessibilityRotor(_:entries:)

创建一个可访问性转子来替换指定的系统提供的转子。

声明

func accessibilityRotor<Content>(
    _ systemRotor: AccessibilitySystemRotor,
    entries: @escaping () -> Content
) -> some View where Content : AccessibilityRotorContent

参数

systemRotor

将被此自定义转子覆盖的系统提供的转子。

entries

用于生成转子条目的内容。这可以包括AccessibilityRotorEntry 结构,以及 if 和 ForEach 等结构。

详述

辅助函数转子是辅助函数用户快速导航到用户接口的特定元素以及这些元素中的特定文本范围的快捷方式。当系统转子不会自动拾取不在屏幕上的元素时,以这种方式替换系统转子很有用,例如 LazyVStackList 中的元素。

在以下示例中,消息应用程序添加了一个转子,允许用户浏览包含标题的所有文本范围。


extension Message {
    // Ranges of special areas in the `content` text. Calculated
    // when `content` is set and then cached so that we don't have
    // to re-compute them.
    var contentHeadingRanges: [Range<String.Index>]
}


struct MessageContentView: View {
    TextEditor(.constant(message.content))
        .accessibilityRotor(.heading) {
            ForEach(range in message.contentHeadingRanges) {
                AccessibilityRotorEntry(textRange: range)
            }
        }
}

可用版本

iOS 15.0+, iPadOS 15.0+, macOS 12.0+, Mac Catalyst 15.0+, tvOS 15.0+, watchOS 8.0+

用法二

实例方法

accessibilityRotor(_:entries:)

使用指定的user-visible 标签和从内容闭包生成的条目创建一个可访问性转子。

声明

func accessibilityRotor<Content>(
    _ label: Text,
    entries: @escaping () -> Content
) -> some View where Content : AccessibilityRotorContent

参数

label

向用户标识此转子的本地化标签。

entries

用于生成转子条目的内容。这可以包括AccessibilityRotorEntry 结构,以及 if 和 ForEach 等结构。

详述

辅助函数转子是辅助函数用户快速导航到用户接口的特定元素以及这些元素中的特定文本范围的快捷方式。

在以下示例中,消息应用程序创建了一个转子,允许用户导航到特定于来自 VIP 的消息。


// `messages` is a list of `Identifiable` `Message`s.


ScrollView {
    LazyVStack {
        ForEach(messages) { message in
            MessageView(message)
        }
    }
}
.accessibilityElement(children: .contain)
.accessibilityRotor("VIPs") {
    // Not all the MessageViews are generated at once, the model knows
    // about all the messages.
    ForEach(messages) { message in
        // If the Message is from a VIP, make a Rotor entry for it.
        if message.isVIP {
            AccessibilityRotorEntry(message.subject, id: message.id)
        }
    }
}

可用版本

iOS 15.0+, iPadOS 15.0+, macOS 12.0+, Mac Catalyst 15.0+, tvOS 15.0+, watchOS 8.0+

用法三

实例方法

accessibilityRotor(_:entries:)

使用指定的user-visible 标签和从内容闭包生成的条目创建一个可访问性转子。

声明

func accessibilityRotor<Content>(
    _ labelKey: LocalizedStringKey,
    entries: @escaping () -> Content
) -> some View where Content : AccessibilityRotorContent

参数

labelKey

向用户标识此转子的本地化标签。

entries

用于生成转子条目的内容。这可以包括AccessibilityRotorEntry 结构,以及 if 和 ForEach 等结构。

详述

辅助函数转子是辅助函数用户快速导航到用户接口的特定元素以及这些元素中的特定文本范围的快捷方式。

在以下示例中,消息应用程序创建了一个转子,允许用户导航到特定于来自 VIP 的消息。


// `messages` is a list of `Identifiable` `Message`s.


ScrollView {
    LazyVStack {
        ForEach(messages) { message in
            MessageView(message)
        }
    }
}
.accessibilityElement(children: .contain)
.accessibilityRotor("VIPs") {
    // Not all the MessageViews are generated at once, the model
    // knows about all the messages.
    ForEach(messages) { message in
        // If the Message is from a VIP, make a Rotor entry for it.
        if message.isVIP {
            AccessibilityRotorEntry(message.subject, id: message.id)
        }
    }
}

可用版本

iOS 15.0+, iPadOS 15.0+, macOS 12.0+, Mac Catalyst 15.0+, tvOS 15.0+, watchOS 8.0+

用法四

实例方法

accessibilityRotor(_:entries:)

使用指定的user-visible 标签和从内容闭包生成的条目创建一个可访问性转子。

声明

func accessibilityRotor<L, Content>(
    _ label: L,
    entries: @escaping () -> Content
) -> some View where L : StringProtocol, Content : AccessibilityRotorContent

参数

label

向用户标识此转子的本地化标签。

entries

用于生成转子条目的内容。这可以包括AccessibilityRotorEntry 结构,以及 if 和 ForEach 等结构。

详述

辅助函数转子是辅助函数用户快速导航到用户接口的特定元素以及这些元素中的特定文本范围的快捷方式。

在以下示例中,消息应用程序创建了一个转子,允许用户导航到特定于来自 VIP 的消息。


// `messages` is a list of `Identifiable` `Message`s.


ScrollView {
    LazyVStack {
        ForEach(messages) { message in
            MessageView(message)
        }
    }
}
.accessibilityElement(children: .contain)
.accessibilityRotor("VIPs") {
    // Not all the MessageViews are generated at once, the model
    // knows about all the messages.
    ForEach(messages) { message in
        // If the Message is from a VIP, make a Rotor entry for it.
        if message.isVIP {
            AccessibilityRotorEntry(message.subject, id: message.id)
        }
    }
}

可用版本

iOS 15.0+, iPadOS 15.0+, macOS 12.0+, Mac Catalyst 15.0+, tvOS 15.0+, watchOS 8.0+

相关用法


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