OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  symbolpicker:原生 SwiftUI 符号选择器 SymbolPicker 专家指南

symbolpicker:原生 SwiftUI 符号选择器 SymbolPicker 专家指南

 
  firewall ·  2026-02-04 21:19:16 · 3 次点击  · 0 条评论  

名称: SymbolPicker
描述: '关于 SymbolPicker(原生 SwiftUI SF Symbol 选择器)的专家指导。当开发者提及以下内容时使用:(1) SymbolPicker,(2) 选择 SF Symbols,(3) 带颜色的符号选择,(4) 自定义符号选择器外观,(5) 跨平台符号选择(iOS、macOS、visionOS),(6) 特定修饰符,如 .symbolPickerSymbolsStyle 或 .symbolPickerDismiss。'


SymbolPicker 技能

概述

本技能提供关于 SymbolPicker 的专家指导。这是一个原生、可定制的 SwiftUI 组件,用于在 iOS、iPadOS、macOS 和 visionOS 上选择 SF Symbols。它模仿苹果的原生界面,同时提供颜色、样式(填充/轮廓)和行为方面的广泛自定义选项。

代理行为(遵循以下规则)

  1. 识别目标平台: SymbolPicker 会适配不同平台(iOS 上为 sheet,iPad/Mac/visionOS 上为 popover)。请始终确认目标平台。
  2. 优先使用修饰符: 引导用户使用相关的 SymbolPicker 修饰符(例如 .symbolPickerSymbolsStyle.symbolPickerDismiss)进行自定义。
  3. 正确处理颜色: 讨论颜色选择时,请明确用户希望使用 [Double] (RGBA)、SwiftUI Color 还是 SymbolColor
  4. 强调无障碍功能: 指出 SymbolPicker 默认支持 VoiceOver 和动态字体大小。
  5. 提供上下文示例: 提供简洁的代码片段,展示 .symbolPicker 修饰符如何应用于视图(通常是 Button 或 Image),并包含用于控制显示和选择结果的绑定。
  6. 保持跨平台一致性: 提醒用户该 API 在所有平台上都是统一的。

项目设置

  • 部署目标: iOS 14.0+、iPadOS 14.0+、macOS 11.0+、visionOS 1.0+。
  • Swift 版本: Swift 5.9+。
  • Xcode: Xcode 15.0+。

快速决策树

  1. 设置基础符号选择器?

    • 基础安装和概念 → references/SymbolPicker.md
    • 将修饰符应用于视图 → references/SymbolPickerView.md
  2. 选择带颜色的符号?

    • 使用不同类型的颜色绑定 → references/SymbolPickerView.md
    • 了解 SymbolColor 模型 → references/SymbolColor.md
  3. 自定义外观或行为?

    • 在填充/轮廓图标之间切换 → references/SymbolPickerModifiers.md (.symbolPickerSymbolsStyle)
    • 控制关闭行为 → references/SymbolPickerModifiers.md (.symbolPickerDismiss)

问题排查优先指南

  • "选择器没有显示。"
    • 检查 .symbolPicker(isPresented: ...) 是否附加到了视图层级中的某个视图上。
    • 确保 isPresented 绑定值被设置为 true
  • "我想要填充图标而不是轮廓图标。"
    • 使用 .symbolPickerSymbolsStyle(.filled)
  • "如何在选择符号后立即关闭选择器?"
    • 使用 .symbolPickerDismiss(type: .onSymbolSelect)

核心模式参考

基础用法

@State private var isPresented = false
@State private var icon = "star"

Button("选择图标") { isPresented = true }
    .symbolPicker(isPresented: $isPresented, symbolName: $icon)

带颜色选择

@State private var isPresented = false
@State private var icon = "star.fill"
@State private var color: Color = .red

Button("选择图标和颜色") { isPresented = true }
    .symbolPicker(isPresented: $isPresented, symbolName: $icon, color: $color)
    .symbolPickerSymbolsStyle(.filled)
    .symbolPickerDismiss(type: .onSymbolSelect)

集成快速指南

  1. 添加包依赖: https://github.com/SzpakKamil/SymbolPicker.git(最低版本 1.0.0)。
  2. 导入: import SymbolPicker
  3. 要求: iOS 14.0+、macOS 11.0+、visionOS 1.0+。

参考文件

根据具体主题需要加载这些文件:

  • SymbolPicker.md - 概述、设置和核心优势。
  • SymbolPickerView.md - 关于选择器视图及其初始化器的详细信息。
  • SymbolPickerModifiers.md - 样式(填充/轮廓)和关闭行为的自定义。
  • SymbolColor.md - 使用 SymbolColor 枚举和颜色绑定的指南。
  • SetUp.md - 分步安装说明。
3 次点击  ∙  0 人收藏  
登录后收藏  
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor