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


Swift Never simultaneousGesture(_:including:)用法及代碼示例


實例方法

simultaneousGesture(_:including:)

將手勢附加到視圖以與視圖定義的手勢同時處理。

聲明

func simultaneousGesture<T>(
    _ gesture: T,
    including mask: GestureMask = .all
) -> some View where T : Gesture

參數

gesture

附加到視圖的手勢。

mask

控製將此手勢添加到視圖如何影響視圖及其子視圖識別的其他手勢的值。默認為 SwiftUI/GestureMask/all

詳述

當您需要以與視圖現有手勢相同的優先級同時定義和處理視圖特定手勢時,請使用此方法。下麵的示例定義了一個自定義手勢,該手勢將消息打印到控製台並將其附加到視圖的 VStackVStack 內部是一個紅色的心 Image 定義了自己的 TapGesture 處理程序,該處理程序還向控製台打印一條消息和一個沒有自定義手勢處理程序的藍色矩形。

點擊或單擊 “heart” 圖像會向控製台發送兩條消息:一條用於圖像的點擊手勢處理程序,另一條來自附加到封閉垂直堆棧的自定義手勢處理程序。點擊或單擊藍色矩形隻會導致從附加到 VStack 的點擊識別器向控製台發送一條消息:


struct SimultaneousGestureExample: View {
    @State private var message = "Message"
    let newGesture = TapGesture().onEnded {
        print("Gesture on VStack.")
    }


    var body: some View {
        VStack(spacing:25) {
            Image(systemName: "heart.fill")
                .resizable()
                .frame(width: 75, height: 75)
                .padding()
                .foregroundColor(.red)
                .onTapGesture {
                    print("Gesture on image.")
                }
            Rectangle()
                .fill(Color.blue)
        }
        .simultaneousGesture(newGesture)
        .frame(width: 200, height: 200)
        .border(Color.purple)
    }
}

可用版本

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

相關用法


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