Reference version

This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.

Gauge

一个 SwiftUI Gauge 组件,用于通过视觉指示器显示进度。

iOS
Included in Expo Go
Recommended version:
~58.0.1

Expo UI Gauge 与官方 SwiftUI Gauge API 相对应,并支持通过 gaugeStyle 修饰符设置样式。

显示 70% 的圆形容量 Gauge显示 70% 的圆形容量 Gauge

安装

Terminal
- npx expo install @expo/ui
- yarn expo install @expo/ui
- pnpm expo install @expo/ui
- bun expo install @expo/ui

If you are installing this in an existing React Native app, make sure to install expo in your project.

用法

基本 Gauge

BasicGaugeExample.tsx
import { Host, Gauge } from '@expo/ui/swift-ui'; export default function BasicGaugeExample() { // 线性 Gauge 会延伸至分配给它的宽度,因此要为宿主视图指定尺寸。 return ( <Host style={{ flex: 1 }}> <Gauge value={0.5} /> </Host> ); }

带标签

你可以将自定义组件作为 children 传入,为 Gauge 提供标签。

LabelExample.tsx
import { Host, Gauge, Text } from '@expo/ui/swift-ui'; export default function LabelExample() { return ( <Host style={{ flex: 1 }}> <Gauge value={0.7}> <Text>Progress</Text> </Gauge> </Host> ); }

带数值标签

使用 currentValueLabel、minimumValueLabel 和 maximumValueLabel 属性显示数值信息。

ValueLabelsExample.tsx
import { Host, Gauge, Text } from '@expo/ui/swift-ui'; export default function ValueLabelsExample() { return ( <Host style={{ flex: 1 }}> <Gauge value={50} min={0} max={100} currentValueLabel={<Text>50%</Text>} minimumValueLabel={<Text>0</Text>} maximumValueLabel={<Text>100</Text>}> <Text>Usage</Text> </Gauge> </Host> ); }

Gauge 样式

使用 gaugeStyle 修饰符更改 Gauge 的外观。可用样式包括:automatic、circular、circularCapacity、linear 和 linearCapacity。

GaugeStylesExample.tsx
import { Host, Gauge, Text, VStack } from '@expo/ui/swift-ui'; import { gaugeStyle } from '@expo/ui/swift-ui/modifiers'; export default function GaugeStylesExample() { return ( <Host style={{ flex: 1 }}> <VStack spacing={16}> <Text>Circular</Text> <Gauge value={0.5} modifiers={[gaugeStyle('circular')]}> <Text>Circular</Text> </Gauge> <Text>Circular Capacity</Text> <Gauge value={0.5} modifiers={[gaugeStyle('circularCapacity')]}> <Text>Circular Capacity</Text> </Gauge> <Text>Linear</Text> <Gauge value={0.5} modifiers={[gaugeStyle('linear')]}> <Text>Linear</Text> </Gauge> <Gauge value={0.5} modifiers={[gaugeStyle('linearCapacity')]}> <Text>Linear Capacity</Text> </Gauge> </VStack> </Host> ); }

着色 Gauge

使用 tint 修饰符更改 Gauge 的颜色。

TintedGaugeExample.tsx
import { Host, Gauge, VStack } from '@expo/ui/swift-ui'; import { gaugeStyle, tint } from '@expo/ui/swift-ui/modifiers'; export default function TintedGaugeExample() { return ( <Host style={{ flex: 1 }}> <VStack spacing={16}> <Gauge value={0.7} modifiers={[gaugeStyle('circular'), tint('green')]} /> <Gauge value={0.3} modifiers={[gaugeStyle('linear'), tint('red')]} /> </VStack> </Host> ); }

API

import { Gauge } from '@expo/ui/swift-ui';

Component

Gauge

iOS

Type: React.Element<GaugeProps>

Renders a SwiftUI Gauge component.

GaugeProps

children

iOS
Optional • Type: ReactNode

A label describing the gauge's purpose.

currentValueLabel

iOS
Optional • Type: ReactNode

A label showing the current value. Use Text or Label to display the value.

max

iOS
Optional • Type: number • Default: 1

The maximum value of the gauge range.

maximumValueLabel

iOS
Optional • Type: ReactNode

A label showing the maximum value. Use Text or Label to display the value.

min

iOS
Optional • Type: number • Default: 0

The minimum value of the gauge range.

minimumValueLabel

iOS
Optional • Type: ReactNode

A label showing the minimum value. Use Text or Label to display the value.

value

iOS
Type: number

The current value of the gauge.