hoverEffect 是 SwiftUI 提供的一个视图修饰符,用于在指针(鼠标或触控板)悬停到视图上时提供系统级的视觉反馈效果。
它本质上是 SwiftUI 对底层 pointer 交互的一个封装,内部依赖 UIKit 的 pointer 系统(例如 UIPointerInteraction)。该 API 在 iPadOS 13.4 引入鼠标/触控板支持后开始广泛使用。
基本用法
示例:
Button("Open") {
}
.hoverEffect(.lift)

这种反馈在 iPad + Trackpad / Mouse 环境中特别常见。
枚举选项
SwiftUI 当前主要提供三种 hover effect:
1、.automatic
.hoverEffect(.automatic)
系统自动选择最合适的效果(默认行为)。
2、.highlight
.hoverEffect(.highlight)
悬停时产生高亮效果,通常用于按钮或列表项。
3、.lift
.hoverEffect(.lift)
悬停时产生轻微“抬起”动画,类似 iPad 主屏幕图标被指针吸附。
注意事项
1、触发条件
hoverEffect 只在存在指针输入设备时生效,例如:
iPad + Magic Trackpad
iPad + 鼠标
Mac Catalyst 应用
macOS SwiftUI 应用
在纯触摸设备上不会触发。
2、Xcode 模拟器上运行,需要启用指针交互环境。
Simulator → I/O → Input → Send Pointer to Device

启用后,Mac 的鼠标会被当作 iPad 的指针设备。
3、iPhone无法触发
如果模拟器运行的是 iPhone 设备,.hoverEffect() 不会生效,因为 iPhone 的交互模型只有触摸。
