SwiftUI 기본 뷰 컴포넌트
2021년 11월 5일 수정
≡ 목차 (Table of Contents)
Text
기본
이름처럼 텍스트(혹은 라벨)를 출력하는 뷰다.
Text("some text")
텍스트 스타일
+
오퍼레이터를 이용해 Attributed Text 대신 사용할 수도 있다.
Text("foo").foregroundColor(Color.red) + Text("bar").foregroundColor(Color.blue)
이 밖에도 인터폴레이션으로 Text 오브젝트를 처리할 수 있다.
Text("\(Text(name).bold()) foo bar")
비슷하게 이미지를 넣을 수 있다.
Text("\(Image(systemNamed: "music.mic")) foo bar") .font(.custom("FontName", size: 15))
멀티라인
lineLimit
을 이용해 멀티라인 텍스트 뷰를 생성할 수 있다. 값을 nil
로 지정해서 무제한 멀티라인을 지원할 수도 있다.
Text("...") .lineLimit(nil)
위처럼 다 풀어버리면 멀티라인 텍스트 표시가 자유롭긴 하겠지만 레이아웃 맞추기는 좀 어려울 수도 있다. 이럴 때는 한 축의 크기를 고정시키는 방법도 가능하다.
Text("...") .lineLimit(nil) .frame(height: 46) .fixedSize(horizontal: false, vertical: true)
위는 세로 크기를 고정시켜서 멀티라인 표시를 약간 제한하는 텍스트 뷰가 생성시키는 코드다.
시간
Xcode 11.5부터 시간 관련 기능이 추가되었다.
Text(Date().addingTimeInterval(600), style: .relative)
style에는 이 외에 .date
, .time
, .timer
등 다양한 옵션이 있다.