목록개인공부 (86)
BOID
안녕하세요, HoonIOS입니다. 리스트에는 섹션이라는 구조체가 존재 합니다. 섹션을 이용하면 데이터를 쉽게 그룹화 하는것도 가능합니다. 섹션(Section)의 구조체 형태 strcut Section {} 섹션에는 헤더와 푸터를 생략할수도 있고 둘중 하나만 선택해서 사용을 할수 있습니다. 이때 헤더, 푸터 모두 뷰여서 커스텀을 통해 원하는 뷰를 구성후 전달을 할수 있습니다. 섹션의 header, footer를 구성하는 방법에 대해 한번 살펴보겠습니다. 섹션(Section) 구성 예제 let data1 = ["데이터 1", "데이터 2", "데이터 3", "데이터 4"] let data2 = ["데이터 5", "데이터 6", "데이터 7", "데이터 8"] var body: some View { let s..
안녕하세요, HoonIOS입니다. 저번에는 NavigationView에 대해 알아봤는데 이번에는 애플에서 제공하는 navigationViewStyle 수식어들에 대해 원하는 스타일을 적용하도록 한번 살펴보겠습니다. 내비게이션 뷰 스타일은 크게 3가지를 제공합니다. 내비게이션 뷰에 스타일을 적용하는 방법은 아래와 같습니다. NavigationView { } .navigationViewStyle(...) 스타일 종류 설명 DefaultNavigationViewStyle - 내비게이션 뷰의 기본 스타일 - 자동으로 스타일을 결정 - watchOS에서만 제외하고 모두 사용이 가능 StackNaviagtionViewStyle - 계층 구조를 하나 뷰로 나가는 스타일 - tvOS, iOS에서 사용 가능 - Navi..
안녕하세요, HoonIOS입니다. 이번에는 UIkit에서 제공하는 UINavigationViewController을 SwiftUI에서 어떻게 사용하는지 한번 살펴보겠습니다. 내비게이션 뷰는 내비게이션 스택을 통해 콘텐츠 뷰들을 관리하는 컨테이너 뷰입니다. 또 화면을 전환하거나 내비게이션 아이템, 내비게이션 타이틀과 같은 요소들을 이용해 Controller을 쉽고 다양하게 보여줄 수 있습니다. NavigationView 적용 방법 NavigationView { Text("ContentView 01") } 내비게이션 뷰를 적용하기 위해서는 넣고 싶은 컨탠츠들을 내비게이션 뷰로 감싸 주면 됩니다. 즉, 저는 내비게이션 뷰 안에 Text 객체를 넣어줘서 표현해줬습니다. NavigationViewTitle 적용 ..
안녕하세요, HoonIOS입니다. SwiftUI에서 Button 사용자의 탭 이벤트를 통해 특정 작업을 할 수 있게 기본적으로 제공하는 컨트롤러입니다. 즉 UIKit에서는 UIButton하고 같은 역할을 하는 친구라고 생각을 하시면 더 이해하기 쉬우실 거 같습니다. 애플 공식문서에서는 어떻게 정의하고 있는지 한번 확인해보겠습니다. 말 그대로 행동을 이니셜라이저해 컨트롤하는 거라고 쓰여있네요, 말 그대로 행동을 컨트롤한다! 이거입니다. 버튼의 생성자는 모두 2가지 매개변수를 정의를 하고 있습니다. 한 개는 버튼의 외형을 구분해주는 거고 다른 하나는 이벤트가 발생했을 때의 처리를 해주는 코드입니다. 이해가 안 되실 수 있으니 아래 버튼한개를 생성해보겠습니다. var body: some View { VStac..
안녕하세요, HoonIOS입니다. :) SwiftUI에서 뷰의 레이아웃을 잡아주는 다양한 방법이 있는데 이번 포스팅에는 스택을 이용해 레이아웃을 잡는 방법에 대해 살펴보겠습니다. 스택 스택은 실제로 Storyboard, UIKit에서 사용하는 레이아웃입니다. 바로 UIStackView인데요, 실제로 SwiftUI에서 스택도 같은 역할을 한다고 생각하시면 더 이해하기 쉬울 수 있습니다. Storyboard를 사용해서 레이아웃을 구성할때는 굳이 UIStackView을 필수적으로 사용할 필요 없이 다른 방법을 이용해서도 구현을 할 수 있었는데요, SwiftUI에서는 거의 필연적(?)이라 매우 중요합니다. 스택의 특성 스택은 Content를 제네릭 매개 변수로 받아 자식 뷰로 표현하는 제네릭 구조체로 선언되어 ..
안녕하세요, HoonIOS입니다. UIKit에서 이미지를 표현할 때는 UIImage객체에 이미지를 만들어주고 해당 객체를 UIImageView에 넣어줘서 표현을 했습니다. 반면에 SwiftUI에서는 이렇게 복잡하게 진행하지 않고 바로 이미지를 넣어줘서 표현을 해줄 수 있습니다. 얼마나 간단해졌는지 비교해보겠습니다. //UIKit let image: UIImage = UIImage(named: "HoonIOS") UIImageView(UIImageView 객체).image = image //SwiftUI Image("HoonIOS") 엄청 간단하게 이미지를 표현해줄 수 있는걸 코드로 볼 수 있습니다! SwiftUI에서 image의 가장 큰 특징은 기본적으로 주어진 공간하고 상관이 없이 고유한 크기를 유지한..
안녕하세요, HoonIOS입니다. :) UIKit에서 사용하는 UILabel을 SwiftUI에서는 Text로 역할을 한다고 합니다. 근데 그렇다고 UILabel처럼 단순히 문자열만 표현하는 뷰가 아닙니다. 어떻게 다를까요? UILabel과 Text의 차이점은? UILabel은 단순히 단어 그대로 문자열을 화면에 표현해주는 역할을 합니다. Text는 단순히 표현만 하는 게 아니라 Button, Toggle, Picker 등등에서 그 UI들을 구성할 때 텍스트를 적용할 때 사용을 합니다. 그만큼 UILabel보다 더 광범위하다고 생각을 하시면 될것 같네요ㅎㅎ Text를 사용하는 방법 Text를 사용해 적용하려면 아래와 같이 Text 수식어를 적용해주면 됩니다. var body: SomeView { Text(..
안녕하세요, HooniOS입니다. 저번에는 간단한 SwiftUI에 대해 알아봤습니다. 이번에는 SwiftUI 기본 구조에 대해 살펴보겠습니다. SwiftUI 프로젝트 SwiftUI를 프로젝트를 만드는 방법은 아래 프로젝트를 새로 만들게 되면 나오는 창에서 아래 Interface를 SwiftUI로 설정해주고 만들어주면됩니다. 이렇게 프로젝트를 생성하게 되면 Stroyboard는 없고 아래와 같이 ContentView와 애셋 카탈로그가 추가된 것을 볼 수 있습니다. ※ 애셀 카탈로그는 StoryBoard로 개발할 때와 같이 개발 과정에서 이미지, Color를 넣어두고 활용할 수 있게 기능을 제공합니다. 이제 안에서 활용하는 것들을 한 개씩 한번 살펴보겠습니다. 캔버스(Canvas) 프로젝트 화면에서 우측에 ..