-
SF Symbols in SwiftUI
Discover how you can incorporate SF Symbols into your SwiftUI app. We'll explore basic techniques for presenting symbols, customizing their size, and showing different variants. We'll also take you through the latest updates to symbol colorization and help you pick the right tool for your app's needs.
Ressources
Vidéos connexes
WWDC21
-
Rechercher dans cette vidéo…
-
-
0:45 - Creating Symbols
// System symbol image Image(systemName: "heart") // System symbol label Label("Heart", systemImage: "heart") // Custom symbol image Image("queen.heart") // Custom symbol label Label("Queen of Hearts", image: "queen.heart") -
2:33 - Accessibility Label
Image(systemName: "heart") .accessibilityLabel("Ace of Hearts") Image(systemName: "person.circle") .accessibilityLabel("Profile") Image("queen.heart") // Localizeable.strings "queen.heart" = "Queen of Hearts"; -
2:59 - Symbol in Text
Text(""" Thalia, Paul, and 3 others \(Image(systemName: "chevron.forward")) """) -
3:14 - Customizing Color
Label("Heart", systemImage: "heart") Label("Heart", systemImage: "heart") .foregroundStyle(.red) Label("Heart", systemImage: "heart") .foregroundStyle(.tint) Label("Heart", systemImage: "heart") .foregroundStyle(.secondary) -
3:51 - Customizing Font
Label("Heart", systemImage: "heart") .font(.body) Label("Heart", systemImage: "heart") .font(.caption) Label("Heart", systemImage: "heart") .font(.system(size: 10)) -
4:08 - Customizing Scale
Label("Heart", systemImage: "heart") .imageScale(.large) Label("Heart", systemImage: "heart") .imageScale(.medium) Label("Heart", systemImage: "heart") .imageScale(.small) -
4:23 - Customizing Variants
TabView { Text("Cards").tabItem { Label("Cards", systemImage: "rectangle.portrait.on.rectangle.portrait") } Text("Rules").tabItem { Label("Rules", systemImage: "character.book.closed") } Text("Profile").tabItem { Label("Profile", systemImage: "person.circle") } Text("Magic").tabItem { Label("Magic", systemImage: "sparkles") } } -
5:12 - Monochrome
List { Label("Ace of Hearts", systemImage: "suit.heart") Label("Ace of Spades", systemImage: "suit.spade") Label("Ace of Diamonds", systemImage: "suit.diamond") Label("Ace of Clubs", systemImage: "suit.club") Label("Queen of Hearts", image: "queen.heart") } .symbolVariant(.fill) -
6:41 - Multicolor
List { Label("Ace of Hearts", systemImage: "suit.heart") Label("Ace of Spades", systemImage: "suit.spade") Label("Ace of Diamonds", systemImage: "suit.diamond") Label("Ace of Clubs", systemImage: "suit.club") Label("Queen of Hearts", image: "queen.heart") } .symbolVariant(.fill) .symbolRenderingMode(.multicolor) -
7:10 - Hierarchical Rendering Mode
HStack { Button(action: {}) { Image(systemName: "square.3.stack.3d.top.fill") } Button(action: {}) { Image(systemName: "square.3.stack.3d.bottom.fill") } } .symbolRenderingMode(.hierarchical) -
7:50 - Palette Rendering Mode
Button(action: {}) { Image(systemName: "arrow.uturn.backward") } .symbolVariant(.circle.fill) .foregroundStyle(.white, .yellow, .red) -
9:00 - Advanced Foreground Styles
Button(action: {}) { Image(systemName: "arrow.uturn.backward") } .symbolVariant(.circle.fill) .foregroundStyle(.white, .red) Button(action: {}) { Image(systemName: "arrow.uturn.backward") } .symbolVariant(.circle.fill) .foregroundStyle(.white, .secondary) Button(action: {}) { Image(systemName: "arrow.uturn.backward") } .symbolVariant(.circle.fill) .foregroundStyle(.red, .regularMaterial)
-