Lecture 1: Getting started with SwiftUI

sun·2021년 9월 21일
1

youtube link

### # View 란? - `View` 는 스크린 상의 직사각형의 영역에서 사용자로부터 입력을 받고 출력을 나타내는 방식
  • simple view , combining view , bag of views 의 3가지 종류가 있음
  • 즉, view 들을 view builder 를 써서 한 군데에 담은 게 bag of views 고, combining view 는 이런 백에 담긴 view 들을 조합하는 역할을 담당

# 엥 View 안에 some View..?

  • View 와 같이 행동하기 위해서는 body 라는 변수가 필요한데 이 친구를 보면 some view 라고 되어있음..! 마치 좋은 간장을 만드려면 씨간장이 필요합니다...! 같다...ㅋㅋㅋㅋ
    struct ContentView: View {
        var body: some View {
            Text("Hello World!")
        }
    }
  • View 를 레고와 같이 생각하면 보다 쉽게 이해할 수 있다! 우리는 작은 레고 블록 여러 개를 합쳐서 레고 의자 를 만들고, 레고 의자 4개와 레고 식탁을 만들어 식당 세트 를 만들 수 있는데 이처럼 bodyView 를 완성하기 위한 레고 블록과 같으므로 some View 가 되는 것!
  • 아니 그럼 그냥 View 라 하면 안되나? 왜 애매모호하게 some View 냐면 놀랍지만 이건 사실 우리를 위한 배려다...ㅋㅋㅋㅋ body 는 하나의 view 이지만 연산의 결과로 하나의 view 가 정해지기 때문에 어떤 종류일 지 우리가 알기 어렵다!

    • ( modifier 에 의한 ) modified view 일수도 있고 ZStack 과 같이 여러 개의 view 를 조합하는 view combiner 일 수도 있다. 정말 말 그대로 some kind of view 를 리턴 받을 수 있기 때문에 컴파일러에게 야 body는 View의 한 종류일건데 어떤 친구인지는 너가 연산해봐바 하고 알려주는 것!

      • 앞서 말했지만 modifier 가 붙은 뷰는 이전과는 다른 새로운 modified view 가 되며, modifier 가 여러개인 경우 앞에서부터 순차적으로 적용되면서 매번 새로운 view 가 생겨나고 있다는 점을 유의하자!
      • 참고로 modifier 는 상속과 오버라이딩이 가능하다

# ZStack 은 뭔데요..

  • ZStack 은 우리가 앞서 말했던 combining view 에 해당한다!

  • 인자로 bag of views 를 만들어 주는 view builder 를 받아서 그 안에 들어있는 view 들을 조립하는데 얘는 Z축 을 기준으로 조합한다고 생각하면 된다!

    • 참고로 view builder 가 리턴하는 bag of viewstuple Views
    ZStack {
        RoundedRectangle(cornerRadius:)
            .stroke(lineWidth: 3)
            
        Text("Hello World!")
            .foregroundColor(.orange)
    }
    .padding(.horizontal)
    .foregroundColor(.red)

☀️ 느낀 점

  • 너무 좋았다...쏙쏙 들어오고 정말 궁금했던 것(View 가 뭔지 궁금했는데 찾아봐도 계속 아리송하게 느껴졌음...), 궁금하다고 생각치도 못했던 것(some view)들 까지 짚어주셔서 아 그래서 그렇구나 하는 마음으로 들을 수 있었다...물론 1시간 20분은 한번에 듣기 내게는...버거워서 몇 번 끊어 들었음ㅋㅋㅋㅋ
profile
☀️

0개의 댓글

관련 채용 정보