SwiftUI

SwiftUI - 튜토리얼

iosos 2023. 8. 17. 17:08

SwiftUI

- 사용자 인터페이스(UI)를 구축하기 위한 프레임워크

- UIKit, AppKit과 같은 UI 프레임워크보다 더 간결하고 직관적인 코드 작성을 지원하며, 코드의 재사용성을 증가시킴

 

 


기본 화면

 

 

화면을 그리는 코드

struct Tutorial: View {
    var body: some View {
        Text("Hello, World!")
    }
}

- 'Tutorial' 이라는 구조체를 선언

- 이 구조체는 'View' 프로토콜을 따르는 SwiftUI 뷰 

 

- 'body' 리는 컴퓨티드 프로퍼티를 선언

- 이 프로퍼티는 실제로 뷰의 내용을 반환하는 역할

- 'some View' : 반환 타입으로 모든 유형의 SwiftUI 뷰를 의미 

 

* 컴퓨티드 프로퍼티 : 값을 저장하는 것이 아니라 계산에 의해 값을 제공하는 프로퍼티 

 

 

 

 

Preview를 그리는 코드 

// 뷰를 미리보기 하기 위한 제공자 구조체 선언
struct Tutorial_Previews: PreviewProvider {
    static var previews: some View {
        
        // 미리보기 표시
        Tutorial()
    }
}

 

 


View 

 

HStack 추가

struct Tutorial: View {
    var body: some View {
        
        HStack{
            Text("1!")
                .foregroundColor(.blue)     // 글자색 지정
                .bold()                     // 글자 두껍게
                .font(.system(size: 40))    // 글자 사이즈 지정
            
            Text("2!")
                .foregroundColor(.blue)
                .bold()
                .font(.system(size: 40))
            
            Text("3!")
                .foregroundColor(.blue)
                .bold()
                .font(.system(size: 40))
        }
    }
}

 

 

 

 

 

VStack 내부에 HStack 추가

HStack 스타일 지정

struct Tutorial: View {
    var body: some View {
        
        VStack{
            HStack{
                Text("1!")
                    .foregroundColor(.blue)     // 글자색 지정
                    .bold()                     // 글자 두껍게
                    .font(.system(size: 40))    // 글자 사이즈 지정
                
                Text("2!")
                    .foregroundColor(.blue)
                    .bold()
                    .font(.system(size: 40))
                
                Text("3!")
                    .foregroundColor(.blue)
                    .bold()
                    .font(.system(size: 40))
            } // HStack
            .background(.red)   // HStack의 background color 추가
            .padding(10)        // HStack의 패딩 추가
            
            
            HStack{
                Text("1!")
                    .foregroundColor(.blue)     // 글자색 지정
                    .bold()                     // 글자 두껍게
                    .font(.system(size: 40))    // 글자 사이즈 지정
                
                Text("2!")
                    .foregroundColor(.blue)
                    .bold()
                    .font(.system(size: 40))
                
                Text("3!")
                    .foregroundColor(.blue)
                    .bold()
                    .font(.system(size: 40))
            } // HStack
        } // VStack
    }
}

 

 

 

 

구조체로 뷰 구현

- 구조체 형태로 새로운 View를 만들고 다른 구조체에서 여러 번 호출하여 사용하는 방식 

struct Tutorial: View {
    var body: some View {
        
        VStack{
            
            newView()
            newView()
            newView()
            
        } // VStack
    }
}

struct newView : View {
    var body: some View{
        HStack{
            Text("1!")
                .foregroundColor(.blue)     // 글자색 지정
                .bold()                     // 글자 두껍게
                .font(.system(size: 40))    // 글자 사이즈 지정
            
            Text("2!")
                .foregroundColor(.blue)
                .bold()
                .font(.system(size: 40))
            
            Text("3!")
                .foregroundColor(.blue)
                .bold()
                .font(.system(size: 40))
        } // HStack
        .background(.red)   // HStack의 background color 추가
        .padding(10)        // HStack의 패딩 추가
    }
}

 

 

 

 

 

 

 

참고)

https://babbab2.tistory.com/157 

https://www.youtube.com/watch?v=LiWtjXLlhYw&list=PLgOlaPUIbynqyJHiTEv7CFaXd8g5jtogT&index=1 

'SwiftUI' 카테고리의 다른 글

SwiftUI - SwiftUI 모드로 Xcode 이용  (1) 2024.01.07
SwiftUI - 개요  (0) 2024.01.07
SwiftUI - @Binding  (0) 2023.08.25
SwiftUI - @State  (0) 2023.08.19
SwiftUI - Container Views (VStack, HStack)  (0) 2023.07.28