SwiftUI指针反馈效果hoverEffect
SwiftUI指针反馈效果hoverEffect

SwiftUI指针反馈效果hoverEffect

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 的交互模型只有触摸。

相关文章

1、SwiftUI用户交互、手势和指针行为

2、SwiftUI修改鼠标光标/指针样式

   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注