Kyuu
규규 개발노트 :)
Kyuu
전체 방문자
오늘
어제
  • 분류 전체보기 (19)
    • Swift (5)
      • 문법 정리 (5)
    • iOS (6)
      • iOS 개발 (3)
      • iOS 프로젝트 (1)
      • iOS꿀팁 (2)
    • Git (1)
    • 공부 (1)
    • 휴식 (6)
      • 영화 (2)
      • 맛집 (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • AnyObject
  • 온천집
  • 앱개발자
  • 맥북셋팅
  • 다이애나스펜서
  • 명가생고기정육식당
  • 의정부고기집
  • 서울맛집
  • 언래핑
  • MAC
  • 영화추천
  • XCode
  • iOSDeveloper
  • 새프로젝트생성
  • swift키보드
  • 다이애나왕세자비
  • 영화리뷰
  • 익선동샤브샤브
  • 스펜서후기
  • 앱개발
  • Xcode 단축키
  • ios
  • swfit
  • 맥북사운드
  • 개발자사이트
  • swfitUI
  • Swift
  • 개발자
  • ios개발자
  • 맥북소리

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Kyuu
Swift/문법 정리

SwiftUI에서 속성 래퍼(@State, @Binding, @ObservedObject, @EnvironmentObject) 이해하기

SwiftUI에서 속성 래퍼(@State, @Binding, @ObservedObject, @EnvironmentObject) 이해하기
Swift/문법 정리

SwiftUI에서 속성 래퍼(@State, @Binding, @ObservedObject, @EnvironmentObject) 이해하기

2023. 5. 31. 21:05
반응형

안녕하세요! 오늘은 swiftUI에서 자주 사용되는 속성 래퍼에 대해 알아볼 건데요, 속성 래퍼를 활용하면 
데이터 바인딩과 관리가 훨씬 쉬워집니다. 이 글에서는 @State , ( 제목 참조) 에 대해 아주 쉬운 예제와 함께
설명해 드리겠습니다.

 

 

본문

1. @State 는 SwiftUI에서 가장 기본적인 속성 래퍼입니다. 주로 뷰 내부에서 사용되며, 뷰가 
직접 소유하고 관리하는 값을 변경할 때 사용합니다. 이를테면, 토글 값이나 입력 테스트, 슬라이더 값 등이 있죠.

예를 들어, 뷰에서 사용자가한 텍스트를 관리하려면 다음과 같이 @State를 사용할 수 있습니다.

struct ContentView: View {
    @State private var inputText = ""

    var body: some View {
        TextField("Enter text here", text: $inputText)
            .padding()
    }
}

 

2.@Binding

@Binding은 뷰 간에 값을 공유할 때 사용되는 속성 래퍼입니다. 즉 뷰의 부모와 자식 간에 값을 전달하고 
변경할 수 있게 합니다. 이렇게 함으로써 뷰 계층 구조를 깔끔하게 유지할 수 있습니다.

예를 들어, 부모 뷰에서 토 값을 공유하려면 다음과 같이 @Binding을 사용할 수 있습니다.

struct ParentView: View {
    @State private var isToggleOn = false

    var body: some View {
        VStack {
            Toggle("Toggle button", isOn: $isToggleOn)
            ChildView(isToggleOn: $isToggleOn)
        }
    }
}

여기서 $isToggleOn으로 표기된 것은 @Binding을 사용하게 해주는 것입니다.

그리고 자식 뷰에서는 다음과 같이 @Binding을 적용할 수 있습니다.

struct ChildView: View {
    @Binding var isToggleOn: Bool

    var body: some View {
        Text(isToggleOn ? "Toggle is on" : "Toggle is off")
    }
}

이렇게 하면 부모 뷰에서의 토글 값 변경이 자식 뷰에서도 반영되어 업데이트 됩니다. 이를 통해 뷰 간 값 공유가
원활하게 이루어지며, 뷰 계층 구조도 깔끔하게 유지할 수 있습니다. 이해가 되셨나요? 
이해 안되시는 부분은 댓글로 작성해주시면 감사하겠습니다 ~! 

반응형

'Swift > 문법 정리' 카테고리의 다른 글

swift: 기초문법 ( Optional ) 옵셔널 Unwrapping 개념 정리 (4)  (0) 2022.04.27
Swift: 기초문법 ( if / switch ) , ( for / while ) 조건문과 반복문 제어문(3)  (1) 2022.04.27
Swift : 기초 문법 [ Data Type : 데이터 타입 ] (2)  (1) 2022.03.15
Swift : 기초 문법 [ 변수와 상수] (1)  (0) 2022.03.13
    'Swift/문법 정리' 카테고리의 다른 글
    • swift: 기초문법 ( Optional ) 옵셔널 Unwrapping 개념 정리 (4)
    • Swift: 기초문법 ( if / switch ) , ( for / while ) 조건문과 반복문 제어문(3)
    • Swift : 기초 문법 [ Data Type : 데이터 타입 ] (2)
    • Swift : 기초 문법 [ 변수와 상수] (1)
    Kyuu
    Kyuu

    티스토리툴바

    개인정보

    • 티스토리 홈
    • 포럼
    • 로그인

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.