TREASURE408 SwiftUI : @State, @ObservedObject / Struct를 Class로 목차 @State 왜 @State는 오직 Struct에서만 작동을 하는가? 앞전 게시물에서 수없이 나왔던 @State 와 Struct에 대해서 알아보겠습니다. SwiftUI에서 가장 기본이 되고 많이 사용하는 것들이니 꼭 알아두시길 바랍니다. 만약 사용자가 버튼을 누르거나 스크롤을 하거나 텍스트에 상자를 입력했다고 치면, 그 특정 행동은 그 State 즉 상태를 변경합니다. 그 이후에 일어날 일은 State가 변경되면 자동으로 변환시켜주는 일을 합니다. 사용자 인터페이스를 업데이트하는 것이죠. 그렇다면 어떻게 이렇게 할 수 있을까요? View를 사용할 때 ContentView가 실제로 View 프로토콜을 준수한다는 것을 기억해야 합니다. Body속성을 작성하죠. 이것이 View 프로토콜의 유일한 요구 사.. SWIFTUI/Grammar 2021. 1. 25. SwiftUI : ForEach ForEach ForEach(array, id: \.self) name in 일반적으로 ForEach를 사용하여 SwiftUI 에서 View를 반복할 수 있습니다. TIP ForEach를 보고 Swift시퀀스의 forEach()방식과 동일하다고 생각하기 쉽지만, 보시는 것처럼 그렇지 않습니다. SwiftUI의 ForEach는 Struct구조 이므로 보기 본문에서 직접 반환할 수 있습니다. 항목 배열을 제공하고, 각 항목을 고유하게 식별하여 값이 변경될 때 업데이트하는 방법을 알 수 있습니다. 또한 루프의 각 항목에 대한 뷰를 생성하기 위해 실행할 클로저를 전달합니다. 아래 코드는 1부터 10까지 row값이 화면에 나타나도록 하는 코드입니다. Form { ForEach(1.. SWIFTUI/View layout 2021. 1. 24. SwiftUI : UIKit와 SwiftUI 구성요소 비교 View and Controls UIKit SwiftUI UILabel Text UITextField TextField UITextField(isSecureTextEntry) SecureField UIButton Button UllmageView Image UISwitch Toggle UISlider Slider UIStepper Stepper UIPickerView Picker(WheelPickerStyle) UISegmentedControl Picker(SegmentedPickerStyle) UIDatePicker DatePicker UITextView TextEditor (일반 문자열에만 해당) UIStackView HStack(가로 방향), VStack(세로 방향) UIScrollView Scro.. SWIFTUI/Grammar 2021. 1. 24. SwiftUI : UserDefaults 정보 수집 및 저장 UserDefaults UserDefaults 를 사용하여 사용자 설정을 저장 할 수 있습니다. 만약 어플에서 버튼으로 숫자를 4까지 올려놓고, 앱을 재실행 했을때 사용자가 눌렀던 카운트 4가 그대로 이어지는것을 볼 수 있습니다. 일단, 버튼을 눌렀을때 1씩 올라가는 화면을 만들어 보겠습니다. struct ContentView: View { //tapCount는 0 으로 지정 @State private var tapCount = 0 var body: some View { Button("Tap count: \(tapCount)") { //버튼이 클릭될때마다 "1"씩 증가 self.tapCount += 1 } } } 이제, UserDefaults를 이용해 정보를 수집하고 저장하는 코드를 만들어 보겠습니다. .. SWIFTUI/Grammar 2021. 1. 24. Swift : 기초문법 [ CLASS / STRUCT / ENUM 간단비교] 본 게시글은 yagom님과Zedd0202님의 Swift 프로그래밍 3판을 참고하여 작성되었습니다. ⭐️ Swift Tip of the day : 스위프트 기초 문법 CLASS / STRUCT / ENUM CLASS / STRUCT / ENUM CLASS(클래스) swift에서는 객체라는 용어대신에 인스턴스 라는 용어를 사용합니다. 한마디로 클래스타입의 인스턴스를 객체라고 칭하지 않습니다. 단일 상속만 가능합니다. (인스턴스/타입) 메서드, (인스턴스/타입) 프로퍼티 (Struct와 같음) 참조타입(=reference type) (리퍼런스reference 라고 부름) iOS 프레임워크의 대부분이 클래스로 구성되어있습니다. SwiftUI에서는 대부분잉 Struct로 구성되어있습니다. STRUCT(구조체) C.. SWIFT/Grammar 2021. 1. 24. SwiftUI : Alert (알림 메세지) iOS 15 버전 부터 더이상 아래 형태로 사용 되지 않습니다. ( 업데이트 예정) Alert 대해 알아보도록 합시다. Alert Alert는 SwiftUI에서 UIKit의 UIAlertView와 동일합니다. SwiftUI에서 어떻게 경고메세지를 만들고 표시하는지 알아봅시다. 기본 코드 .alert(isPresented: $____) { Alert(title: Text(""), message: nil, dismissButton: .defalut(Text(""))) } Alert 사용 조건 Alert를 표시할지에 대한 여부를 지정하는 Bool binding (state) Alert를 반환하는 closure SwiftUI는 bool 값이 상태이기 때문에 변경 될 때마다 뷰를 새로 고칩니다. 결과적으로 tru.. SWIFTUI/Controls 2021. 1. 23. 개발시 참고하면 좋은 사이트 목차 1. Apple 개발자 사이트 - Xcode사용 가이드 : Xcode 초보자용 - API문서 : Apple의 여러 프레임워크와 kit들에 대한 간단한 정보 - 가이드와 샘플코드들 : 프레임워크와 kit들의 상세 사용법 - Swift 문서 : Swift문법 - Swift 문서 한글판 - SwiftUI 문서 - iOS Human Guide Line(HIG) : iOS개발시 화면 구성 / 애플의 UI/UX 권장사항 가이드라인 - 앱스토어 심사 지침 : 앱스토어에 앱을 올릴때 심사 기준 지침서 - Swift.org : Apple 공식 Swift커뮤니티. Swift convention부터 시작해서 Swift Source Compatibility - Xcode 다운로드 - [첫 개발시 동기 부여 되는 영상] .. TIP/iOS & MacOS TIp 2021. 1. 23. SwiftUI : EditButton [onDelete, OnMove] OnDelete와 OnMove에 대해 알아보도록 합시다. EditButton 현재 편집 범위에 대한 편집 모드를 toggle하는 버튼입니다. SwiftUI는 컬렉션에서 개체를 삭제하는 방법을 제어하는 데 사용할 onDelete()수정자를 제공합니다. 이 기능은 목록 및 각 행에만 거의 사용됩니다. 각 행에 표시되는 행 목록을 만든 다음, 각 행에 대해 OnDelete()를 추가해 사용자가 원하지 않는 행을 제거 또는 이동할 수 있습니다. 버튼 토글시 새로운 번호 생성 숫자 표시되는 목록을 만들고 버튼을 누를 때마다 새 번호가 나타나게 만들어 봅시다. 그 코드는 다음과 같습니다. import SwiftUI struct ContentView: View { @State private var numbers = .. SWIFTUI/Controls 2021. 1. 23. SwiftUI : Button / onTapGesture 목차 SwiftUI 3.0 버전의 Button 기능이 다수 추가되었습니다. 추후 업데이트 예정입니다. 트리거(Trigger) 될 때 작업을 수행하는 컨트롤입니다. Button에 대해 알아보도록 합시다. Button 기본 코드 //첫번째 Button(action: { //action }) { //view HStack { Image(systemName: "folder.fill") Text("폴더") } } //두번째 Button("서근개발노트") { // action } Action 과 Label 을 제공하여 버튼을 만들 수 있습니다. 액션은 사용자가 버튼을 클릭하거나 택할 때 작업을 수행하는 메서드 또는 클로저 프로퍼티입니다. 레이블은 예를 들어 '취소'와 같은 텍스트 또는 '뒤로 가기 화살표'와 같은 아.. SWIFTUI/Controls 2021. 1. 23. SwiftUI : NavigationView / NavigationLink 목차 NavigationView 는 SwiftUI의 가장 중요한 구성 요소 중 하나입니다. 화면을 쉽게 Push 와 Pop할 수 있으며, 사용자에게 명확하고 계층적인 방식으로 정보를 제공할 수 있습니다 NavigationView NavigationView를 사용하려면 다음과 같이 항목을 감싸야합니다. struct ContentView: View { var body: some View { NavigationView { Text("Hello, World!") } } } NavigationView는 최상위에 위치해야 하지만, TabView내에서 사용하는 경우에는 NavigationView가 TabView 내에 있어야 합니다. // 옳은 방법 NavigationView { Text("Hello, World!").. SWIFTUI/View layout 2021. 1. 23. SwiftUI : Overlay / Background / Alignment 목차 overlay / Background / Alignment에 대해 알아보겠습니다. ZStack overlay와 Background를 이용하면 ZStack에서 사용했던것 처럼 중첩된 뷰를 표현하는것이 가능합니다. 앞으로 자주 사용될 수식어이므로 함께 비교해서 알아봅시다. ZStack은 특성상 그 나중에 작성한 green사각형이 먼저 작성한 red사각형보다 뷰 계층에서 상위에 위치합니다. ZStack { Rectangle() .fill(Color.red) .frame(width: 150.0, height: 150.0) Rectangle() .fill(Color.green) .frame(width: 150.0, height: 150.0) .offset(x: 10.0, y: 10.0) } 이제 overla.. SWIFTUI/View layout 2021. 1. 22. SwiftUI : Shape (Rectangle, Circle, Capsule...) 목차 Rectangle / Circle / RoundedRectangle / Capsule에 대해 알아보도록 합시다. Shape SwiftUI에는 사각형, 원 및 캡슐과 같은 여러 가지 기본 제공 모양이 있으며 필요에 따라 각 모양을 만들고 색상을 지정하고 배치할 수 있습니다. Rectangle Circle RoundedRectangle Capsule Circle Circle() .fill(Color.red) .frame(width: 200, height: 200) Rectangle VStack() { Rectangle() .fill(Color.blue) .frame(width: 100, height: 100) Rectangle() .fill(Color.blue) .frame(height: 5) } Ro.. SWIFTUI/Image 2021. 1. 22. SwiftUI : HStack / Spacer / minLength / Frame 목차 HStack 앞에 Stack은 뷰 컨테이너이자 하나의 뷰라고 했습니다. 따라서 스택에도 뷰 프로토콜이 가진 수식어를 적용할 수 있습니다. 우선 HStack 주위로 테두리를 그려봅시다. 참고로 여기서padding을 먼저 적용하지 않으면 텍스트 주위로 바짝 붙어서 여백이 없어지니 순서에 유의해주세요. HStack { Text("HStack") .font(.title) //이미 폰트크기를 정해줬기때문에 밖에있는 largeTitle은 영향X .foregroundColor(.blue) Text("은 뷰를 가로로 배열합니다") Text("!") } .padding() .border(Color.black) //border은 테두리를 뜻한다. .font(.largeTitle) 이처럼 largeTitle 폰트를 H.. SWIFTUI/View layout 2021. 1. 22. SwiftUI : View layout (HStack / VStack / ZStack) 목차 view layout에 대한 전반적인 내용을 간단히 살펴보겠습니다. 세부적인 내용은 다음 게시글에서 다루도록 하겠습니다. View Layout Stack Stack은 SwiftUI에서 뷰를 배치하는 데 사용하는 컨테이너 뷰로, 콘텐츠로 전달된 지식 뷰들을 어떤 형태로 배치할 것인지 결정짓습니다. SwiftUI에서는 거의 필수적으로 활용되므로 매우 중요하며 사용 방법 또한 매우 간단합니다. Stack에는 가로방향 HStack, 세로방향 VStack, 겹겹히 쌓아있는 ZStack 총 세 가지 종류가 있습니다. var body: soom View { Text("hello") //컴파일 오류 Text("SwiftUI") } var body: soom View { VStack { Text("hello") T.. SWIFTUI/View layout 2021. 1. 22. SwiftUI : Colors and Gradient 목차 Color / Gradient 에 대해 알아보도록 합시다. Color ZStack Color ZStack 바로 뒤에 Color.색 을 주게 되면 전체에 배경화면이 써집니다. (Stack에 대해서는 View layout 에서 자세히 다루도록 하겠습니다.) 또, Color.red.frames(width: , height: ) 를 주게 된다면 아래와 같은 결과를 생성할 수 있습니다. import SwiftUI struct ContentView: View { var body: some View { ZStack { Color.red.frame(width: 200, height: 200) VStack { Text("안녕") Text("잘가") } } } } Color(Literal()) iOS 13.0 버전 .. SWIFTUI/Image 2021. 1. 22. 이전 1 ··· 24 25 26 27 28 다음 한국어 (기본) English Русский 日本語 👉🏻 잠깐만요! 이 글도 한 번 보고 가세요 이전글 다음글 티스토리툴바 서근 개발노트구독하기