Skip to content

手势识别:Tap, LongPress, Drag

轻点手势 (Tap Gesture) 👆

轻点手势是最基本的手势之一,用于检测用户在屏幕上的轻触操作。你可以使用 .onTapGesture 修饰符轻松地将其添加到任何视图。例如,你可以让一个文本视图在被点击时改变颜色。这非常适合创建简单的交互效果!

swift
Text("点我!")
    .onTapGesture {
        print("文本被点击了!")
    }

轻点手势还可以配置点击次数。例如,你可以设置只有双击时才触发操作。这为你的应用增加了更多的交互可能性。

长按手势 (LongPress Gesture) ⏳

长按手势用于检测用户在屏幕上按住一段时间的操作。你可以使用 .onLongPressGesture 修饰符来实现。这个手势非常适合显示上下文菜单或执行需要用户确认的操作。

swift
Text("长按我!")
    .onLongPressGesture {
        print("文本被长按了!")
    }

你可以自定义长按的最小持续时间。例如,你可以设置只有按住 1 秒以上才触发操作。这让你可以更精确地控制手势的触发时机。

拖动手势 (Drag Gesture) 🖐️

拖动手势用于检测用户在屏幕上拖动视图的操作。你可以使用 .gesture 修饰符和 DragGesture() 来实现。拖动手势非常适合创建可移动的视图或实现滑动操作。

swift
@State private var offset = CGSize.zero

var body: some View {
    Rectangle()
        .frame(width: 100, height: 100)
        .offset(offset)
        .gesture(
            DragGesture()
                .onChanged { value in
                    offset = value.translation
                }
                .onEnded { value in
                    offset = .zero
                }
        )
}

拖动手势可以让你获取拖动的距离和速度,从而实现更复杂的交互效果。例如,你可以根据拖动的距离来改变视图的大小或透明度。这为你的应用增加了更多的动态效果。🎉

  • 轻点手势:用于简单的点击操作。
  • 长按手势:用于需要用户确认的操作。
  • 拖动手势:用于创建可移动的视图。

手势识别是 SwiftUI 中非常强大的一部分,它让你可以创建更具交互性和吸引力的应用。通过灵活运用这些手势,你可以为用户提供更好的体验。🚀

本站使用 VitePress 制作