Skip to content

Latest commit

 

History

History
145 lines (102 loc) · 4.94 KB

File metadata and controls

145 lines (102 loc) · 4.94 KB
GK

Swift 玻璃

Swift 版本 支持平台 许可证

SwiftGlass@3x-zh

特性

🔄 跨平台:支持 iOS、macOS、watchOS、tvOS 和 visionOS
原生 visionOS 支持:在 visionOS 上使用原生玻璃效果
🎨 高度可定制:调整颜色、材质、阴影等多种属性
🧩 SwiftUI 集成:简单的 ViewModifier 实现方式

效果展示

Screenshot 2025-04-20 at 4 16 55 PM image image
iOS watchOS I watchOS II
image image
macOS (暗色模式) I macOS (暗色模式) II
图片 图片
tvOS I tvOS II
图片 图片
visionOS iPadOS

测试平台和环境

支持 iOS 15.0+、macOS 14.0+、watchOS 10.0+、tvOS 15.0+ 和 visionOS 1.0+

Xcode 16.3(非最低要求)

图片

项目演示(快速开始)

打开 /Demo/Demo.xcodeproj

安装(添加到您的项目)

Swift Package Manager

通过 Swift Package Manager 将 SwiftGlass 添加到您的项目

项目 > Package Dependencies > +

https://github.com/1998code/SwiftGlass.git
屏幕截图 2025-04-20 下午4点29分46秒

或者您可以按照以下方式手动添加

dependencies: [
    .package(url: "https://github.com/1998code/SwiftGlass.git", from: "1.0.0")
]

使用方法

基本使用(视图 / 按钮 / 任何地方)

屏幕截图 2025-04-20 下午2点41分51秒
import SwiftUI
import SwiftGlass

struct ContentView: View {
    var body: some View {
        Text("你好, 玻璃!")
            .padding(40)
            .glass() // 使用默认玻璃效果
    }
}

自定义玻璃效果

Screenshot 2025-04-20 at 2 40 11 PM
VStack {
    Text("自定玻璃")
    Image(systemName: "sparkles")
}
.padding(30)
.glass(
    radius: 20,
    color: .blue,
    material: .regularMaterial,
    gradientOpacity: 0.7,
    shadowColor: .blue,
    shadowRadius: 10
)

自定义选项

SwiftGlass 提供丰富的自定义选项:

参数 类型 默认值 描述
displayMode .always.automatic .always 控制效果的显示时机
radius CGFloat 32 玻璃效果的圆角半径
color Color .white 渐变和高光的基础颜色
material Material .ultraThinMaterial SwiftUI 材质样式
gradientOpacity Double 0.5 渐变叠加层的不透明度
gradientStyle .normal.reverted .normal 渐变的方向样式
strokeWidth CGFloat 1.5 边框描边的宽度
shadowColor Color .white 阴影颜色
shadowOpacity Double 0.5 阴影的不透明度
shadowRadius CGFloat? nil 阴影的模糊半径
shadowX CGFloat 0 阴影的水平偏移量
shadowY CGFloat 5 阴影的垂直偏移量

平台特定说明

  • visionOS:在 visionOS 上,SwiftGlass 使用原生的 .glassBackgroundEffect() 以获得最佳渲染和系统集成
  • 其他平台:通过组合材质、渐变和阴影的自定义实现来达到类似效果

贡献

欢迎为 SwiftGlass 做出贡献!

  • 要报告错误或请求功能,请在 GitHub 上提出 issue
  • 提交 pull request 时,请遵循项目的代码风格

许可证

MIT。详细信息请查阅 LICENSE 文件。