[SwiftUI] Text,

Text("Hello World")

사용법은 쉽습니다.
위의 코드에서와 같이 문자열 값을 텍스트에 붙여넣거나 문자열 값을 변수로 붙여넣을 수 있습니다.

기본적으로 사용되는 방법은 문자열 값을 텍스트에 삽입하는 것이지만, 이를 생성하는 다른 많은 방법이 있습니다.


역할은 첫 번째 매개변수 이름을 기준으로 순서대로 식별되었습니다.

  1. 귀속 콘텐츠 – AttributedString 유형의 변수를 삽입하여 사용할 수 있습니다.
    AttributedString을 사용하면 특정 텍스트 부분에 스타일을 적용할 수 있습니다.
    (MarkDown, 사용자 지정 텍스트)
  2. 날짜 – 날짜 값을 입력하고 스타일을 지정하면 스타일에 따라 정해진 표시 형식의 텍스트가 출력됩니다.
    옵션에는 날짜, 시간, 타이머, 상대 및 오프셋이 포함됩니다.
  3. 버튼 – 이것은 문자열 현지화 구성 방법입니다.
    생성된 현지화 파일을 기반으로 키에 따라 텍스트가 변환됩니다.
    tableName을 지정하지 않으면 기본 테이블의 키를 조회하여 반환합니다.
  4. 시간 간격 – ClosedRange와 함께 타이머를 사용할 수 있습니다.
    만들다.
    범위를 설정하는 것만으로 초당 변경되는 타이머 텍스트를 출력할 수 있습니다.
    카운트다운타이머가 0에서 시작하는지 또는 최대에서 시작하는지 설정할 수 있습니다.
    상영시간분 또는 시간만 표시할지 여부를 설정할 수 있습니다.
    iOS 16.0부터 사용 가능합니다.
  5. 문자 그대로 – Localizable로 현지화할 때 키를 사용하지 않고 문자열을 그대로 출력하고 싶을 때 사용합니다.
    (현지화를 우회하는 방법)

* 5번에서 현지화 텍스트를 생성하는 경우 키 문자열이 변수에 포함되어 텍스트로 전송되면 현지화가 수행되지 않습니다.
이 경우 LocalizedStringKey()로 변수를 래핑하고 텍스트에 붙여넣어 현지화된 텍스트를 검색할 수 있습니다.

* 이 외에도 여러 가지 빌드 방법이 있지만 이해하기 어려운… 공식 문서에 존재합니다.


보기 수정자

보기 수정자 | 애플 개발자 문서

보기 또는 다른 보기 수정자에 적용하여 원래 값의 다른 버전을 생성하는 수정자입니다.

developer.apple.com

ViewModifier는 View 또는 다른 ViewModifier에 적용하여 또 다른 View를 생성하는 프로토콜입니다.

사용 편의성을 고려하여 보기를 장식합니다.
라고 보시면 될 것 같습니다

Text를 예로 들면 Text를 꾸미는 역할을 하는 간단한 ViewModifier가 있습니다.

Text("Hello")
	.font(.headline)
	.foregroundColor(.green)
	.underline()
	.italic()
	.background(Color.yellow)

글꼴, 색상, 밑줄 및 배경과 같은 텍스트를 장식하는 수정자가 있습니다.

장식 외에도 줄 경계, 타원 및 줄 간격을 설정할 수 있습니다.

Text("Hello Info.plist contained no UIScene configuration dictionary, Info.plist contained no UIScene configuration dictionary")
                .lineLimit(1)
                .truncationMode(.tail)
                .lineSpacing(10.0)

라인 제한nil을 입력하면 줄 수를 제한하지 않습니다.

잘림 모드머리, 중간, 꼬리가 있고 앞, 중간, 뒤 약어가 자동으로 표시됩니다.
행 수가 제한된 경우에만 표시됩니다.

ViewModifier를 직접 만들 수도 있습니다.
(사전 설정처럼?)

struct ModifierPreset: ViewModifier {
    var foregroundColor: Color = .green
    func body(content: Content) -> some View {
        content
            .foregroundColor(foregroundColor)
            .background(Color.yellow)
    }
}

SwiftUI 파일을 생성하고, ViewModifier 프로토콜을 사용하는 구조를 생성하고, 본문을 자동 완성하면 콘텐츠 매개변수를 사용하여 본문 함수가 생성됩니다.

수식어가 적용된 콘텐츠가 이 기능에 들어가기 때문에 해당 콘텐츠에 수식어를 적용할 수 있습니다.

또한 추가 처리를 외부에서 수행할 수 있도록 생성 중에 매개변수를 입력할 수 있습니다.

이렇게 생성된 ViewModifier를 사용하는 방법은 다음과 같습니다.

Text("Hello Label")
    .modifier(ModifierPreset(foregroundColor: .blue))

.modifier에서 생성한 ViewModifier를 선언하면 완료됩니다.


상표

UIKit에 UILabel이 있으면 SwiftUI에는 Label이 있습니다.
Text와 뭐가 다른지 알고 싶은데 Label은 차이점이 많습니다.
B. 이미지를 삽입하고 이미지 및 텍스트의 표시 형식을 설정하는 기능.

솔직히 말해서 나는 이모티콘을 좋아하지 않는다.

VStack {
	Label("Lightning", systemImage: "bolt.fill")
		.labelStyle(.titleOnly)
	Label("Lightning", systemImage: "bolt.fill")
		.labelStyle(.iconOnly)
	Label("Lightning", systemImage: "bolt.fill")
		.labelStyle(.titleAndIcon)        
}

Apple의 공식 문서에는 세 가지 코드가 있습니다.

SFSymbol은 systemImage 매개변수와 함께 포함되거나 Asset의 이미지가 Label의 이미지 매개변수와 함께 포함될 수 있으며 표시 형식은 labelStyle을 수정자로 선택하여 변경할 수 있습니다.

제목만그림이 없는 텍스트일 뿐, 아이콘만그냥 그림이야 제목과 아이콘둘 다 나타냅니다.
오토매틱도 있습니다.

Label {
    Text("Hello Label")
        .bold()
} icon: {
    Image(systemName: "message")
}

또는 텍스트와 아이콘을 보기에 반환하여 레이블을 만들 수 있습니다.