Action area
모달 혹은 화면 하단 영역에서 메인, 대체, 보조 행동을 할 수 있는 다양한 레벨의 버튼 묶음을 제공합니다.
이 컴포넌트는 화면 하단에 위치하며 주요 액션 버튼과 보조 버튼을 표시합니다. 다양한 레이아웃 변형을 지원하고, 캡션 텍스트와 추가 콘텐츠를 포함할 수 있습니다.
Note
키보드가 표시될 때 ActionArea가 위치가 자동으로 키보드 상단에 붙어있도록 조정됩니다.
struct ButtonInfo
ActionArea에 표시될 버튼 정보를 정의하는 구조체입니다.
-
Overview
버튼의 텍스트, 액션, 커스텀 뷰 등을 지정할 수 있습니다.
init(text: String, action: (() -> Void))
기본 버튼 정보를 초기화합니다.
-
Parameters
static func custom<V>(() -> V) -> ActionArea.ButtonInfo
커스텀 버튼 뷰를 사용하는 버튼 정보를 생성합니다.
-
Parameters
-
Return Value
커스텀 뷰가 포함된 ButtonInfo 인스턴스
-
Discussion
Note
버튼 크기가 가능한 한 최대 크기가 되도록 하려면 fillWidth(_:) 모디파이어를 사용하세요.
init(variant: Variant)
ActionArea 컴포넌트를 초기화합니다.
-
Parameters
var body: some View
뷰의 내용과 동작을 정의합니다.
func backgroundColor(SwiftUI.Color?) -> ActionArea
배경 색상을 설정합니다.
-
Parameters
-
Return Value
수정된 ActionArea 인스턴스
-
Discussion
지정한 색은 배경뿐 아니라 상단 sticky 그라데이션의 시작색으로도 함께 적용됩니다. 두 색이 어긋나면 경계가 보이므로 값을 분리하지 않습니다.
func caption(String?, icon: Icon?) -> ActionArea
버튼 위에 표시할 캡션 텍스트를 설정합니다.
-
Parameters
-
Return Value
수정된 ActionArea 인스턴스
-
Discussion
icon을 지정하면 캡션 텍스트 앞에 16pt 아이콘을 함께 표시합니다. 아이콘 색은 캡션 텍스트와 같습니다.
func extra<V>(() -> V, divider: Bool) -> ActionArea
버튼 위에 표시할 추가 콘텐츠를 설정합니다.
-
Parameters
-
Return Value
수정된 ActionArea 인스턴스
func scrollReachedEnd(Bool) -> ActionArea
스크롤이 바닥에 닿았는지를 직접 알려줍니다.
-
Parameters
-
Return Value
수정된 ActionArea 인스턴스
-
Discussion
ActionArea는 상단 그라데이션으로 “아래에 가려진 콘텐츠가 있다”를 표현합니다. ScrollView를 쓰면 이 값이 자동으로 전달되므로 이 수정자는 필요 없습니다.
SwiftUI.ScrollView·List처럼 신호를 올려주지 않는 컨테이너를 쓸 때만 사용합니다.
enum Variant
ActionArea의 버튼 레이아웃 변형을 정의합니다.
case cancel(main: ButtonInfo)
취소 버튼만 있는 간단한 레이아웃
-
Parameters
case neutral(main: ButtonInfo, sub: ButtonInfo?, alternative: ButtonInfo?)
중립적인 스타일의 버튼 레이아웃
-
Parameters
case strong(main: ButtonInfo, sub: ButtonInfo?, alternative: ButtonInfo?)
강조된 주 버튼과 보조/대체 버튼이 있는 레이아웃
-
Parameters
extension View
func actionArea(scrollReachedEnd: Bool?, () -> ActionArea) -> some View
현재 뷰에 하단 ActionArea를 적용합니다.
-
Parameters
-
Return Value
ActionArea가 적용된 뷰
-
Discussion
구성은 ActionArea의 모디파이어 체인으로 하고, 완성된 인스턴스를 이 슬롯에 넘깁니다.
Note
슬롯 클로저에
@ViewBuilder를 붙이지 않았습니다. 붙이면if문이_ConditionalContent를 만들어 ActionArea 타입 제약이 깨집니다. 공개 모디파이어가 모두Self를 돌려주므로 체인과 삼항 연산자는 그대로 쓸 수 있습니다.
Conforms To
Swift.Sendable
SwiftUICore.View
