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


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:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。