SwiftUI(4)
-
Property Wrappers 에 대해 알아보자 - State, Binding ①
SwiftUI 에서 Property Wrapper들의 종류가 적지 않은 걸로 안다. 앞에는 주로 @ 표시를 붙이고 사용하는데, 그 종류를 알아보기 앞서 Property Wrapper 가 가지는 의미에 대해서 알아봐야겠다. Swift 내에서 프로퍼티가 가지는 속성과 역할을 보면, Properties - Access stored and computed values that are part of an instance or type. 저장되거나 계산되는 인스턴스 또는 타입의 일부인 value(값)에 액세스(접근) 한다. 그렇다면, 속성을 감싸서 사용할 때 감싼 걸 가지고 와서 사용할 것 같은 프로퍼티 래퍼 이 녀석은 Property Wrapper A property wrapper adds a layer of s..
2023.11.04 -
ViewBuilder 는 어떻게 만드는 걸까? - ②
앞서 ViewBuilder의 개념에서 하위 뷰 생성 클로저에 매개변수에 대한 속성으로 사용해 해당 클로저가 여러 하위 뷰를 제공할 수 있도록 해준다고 한다. 는 걸 알아봤다. 그런데 뷰빌더를 어떻게 만들어서 갖다쓰는 걸까?! custom container view 를 만들어서 레고 블록처럼 가져다 쓸수 있다고 해야할까.. 하위 뷰는 뷰 선언부를 작고 가볍게 재사용할 수 있는 블록으로 나누는 방법을 제공한다. 하위 뷰에는 한계가 있는 컨테이너 뷰의 콘텐트가 정적이기 때문에 하위 뷰가 레이아웃(Layout) 에 포함될 시점에 하위 뷰에 포함될 뷰를 동적으로 지정할 수 없다. 우선 백문이불여일타라고, 눈으로 보고, 코드부터 짜봤다. @ViewBuilder 를 생성하기 위한 조건. 1. 라는 제너릭 타입같은 놈..
2023.10.07 -
ViewBuilder 란 무엇일까? - ①
클로저에서 뷰를 구성하는 사용자 정의 매개변수 속성! @resultBuilder struct ViewBuilder ViewBuilder 를 하위 뷰 생성 클로저 매개 변수에 대한 매개변수 속성으로 사용하여 해당 클로저가 여러 하위 뷰를 제공할 수 있도록 해준다. 예를 들어, contextMenu 함수는 뷰 빌더를 통해 하나 이상의 뷰를 생성하는 클로저를 허용한다. NOTE 참고로,, contextMenu 는 watchOS 6.0 - 7.0 에서 deprecated(더 이상 사용되지 않음..) 되었따.. func contextMenu(@ViewBuilder menuItems: () -> MenuItems) -> some View where MenuItems : View Text("Turtle Rock") ..
2023.09.16 -
[ SwiftUI ] SwiftUI 기본 특징
SwiftUI 의 특성 1. 선언형 프로그래밍 ( Declarative programming) ⇒ User Interface 의 기능만 명시하면 됨! ⇒ 프로그램이 어떤 방법으로 해야하는지 나타내기보다 무엇이 같은지를 설명하는 경우 ‘선언형’ 이라고 한다. 반면, 명령형 프로그래밍은 알고리즘을 명시하고 목표는 명시하지 않는데 반해 선언형 프로그래밍은 목표를 명시하고 알고리즘을 명시하지 않는 것이다. e.g. html 마크업언어로 만들어지는 웹페이지 구조도 선언형인데, ,text,, 인 경우 그 외 SQL 의 SELECT 학생 FROM 야자반; 과 같이 무엇을 나타내야 하는지를 묘사하는 것이지, 어떤 방법으로 컴퓨터 화면에 페이지를 나타내야 하는지를 묘사하지 않는다. import SwiftUI struct..
2023.09.05