Как мне установить вес для SF Symbols для iOS 13?
У меня есть это
Image(systemName: "arrow.right")
Но как мне сделать его жирным, полужирным и т. Д.?
Я использую новый SwiftUI.
8 ответов
При использовании font
модификатор, установите вес шрифта, который вы передаете
Image(systemName: "arrow.right")
.font(Font.title.weight(.ultraLight))
Для UIKit символы можно настроить следующим образом:
UIImage(systemName: "arrow.right",
withConfiguration: UIImage.SymbolConfiguration(pointSize: 16, weight: .bold))
SwiftUI 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))
}
Вы также можете обернуть
Image
с участием
Text
. С этим вы можете использовать и назначить
fontWeight()
к
Text
:
Text(Image(systemName: "xmark"))
.fontWeight(.semibold)
UIKit - Swift 5 - Xcode 11
Если вы только хотите установить вес (так что вы не запутались авто значок проклейки), сделайте следующее:
let configuration = UIImage.SymbolConfiguration(weight: .semibold)
UIImage(systemName: "trash", withConfiguration: configuration)
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, watchOS 9.0 вы можете использоватьfontWeight()
прямо наImage()
.
Image(systemName: "chevron.right")
.fontWeight(.semibold)
Xcode 13.4, Свифт 5.Х
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.
}