This is documentation for the next SDK version. For up-to-date documentation, see the latest version (SDK 55).
ControlGroup
A SwiftUI ControlGroup component for grouping interactive controls.
For the complete documentation index, see llms.txt. Use this file to discover all available pages.
Expo UI ControlGroup matches the official SwiftUI ControlGroup API. When placed inside a Menu, the children are rendered as a compact horizontal row of buttons.
Note: On tvOS,
ControlGrouprequires tvOS 17.0 or later.
Installation
- npx expo install @expo/uiIf you are installing this in an existing React Native app, make sure to install expo in your project.
Usage
Basic control group
A control group inside a menu, these render as a horizontal row of icon buttons.
import { Host, Menu, ControlGroup, Button } from '@expo/ui/swift-ui'; export default function BasicControlGroupExample() { return ( <Host matchContents> <Menu label="Options" systemImage="ellipsis.circle"> <ControlGroup> <Button systemImage="plus" label="Add" onPress={() => console.log('Add')} /> <Button systemImage="star" label="Favorite" onPress={() => console.log('Favorite')} /> <Button systemImage="square.and.arrow.up" label="Share" onPress={() => console.log('Share')} /> </ControlGroup> <Button label="Other Action" onPress={() => console.log('Other')} /> </Menu> </Host> ); }
API
import { ControlGroup } from '@expo/ui/swift-ui';
Component
Type: React.Element<ControlGroupProps>
ReactNodeThe control group's content.
Can contain Button, Toggle, Picker, or other interactive controls.
ReactNodeThe label for the control group. Can be a string for simple text labels,
or a Label component for custom label content. When omitted, the control group
has no label.
SFSymbols7_0An SF Symbol name to display alongside the label.
Only used when label is a string.