SwiftUI 스타일 관련 속성들

2021년 11월 18일 수정

background

Text("foo bar").background(Color.green)

이름에 color가 안 들어가 있는 이유는 색상 외에도 쓸 수 있는 게 있어서 일 것 같다.

SomeView()
    .background(Circle().stroke())
    .background(Circle().fill(Color.white))

foregroundColor

Text("foo bar").foregroundColor(Color.white)

font

Text("foo").font(.title)
Text("bar").font(.caption)

fill

모양(shape)에 색칠을 한다.

Circle().fill(Color.red)

stroke

strokeBorder

Circle().strokeBorder(Color.red, lineWidth: 50)

clipShape

image.clipShape(Circle())

overlay

image.overlay(Circle().stroke(Color.white, lineWidth: 4))

shadow

image.shadow(radius: 10)

rotationEffect

SomeView.rotationEffect(.degrees(90))

scaleEffect

SomeView.scaleEffect(1.5)

rotation3DEffect

Text("...")
    .rotation3DEffect(.degrees(450), axis: (x: 1, y: 0, z: 0))

accentColor

Button("Red").accentColor(.red)

기존 UIKit의 tintColor 프로퍼티와 비슷한 용도

redacted

주로 플레이스홀더(placeholder)를 만들어주기 위해 사용한다.

SomeView().detacted(reason: .placeholder)

이렇게 하면 해당 뷰 및 서브 뷰들이 플레이스홀더로 표시된다.

이 외에도 reason에 몇가지 옵션이 있으니 사용하려는 용도에 맞는지 확인해보자.