Skip to content

Loading 加载 ​

加载指示器。SwiftUI 端为自绘圆环(Circle().trim + 旋转动画),时长走 motion.duration.base(秒)。

契约源:lh-ui-core/specs/loading.json · 黄金用例:lh-ui-core/cases/loading.json(5 条,已翻译为 XCTest,macOS 宿主即可运行)

色调 ​

五种色调取语义色令牌,默认 .primary。

9:41Loading 色调

HTML 模拟预览(iOS / SwiftUI 外观),非真机渲染

swift
LhLoading(tone: .success)

尺寸 ​

三档尺寸映射到 loading.size 令牌,描边宽度取 loading.strokeWidth。

9:41Loading 尺寸

HTML 模拟预览(iOS / SwiftUI 外观),非真机渲染

静态帧 ​

animating: false 冻结旋转(黄金用例 render-emits-ring-command 断言静止圆环的绘制参数), 用于截图测试与文档静态帧。

swift
LhLoading(size: .large, animating: false)

API ​

Props ​

属性说明类型默认值
size圆环尺寸,映射到尺寸令牌LhLoadingSize.medium
tone圆环色调,映射到语义色令牌LhLoadingTone.primary
animating是否旋转(false 冻结为静态帧)Booltrue

LhLoadingSize ​

值尺寸
.smallloading.size.small(16pt)
.mediumloading.size.medium(20pt)
.largeloading.size.large(24pt)

LhLoadingTone ​

值颜色
.primarycolor.primary.default
.successcolor.success.default
.warningcolor.warning.default
.dangercolor.danger.default
.infocolor.info.default

令牌对照 ​

令牌用途
loading.size.{small,medium,large}三档尺寸
loading.strokeWidth圆环描边宽度
color.{primary,success,warning,danger,info}.default五种色调
motion.duration.base旋转一周的动画时长(iOS 端为秒)

黄金用例对照 ​

case id断言本地测试
medium-size-uses-medium-token中号取 medium 尺寸令牌testMediumSizeUsesMediumToken
large-size-uses-large-token大号取 large 尺寸令牌testLargeSizeUsesLargeToken
primary-tone-uses-primary-token主色调取主色令牌testPrimaryToneUsesPrimaryToken
success-tone-uses-success-token成功色调取成功色令牌testSuccessToneUsesSuccessToken
render-emits-ring-command圆环描边消费 strokeWidth 令牌testRingUsesStrokeWidthToken

另有暗色专项:testDarkColorsComeFromDarkTokens / testDimensionsAreIdenticalInDarkMode / testLoadingViewInitAndRender。

bash
swift test --filter LhLoadingTests    # macOS 宿主即可跑,无需模拟器