programing

iOS 13용 SF 심볼에 가중치를 설정하려면 어떻게 해야 합니까?

testmans 2023. 8. 28. 20:53
반응형

iOS 13용 SF 심볼에 가중치를 설정하려면 어떻게 해야 합니까?

나는 이것을 가지고 있다.

Image(systemName: "arrow.right")

하지만 어떻게 하면 굵게, 반 굵게 등을 만들 수 있을까요?

나는 새로운 스위프트를 사용하고 있습니다.UI.

사용 시font수정자, 전달하는 글꼴에 가중치를 설정합니다.

예를 들어 기본 텍스트 스타일 중 하나(사용자의 동적 유형 설정에 적합하므로 권장)를 사용하려면 다음과 같이 수행할 수 있습니다.

Image(systemName: "arrow.right")
  .font(Font.title.weight(.ultraLight))

글꼴 크기를 지정하려는 경우 다음과 같이 지정할 수 있습니다.

Image(systemName: "arrow.right")
  .font(Font.system(size: 60, weight: .ultraLight))

UIKit의 경우 기호를 다음과 같이 구성할 수 있습니다.

UIImage(systemName: "arrow.right",
        withConfiguration: UIImage.SymbolConfiguration(pointSize: 16, weight: .bold))

스위프트 UI 1.0

사용자 정의 글꼴 크기와 함께 무게를 변경하는 방법에 대해서도 언급하고 싶습니다.

HStack(spacing: 40) {
    Image(systemName: "moon.zzz")
        .font(Font.system(size: 60, weight: .ultraLight))
    Image(systemName: "moon.zzz")
        .font(Font.system(size: 60, weight: .light))
    Image(systemName: "moon.zzz")
        .font(Font.system(size: 60, weight: .regular))
    Image(systemName: "moon.zzz")
        .font(Font.system(size: 60, weight: .bold))
}

Example of Font Size and weight

UIKit -- Swift 5 -- Xcode 11

자동 아이콘 크기 조정이 흐트러지지 않도록 가중치만 설정하려면 다음 작업을 수행합니다.

let configuration = UIImage.SymbolConfiguration(weight: .semibold)
UIImage(systemName: "trash", withConfiguration: configuration)

또한 포장할 수 있습니다.Image와 함께Text이를 통해 사용하고 할당할 수 있습니다.fontWeight()로.Text:

Text(Image(systemName: "xmark"))
    .fontWeight(.semibold)

UIKit SWIFT 5.x

속성을 설정하려면: 구성을 만든 다음 매개 변수로 전달합니다.

let imageConfig = UIImage.SymbolConfiguration(pointSize: 22, weight: .black, scale: .large)
let image = UIImage(systemName: "delete.right", withConfiguration: imageConfig)

iOS 16.0, macOS 13.0, tvOS 16.0, watch OS 9.0의 경우 사용할 수 있습니다.fontWeight()에 직접Image().

Image(systemName: "chevron.right")
    .fontWeight(.semibold)

Xcode 13.4, Swift 5.X

import UIKit
import SwiftUI


public extension Image {
    
    @available(iOS 13.0, *)
    static func buildSystemImage(named systemName: String, weightConfiguration: UIImage.SymbolWeight) -> Image? {
        guard let imageConfig = UIImage(systemName: systemName, withConfiguration: UIImage.SymbolConfiguration(weight: weightConfiguration)) else { return nil }
        return Image(uiImage: imageConfig)
    }
}

용도:

if let systemImage = Image.buildSystemImage(named: "arrow.left", weightConfiguration: .semibold) {
    // Your code.                
}

언급URL : https://stackoverflow.com/questions/56518735/how-do-i-set-a-weight-to-sf-symbols-for-ios-13

반응형