當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Swift Never accessibilityRotor(_:entries:)用法及代碼示例


用法一

實例方法

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+

用法二

實例方法

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:)

創建一個可訪問性轉子來替換指定的係統提供的轉子。

聲明

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+

相關用法


注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 Never accessibilityRotor(_:entries:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。