SwiftUI 还提供了一系列和用户交互、指针行为、视图响应相关的方法。下面是一个分类清单,尤其适用于 macOS 和多平台(macOS + iOS):
一、指针相关(macOS)
1、.onHover {}:检测鼠标是否悬停,适用平台macOS。
2、.hoverEffect(_:):控制悬浮动画效果(仅 iOS),适用平台iOS。
3、.gesture(…):自定义复杂鼠标/触控交互,适用平台通用。
4、.onTapGesture:鼠标单击/触控点击,适用平台通用。
5、.onLongPressGesture:鼠标长按或手指长按,适用平台通用。
6、.onDrag, .onDrop:拖放操作,适用平台macOS / iOS。
二、基础手势(所有平台)
1、.onTapGesture(count:perform:):点击 n 次触发(支持双击)。
2、.onLongPressGesture(minimumDuration:perform:):长按操作。
3、.gesture(…):绑定任意复杂手势(如拖拽、旋转、缩放等)。
三、组合手势
使用 .gesture() 可以组合以下:
1、TapGesture():.gesture(TapGesture().onEnded { }),用于自定义点击。
2、DragGesture():.gesture(DragGesture().onChanged { }),用于拖动。
3、MagnificationGesture():捏合放大缩小。
4、RotationGesture():旋转手势。
5、.simultaneousGesture(…):同时识别多个手势。
四、可用于响应交互的其他常用修饰符
1、.focusable():控制键盘焦点(macOS, tvOS)。
2、.keyboardShortcut(…):支持键盘快捷键。
3、.contextMenu:长按/右键显示上下文菜单。
5、.alert / .confirmationDialog:弹出对话框。
相关文章
6、SwiftUI绑定快捷键keyboardShortcut
7、SwiftUI长按手势弹出上下文菜单contextMenu
