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


Swift Optional highPriorityGesture(_:including:)用法及代碼示例

實例方法

highPriorityGesture(_:including:)

將手勢附加到視圖,其優先級高於視圖定義的手勢。

聲明

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

參數

gesture

附加到視圖的手勢。

mask

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

詳述

當您需要定義高優先級手勢以優先於視圖的現有手勢時,請使用此方法。下麵的示例定義了一個自定義手勢,該手勢將消息打印到控製台並將其附加到視圖的 VStack 。在 VStack 內部,一個紅色的心 Image 定義了自己的 TapGesture 處理程序,該處理程序也將消息打印到控製台,以及一個沒有自定義手勢處理程序的藍色矩形。點擊或單擊任何視圖會導致來自附加到封閉 VStack 的高優先級手勢的控製台消息。


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


    var body: some View {
        VStack(spacing:25) {
            Image(systemName: "heart.fill")
                .resizable()
                .frame(width: 75, height: 75)
                .padding()
                .foregroundColor(.red)
                .onTapGesture {
                    print("Tap on image.")
                }
            Rectangle()
                .fill(Color.blue)
        }
        .highPriorityGesture(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大神的英文原創作品 Optional highPriorityGesture(_:including:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。