Why is the toggle button popular?

SwiftUI Toggle: En dybdegående guide

23/03/2024

Rating: 4.32 (9627 votes)

Indholdsfortegnelse

SwiftUI Toggle: En komplet guide til at skabe interaktive brugergrænseflader

I den stadigt udviklende verden af app-udvikling er evnen til at skabe intuitive og brugervenlige grænseflader afgørende. SwiftUI, Apples moderne UI-framework, tilbyder en række kraftfulde komponenter til at opnå dette, og en af de mest alsidige er Toggle. Denne artikel dykker ned i, hvordan du effektivt kan bruge SwiftUI Toggle i dine iOS-applikationer, med fokus på funktionalitet, tilpasning og avancerede brugsscenarier, især med henvisning til opdateringer i iOS 16.

What is a control button in iOS 18?
Starting in iOS 18 and iPadOS 18, a control is a button or toggle that provides quick access to your app’s features from other areas of the system. Control buttons perform an action, link to a specific area of your app, or launch a camera experience on a locked device. Control toggles switch between two states, such as on and off.

En Toggle i SwiftUI fungerer på samme måde som den velkendte UISwitch fra UIKit. Den giver brugeren mulighed for at skifte mellem to tilstande: enten 'til' eller 'fra', ofte repræsenteret som sand (true) eller falsk (false). Dette gør den ideel til at styre indstillinger, aktivere eller deaktivere funktioner eller simpelthen give brugeren kontrol over, hvordan indhold vises i din app.

Grundlæggende brug af SwiftUI Toggle

At implementere en simpel Toggle i SwiftUI er ligetil. Du behøver ikke manuelt at holde styr på toggle'ens tilstand. I stedet definerer du en @State Booleansk egenskab, som SwiftUI automatisk vil synkronisere med Toggle-komponenten. Denne egenskab lagrer den aktuelle værdi af toggle'en og kan bruges til at styre andre elementer i din brugergrænseflade.

Her er et grundlæggende eksempel på, hvordan du kan oprette en Toggle, der viser en velkomstbesked, når den er aktiveret:

struct ContentView: View { @State private var showGreeting = true var body: some View { VStack { Toggle("Show welcome message", isOn: $showGreeting) if showGreeting { Text("Hello World!") } } } } 

I dette kodeeksempel oprettes en Toggle med etiketten "Show welcome message". Den er bundet til den private Booleanske egenskab $showGreeting. Når showGreeting er sand, vises en Text "Hello World!". Hvis showGreeting er falsk, forsvinder teksten, og VStack vil automatisk justere sin størrelse.

Tilpasning af Toggle'ens udseende

SwiftUI gør det nemt at tilpasse udseendet af din Toggle for at matche dit apps design. Mens Toggle ikke direkte understøtter accentColor() modifieren, kan du bruge .toggleStyle() modifieren til at ændre dens udseende. Dette er især nyttigt, hvis du ønsker at ændre farven på toggle-kontakten.

For at ændre farven på din Toggle, kan du bruge SwitchToggleStyle med en tint-parameter:

struct ContentView: View { @State private var showGreeting = true var body: some View { VStack { Toggle("Show welcome message", isOn: $showGreeting) .toggleStyle(SwitchToggleStyle(tint: .red)) if showGreeting { Text("Hello World!") } } } } 

Dette eksempel vil vise en rød toggle-kontakt, når den er aktiveret. Du kan erstatte .red med enhver anden Color eller Gradient for at opnå det ønskede visuelle udtryk.

How does SwiftUI toggle work in iOS 16?
Updated in iOS 16 SwiftUI’s toggle lets users move between true and false states, just like UISwitch in UIKit. For example, we could create a toggle that either shows a message or not depending on whether the toggle is enabled or not, but of course we don’t want to have to track the state of the toggle by hand – we want SwiftUI to do that for us.

Toggle som knapstil

Fra iOS 15 og fremadrettet tilbyder SwiftUI muligheden for at få din Toggle til at ligne en knap. Dette kan opnås ved at anvende .toggleStyle(.button) modifieren. I denne tilstand ændrer knappen farve baseret på dens aktiveringstilstand, hvilket giver en klar visuel feedback til brugeren.

