SwiftUI 教程

SwiftUI - 主页 SwiftUI - 概览 SwiftUI 与 UIkit

SwiftUI 环境

SwiftUI - 环境设置 SwiftUI - 基本组件 SwiftUI - 构建第一个应用程序

SwiftUI 视图

SwiftUI - 视图 SwiftUI - 自定义文本视图 SwiftUI - 自定义图像视图 SwiftUI - 堆栈

SwiftUI 绘制形状

SwiftUI - 形状 SwiftUI - 绘制线条 SwiftUI - 绘制矩形 SwiftUI - 绘制圆角矩形 SwiftUI - 绘制三角形 SwiftUI - 绘制圆形 SwiftUI - 绘制星形 SwiftUI - 绘制多边形 SwiftUI - 绘制饼图 SwiftUI - 使用内置形状

SwiftUI - 文本

SwiftUI - 文本视图 SwiftUI - 文本输入和输出

SwiftUI - 颜色

SwiftUI - 颜色 SwiftUI - 颜色选择器 SwiftUI - 渐变 SwiftUI - 调整颜色

SwiftUI - 效果

SwiftUI - 效果 SwiftUI - 混合效果 SwiftUI - BLur 效果 SwiftUI - 阴影效果 SwiftUI - 悬停效果

SwiftUI - 动画

SwiftUI - 动画 SwiftUI - 创建动画 SwiftUI - 创建显式动画 SwiftUI - 多个动画 SwiftUI - 过渡 SwiftUI - 不对称过渡 SwiftUI - 自定义过渡

SwiftUI - 图像

SwiftUI - 图像 SwiftUI - 图像作为背景 SwiftUI - 旋转图像 SwiftUI - 媒体

SwiftUI - 视图布局

SwiftUI - 视图布局 SwiftUI - 视图大小 SwiftUI - 视图间距 SwiftUI - 视图填充

SwiftUI - UI 控件

SwiftUI - UI 控件 SwiftUI - 按钮 SwiftUI - 复选框 SwiftUI - 菜单栏 SwiftUI - 工具栏 SwiftUI - 搜索栏 SwiftUI - 文本字段 SwiftUI - 滑块 SwiftUI - 切换 SwiftUI - 选择器 SwiftUI - 菜单

SwiftUI - 列表 &表格

SwiftUI - 列表 SwiftUI - 静态列表 SwiftUI - 动态列表 SwiftUI - 自定义列表 SwiftUI - 表格

SwiftUI - 表单

SwiftUI - 表单 SwiftUI - 在部分中拆分表单

SwiftUI - 事件处理

SwiftUI - 事件处理 SwiftUI - 手势 SwiftUI - 剪贴板 SwiftUI - 拖放 SwiftUI - 焦点 SwiftUI - 警报

SwiftUI - 杂项

SwiftUI - 容器 SwiftUI - 导航 SwiftUI - 通知 SwiftUI - 跨平台 UI SwiftUI - 数据 SwiftUI - 可访问性

SwiftUI - 框架集成

SwiftUI - 框架集成 SwiftUI - 与 UIKit 交互 SwiftUI - 创建 macOS 应用

SwiftUI 有用资源

SwiftUI - 有用资源 SwiftUI - 讨论


SwiftUI - 悬停效果

当用户移动鼠标指针或将手指(在触摸屏中)放在 UI 组件(如按钮、链接、图像、文本、选项卡等)上时,SwiftUI 中的悬停效果会突出显示视图。

这是最常用的效果,通过向用户解释哪个 UI 组件是可点击的来增强用户体验。悬停效果包括各种视觉变化,例如突出显示组件、提升组件等。

最初它是为 macOS、iOs 和 iPadOS 引入的,现在它可用于 Apple 的所有平台,例如 tvOS、watchOS、visionOS。在 SwiftUI 中,我们可以使用以下任何修饰符应用悬停 −

  • hoverEffect()
  • defaultHoverEffect()
  • onHover()

SwiftUI 中的 hoverEffect() 修饰符

SwiftUI 支持预定义的悬停修饰符,即 hoverEffect()。hoverEffect() 修饰符用于在给定的组件或视图上应用悬停效果。它可以轻松地与任何视图或组件配合使用。它支持三种类型的效果:自动、突出显示和提升。

语法

以下是语法 −

func hoverEffect(_effect:HoverEffect) -> some View

此修饰符仅接受一个参数,即效果。它表示将应用于指定视图的效果。它可以是以下值中的任意一个值 −

  • .automatic:这是默认效果。它会尝试自动确定悬停效果。
  • .highlight:它将指针变形为视图背面的盘子,并显示指示视图位置的光源。
  • .lift:每当指针放在视图上时,它都会用阴影放大视图。

示例

以下 SwiftUI 程序用于在给定视图上应用悬停效果。

import SwiftUI

struct ContentView: View {
   var body: some View {
      HStack{
         Text("TAP ME")
            .font(.headline)
            .foregroundStyle(.green)
            .hoverEffect(.lift)
            .onTapGesture {
               print("BOOM!")
            }
      }
   }
}
#Preview {
   ContentView()
}

输出

悬停效果

SwiftUI 中的 defaultHoverEffect() 修饰符

defaultHoverEffect() 修饰符用于对给定视图内的所有组件应用默认悬停效果。

语法

以下是语法 −

fund defaultHoverEffect(_effect:HoverEffect) -> some View

此修饰符仅接受一个参数,即效果。它表示将应用于指定视图及其组件的默认效果。该参数的值可以是.automatic、.lift或.highlight。该修饰符的默认值为.automatic。

示例

以下SwiftUI程序用于在给定的视图上应用悬停效果。

import SwiftUI

struct ContentView: View {
   var body: some View {
      HStack{
         RoundedRectangle(cornerRadius: 5)
            .fill(.mint)
            .frame(width: 150, height: 100)
            .overlay(
               Text("Click").font(.largeTitle))
      }.defaultHoverEffect(.automatic)
   }
}
#Preview {
   ContentView()
}

输出

悬停效果

SwiftUI 中的 onHover() 修饰符

onHover() 修饰符用于插入一个操作,该操作将在用户将鼠标指针移到给定视图上方或移开时执行。

语法

以下是语法 −

fund onHover(perform action:@escaping(Bool)->Void) -> some View

此修饰符仅接受一个参数,即操作。它表示我们希望在指针移入或移出给定视图的框架时执行的操作。每当指针进入给定视图的框架时,此操作闭包将传递 true,否则将传递 false。

示例

以下 SwiftUI 程序用于在给定视图上应用悬停效果。

import SwiftUI

struct ContentView: View {
   @State private var output = false
   var body: some View {
      Text("TutorialsPoint")
         .foregroundStyle(output ? .orange : .purple)
         .scaleEffect(output ? 2.3 : 1.5)
         .onHover{x in output = x }
   }
}
#Preview {
   ContentView()
}

输出

悬停效果