본문 바로가기
💻 Development/SwiftUI

[SwiftUI] 0913 우당탕탕 Scrumdinger 만들기 - Configuration과 Extension

by Claudia 끌라우 2023. 9. 13.
반응형

* 공부했던 내용을 주관적으로 해석하여 '제가' 이해하기 쉽도록 작성하였습니다. 잘못된 정보가 있을 시 알려주시면 제게 큰 힘이 됩니다!


헷갈리니까 한 번 더 정리...

인스턴스 (instance) - Swift 에서는 클래스 / 구조체 / 열거형에서 생성된 객체를 '인스턴스'라고 지칭

프로퍼티 (Property) - Swift 에서는 클래스, 구조체, 열거형과 연관되어 있는 정보 / 값 등을 의미

메서드 (Method) - Swift 에서는 클래스, 구조체, 열거형과 관련된 함수라는 의미로 사용

프로토콜(protocol) - https://babbab2.tistory.com/174 (내 기준 이게 이해 젤 잘된 문서였음..)

함수 작성법 - https://iosdevlime.tistory.com/entry/iOSSwift-1급시민-1급-객체함수


[ Section 5  - Customize the label style ] 

이 단계에선 스크럼의 길이와 시간아이콘을 수평으로 쌓는 라벨 스타일을 만들 예정.

LabelStyle 프로토콜을 활용해서 앱 안에서 같은 라벨 스타일을 여러번 사용함으로써 일관된 디자인을 만들 수 있다.

 

 

여러가지 도큐먼트가 많았으나, 뭘 만드느냐에 따라만 다른 것 같다. 그래서 대표적인 문서를 하나 들고왔음

일단 뭘 만드는 것 같음. (번역 : 형태의 본문을 나타내는 뷰를 만듭니다.)

 

 

Configuration 파라미터(구성 매체 변수)는 라벨 스타일 configuration으로,

아이콘과 제목 보기를 포함하는 LabelStyleConfiguration입니다.  이 보기들은 라벨의 이미지와 라벨 텍스트를 나타냅니다.


정리 :

import SwiftUI

struct TrailingIconLabelStyle: LabelStyle { //LabelStyle -> protocol 이름
    func makeBody(configuration: Configuration) -> some View {
        HStack { //configuration -> 구성요소를 의미
            configuration.title
            configuration.icon
        }
    }
} // 여기서 아이콘 스타일을 만들어주고

extension LabelStyle where Self == TrailingIconLabelStyle {
    static var trailingIcon: Self { Self() }
}  // where self -> TrailingIconLabelStyle 만을 대상으로 함 

// Self -> 나 자신
// Self(나)는 TrailingIconLabelStyle임!

 

 

 

이렇게 만든 익스텐션을

카드뷰로 가져와서 아래에 넣어주면 

비포 / 에프터

라벨은 이미지-

텍스트로 이루어진게 디폴트값이다.

라벨스타일에서 사용할 수 있는 것들 (verticalIcon 제외)

근데 익스텐션을 활용해서 trailingIcon을 새로 만들어줌으로써 이 순서를 바꿔줌

 

익스텐션의 장점 : 한 번 만들어 둔 설정값을 여기저기서 가져다 사용할 수 있음.

 


Configuration 부터 뭔소린지 모르고 헷갈려서 단어 하나하나 찾아보고 나름대로 정리하고 정의내리고 하는데 오래 걸렸다.

설상가상으로 영어로 비유하면 단어단어는 사전 찾아보면서 이해하는데, 막상 어떻게 뭐랑 인과관계가 있고 움직이는지 이해가 안됐었음...

 

우선 단어랑 더 친해지고 기본 문법이 어떻게 동작하는지에 대한 공부가 더 필요해 보일 것 같다

 

+

Where 개념은 아직도 뭔소린지 이해 못함.... 구글링해도 모르겠다 ;ㅂ;


내일 할 것

- 오늘 카드뷰 완성한거 리스트로 만들기~

반응형

댓글