Language/Swift

[SwiftUI] Text, custom font

jaewpark 2022. 9. 14. 10:20

Text

: 원하는 문자열을 표현하는 뷰

VStack {
    Text("폰트 설정 및 폰트 굵기")
        .font(.title2)
        .fontWeight(.bold)
    
    Text("foreground 글자색, background 배경색")
        .foregroundColor(.white)
        .padding()
        .background(Color.brown) // Color 명시
    
    Text("커스텀 폰트")
        .font(.custom("Gaegu-Regular", size: 16))
    
    Text("볼드체")
        .bold()
    
    Text("밑줄")
        .underline()
    
    Text("취소선")
        .strikethrough()
    
    Text("라인 수 2줄로 제한을 하려고 합니다 \n 그리고 오른쪽 정렬 \n 이건 안 보일테죠")
        .lineLimit(2)
        .multilineTextAlignment(.trailing)
        .padding()
        .background(Color.yellow)
    
    // 2개 이상의 텍스트를 하나로 묶어서 동시에 적용할 수도 있습니다
    (Text("자간을 조정하고").kerning(8)
        + Text("기준선을 올릴 수 있습니다.").baselineOffset(-10))
    .font(.system(size: 13))
}

 

custom font

프로젝트 내에 파일을 넣고, Info에서 Font provided by applicaiton 내에 Item을 추가하면됩니다.

Value 값에 해당 폰트 파일명과 확장자까지 써야 합니다.

설정이 완료이 되었다면, 사용은 위에 코드같이 사용할 수 있게 됩니다.

 

수식어 순서

.padding() 수식어는 텍스트에 저장되어 있지 않으며 View protocol 이기 때문에,

Text 가 View 로 바뀌었고 Text 관련 수식어를 사용할 수 없게 됩니다.

padding의 순서에 따라도 다르게 보일 수 있습니다.

    Text("foreground 글자색, background 배경색")
        .foregroundColor(.white)
        .padding()
        .background(Color.brown)
.padding() 수식어가 background보다 아래로 간다면, 글자에 대한 여백은 사라지고 background의 주위에 여백이 생기게 됩니다.
자세히 사용해 보기위해서는 비교를 하면 이해가 좀 더 수월합니다.