본문 바로가기

프로그래밍/SWIFT

100DaysOfSwiftUI - Day 24

반응형

마지막 과제가 아래와 같다.

커스텀 ViewModifier (와 View extension) 을 만드는데, 글씨체를 크고 푸른색으로 만들어 프로미넌트타이틀에 적당하게 바꾸는 모디파이어.

Create a custom ViewModifier (and accompanying View extension) that makes a view have a large, blue font suitable for prominent titles in a view.

작성한 코드는 아래와 같다.

import SwiftUI

struct ProminentTitle : ViewModifier {
    func body(content: Content) -> some View {
        content
            .font(.largeTitle.bold())
            .foregroundColor(.blue)
    }
}

extension View {
    func promTitle() -> some View {
        modifier(ProminentTitle())
    }
    
    func promTitleX() {
        modifier(ProminentTitle())
    }
}

struct ContentView: View {
    var body: some View {
        VStack {
            Text("Prominent Title")
                .promTitleX()
            
            Spacer()
        }
        .frame(minWidth: 200, minHeight: 200)
    }
}

동영상에서 한번 보여줬던 걸 그대로 따라하면 되는데, extension에 추가한 함수에 함수반환형인 ( -> some View ) 를 빼먹었더니 에러가 발생했다. 에러는 Type '()' cannot conform to 'View' , promTitleX 함수의 반환형은 () 라는 건데... 문법적으로 뭐가 잘못된 것인지 잘 모르겠다. 반환형을 알아서 잘 추측해야 하는 것 아닌가?

어쨌든 이런 에러를 겪었다.

https://daewonyoon.tistory.com/440

728x90

'프로그래밍 > SWIFT' 카테고리의 다른 글

Swift XMLCoder  (0) 2022.07.14
SwiftUI : Primes Numbers  (0) 2022.07.10
100DaysOfSwiftUI - Day 23  (0) 2022.07.09
100DaysOfSwiftUI  (0) 2022.07.01
100DaysOfSwiftUI - Day 16  (0) 2022.07.01