You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何更改Shortcuts App中AppShortcuts的显示样式(磁贴/圆形组)

关于AppShortcuts在快捷指令App中显示样式的配置方案

一、磁贴与圆形图标集合的切换逻辑

  • 当你的AppShortcuts仅包含1个快捷指令时,系统会自动以磁贴形式展示;
  • 当包含2个及以上快捷指令时,会合并为圆形图标集合展示。
    这个是系统自动判定的逻辑,开发者无法手动强制指定样式,完全由快捷指令的数量决定。

二、自定义圆形图标集合的背景样式(彩色/渐变)

你之前修改的shortcutTileColor只对磁贴样式生效,圆形集合的背景需要通过单个AppIntent的图标配置来实现:

  1. 为每个AppIntent添加自定义图标配置
    在你的AppIntent结构体中实现static var icon: IntentIcon属性,具体有三种配置方式:

    • 纯色背景:
      static var icon: IntentIcon {
          IntentIcon.color(.systemPurple)
      }
      
    • 渐变背景(先创建渐变UIColor):
      static var icon: IntentIcon {
          // 示例:创建蓝紫渐变颜色
          let gradient = CAGradientLayer()
          gradient.colors = [UIColor.systemBlue.cgColor, UIColor.systemPurple.cgColor]
          gradient.locations = [0.0, 1.0]
          UIGraphicsBeginImageContext(CGSize(width: 1, height: 1))
          gradient.render(in: UIGraphicsGetCurrentContext()!)
          let gradientColor = UIColor(patternImage: UIGraphicsGetImageFromCurrentImageContext()!)
          UIGraphicsEndImageContext()
          
          return IntentIcon.color(gradientColor)
      }
      
    • 自定义白色图标(搭配彩色背景):
      static var icon: IntentIcon {
          IntentIcon.image(systemName: "heart.fill")
      }
      
  2. 关键注意点

    • 使用IntentIcon.color(_:)时,系统会自动把AppIntent的默认图标(或你设置的自定义图标)转为白色,适配你指定的背景色;
    • 若未给AppIntent设置图标,系统会默认使用应用图标,并搭配灰色背景+蓝色标识,也就是你看到的默认样式。

三、磁贴样式的颜色配置

shortcutTileColor确实是控制磁贴背景色的属性,但只有在快捷指令数量为1(磁贴展示)时才会生效,配置示例:

struct MyAppShortcuts: AppShortcutsProvider {
    static var shortcutTileColor: UIColor? {
        .systemOrange
    }

    static var appShortcuts: [AppShortcut] {
        AppShortcut(
            intent: MySingleIntent(),
            phrases: ["触发我的应用快捷操作"]
        )
    }
}

内容的提问来源于stack exchange,提问作者Andrei Herford

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 07:12:43