Her er et eksempel på, hvordan du kan implementere en Toggle som en knapstil:

struct ContentView: View { @State private var isOn = false var body: some View { VStack { Toggle("Filter", isOn: $isOn) .toggleStyle(.button) .tint(.mint) } } } 

I dette tilfælde vil Toggle vises som en knap med en mintfarvet accent, der ændrer sig, når brugeren interagerer med den. Dette kan være en effektiv måde at integrere toggle-funktionalitet på en mere fremtrædende måde i din brugergrænseflade.

Avanceret brug: Binding til flere værdier (iOS 16+)

En af de mest markante forbedringer for Toggles i iOS 16 er muligheden for at binde en enkelt Toggle til en samling af Booleanske værdier. Dette er utroligt nyttigt, når du vil give brugeren mulighed for at styre flere relaterede indstillinger samtidigt, for eksempel at til- eller frakoble abonnementer på forskellige nyhedsbreve.

Forestil dig et scenarie, hvor en bruger kan vælge at abonnere på individuelle nyhedsbreve eller have én enkelt knap til at abonnere på dem alle. Med iOS 16 er dette nu enklere at implementere:

struct EmailList: Identifiable { var id: String var isSubscribed = false } struct ContentView: View { @State var lists = [ EmailList(id: "Monthly Updates", isSubscribed: true), EmailList(id: "News Flashes", isSubscribed: true), EmailList(id: "Special Offers", isSubscribed: true) ] var body: some View { Form { Section { ForEach($lists) { $list in Toggle(list.id, isOn: $list.isSubscribed) } } Section { Toggle("Subscribe to all", sources: $lists, isOn: .isSubscribed) } } } } 

I dette eksempel har vi en samling af EmailList-objekter, hver med en isSubscribed-egenskab. Den første ForEach-løkke viser individuelle Toggles for hvert nyhedsbrev. Den anden Toggle, "Subscribe to all", bruger den nye sources parameter til at binde sig til isSubscribed-egenskaben for alle EmailList-objekter i samlingen. Når "Subscribe to all" aktiveres eller deaktiveres, synkroniseres tilstanden for alle individuelle nyhedsbreve automatisk.

Hvornår skal man bruge en Toggle?

En Toggle er det ideelle valg, når du har brug for at give brugeren en klar og enkel måde at vælge mellem to modsatrettede tilstande. Nogle almindelige brugsscenarier inkluderer:

  • Aktivering/deaktivering af funktioner (f.eks. Bluetooth, Wi-Fi, notifikationer).
  • Ændring af visuelle præferencer (f.eks. mørk tilstand, fed skrift).
  • Styring af privatlivsindstillinger (f.eks. deling af lokationsdata).
  • Til-/frakobling af abonnementer eller notifikationer.

Overvejelser for design og brugervenlighed

Selvom Toggle er en simpel komponent, er der et par designovervejelser, der kan forbedre brugeroplevelsen:

  • Klar etiket: Sørg for, at etiketten på din Toggle klart beskriver, hvad den gør, når den aktiveres.
  • Kontekst: Placer Toggles i nærheden af de indstillinger eller funktioner, de kontrollerer.
  • Visuel feedback: Brug tilpasningsmuligheder, som f.eks. farver eller knapstilen, til at give klar visuel feedback om Toggle'ens tilstand.
  • Gruppering: Gruppér relaterede Toggles sammen for at skabe en organiseret og overskuelig indstillingsside.

Afsluttende tanker

SwiftUI Toggle er en fundamental komponent for enhver iOS-udvikler. Med dens evne til at styre to-tilstandsindstillinger og de nyere tilpasnings- og bindingsmuligheder introduceret i iOS 16, tilbyder den en fleksibel og kraftfuld måde at forbedre brugerinteraktionen i dine apps. Uanset om du opretter en simpel indstillingsskærm eller en kompleks brugergrænseflade, vil en solid forståelse af SwiftUI Toggle hjælpe dig med at bygge mere engagerende og funktionelle applikationer.

Hvis du vil læse andre artikler, der ligner SwiftUI Toggle: En dybdegående guide, kan du besøge kategorien Software.

Go up