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


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