CupertinoColors
Flutter中专门用于定义iOS风格(Cupertino设计语言)颜色常量的类
CupertinoColors是Flutter中专门用于定义iOS风格(Cupertino设计语言)颜色常量的类。它提供了一组预定义的颜色值,如系统蓝色、标签颜色、背景色等,帮助开发者快速构建符合苹果
设计规范的UI界面。该类不涉及UI渲染逻辑,而是作为颜色资源的集中管理工具,确保应用在iOS平台上视觉一致性。

使用场景
- 开发iOS风格的Flutter应用时,直接调用颜色常量(如按钮背景、文本颜色)。
- 需要保持与iOS系统组件(如导航栏、开关)颜色一致的自定义UI。
- 适配深色/浅色主题时,使用动态颜色(如
systemGrey)。
示例
基础UI组件配色
import 'package:flutter/cupertino.dart';
CupertinoButton(
onPressed: () {},
color: CupertinoColors.systemBlue, // 使用系统蓝色
child: Text(
'iOS风格按钮',
style: TextStyle(
color: CupertinoColors.white, // 白色文本
),
),
);
深色主题适配
Container(
color: CupertinoColors.systemGrey6, // 浅灰色背景(适配浅色主题)
child: Text(
'自适应文本',
style: TextStyle(
color: CupertinoColors.systemGrey, // 动态灰色(深色主题下自动变亮)
),
),
);
自定义组件与系统颜色结合
Container(
width: 50,
height: 30,
decoration: BoxDecoration(
color: CupertinoColors.activeGreen, // 激活状态绿色
borderRadius: BorderRadius.circular(15),
),
child: Align(
alignment: Alignment.centerRight,
child: Padding(
padding: EdgeInsets.all(2),
child: CircleAvatar(
radius: 12,
backgroundColor: CupertinoColors.white,
),
),
),
);
注意点
常见问题与优化
- 颜色一致性: 部分颜色(如
systemGrey)在深色/浅色主题下值不同,需确保主题切换逻辑正确。 - 性能影响: 颜色为常量,无性能开销,但避免在构建方法中重复创建
Color对象(应直接使用常量)。 - 兼容性:
CupertinoColors仅针对iOS设计,在Android平台可能视觉不协调,建议配合ThemeData做平台判断。
最佳实践
- 优先使用
system系列颜色(如systemBlue)以支持动态主题。 - 用
CupertinoColors替代硬编码颜色值,提升代码可维护性。 - 深色主题测试时,验证
systemGrey等颜色的对比度是否符合无障碍标准。
构造函数
CupertinoColors为抽象类,无公开构造函数,所有颜色通过静态常量访问(如CupertinoColors.systemBlue)。
属性
| 属性名 | 属性类型 | 说明 |
|---|---|---|
systemBlue | Color | iOS系统蓝色(默认按钮色) |
systemGrey | Color | 动态灰色(浅色主题为深灰,深色主题为浅灰) |
systemGrey6 | Color | 极浅灰色(常用于背景或分隔线) |
activeGreen | Color | 激活状态绿色(如开关、进度条) |
destructiveRed | Color | 警示红色(用于删除操作或错误提示) |
white | Color | 纯白色 |
black | Color | 纯黑色 |
lightBackgroundGray | Color | 浅背景灰色(iOS标准背景色) |
extraLightBackgroundGray | Color | 更浅的背景灰色(用于分组列表背景) |
关键属性说明
systemBlue: 最常用的系统颜色,代表iOS交互元素(如按钮、链接),需确保使用场景符合规范。systemGrey: 支持主题动态变化,深色模式下自动提亮,减少手动主题适配代码。activeGreen: 专用于表示“启用”状态,避免与其他绿色混淆,提升视觉语义清晰度。