Przyspiesz widok postępu dzięki widokowi miernika
Gauge to nowy widok SwiftUI wprowadzony przez firmę Apple, aby pomóc programistom wyświetlać wartość w określonym zakresie. Jeśli myślisz o półokrągłym widżecie Apple, masz rację! Półokrągły widok twoich widżetów lub komplikacji systemu WatchOS można teraz odtworzyć za pomocą widoku miernika . Zobaczmy, jak działa.
Wyobraź sobie, że stworzyłeś aplikację master-detail; masz listę obiektów z serią statystyk, aw widoku szczegółowym chcesz pokazać statystyki z widokiem postępu, może okrągłym lub liniowym (tak, to jeszcze aplikacja Pokémon). Nie mamy liczby procentowej, ale wartość z przedziału, która ma wartość minimalną (może to być również wartość ujemna lub inna wartość zerowa) i maksymalną. To jest główna różnica między Widokiem Postępu a Widokiem Wskaźnika ; więc jeśli chcemy zarządzać wartością procentową, możemy użyć widoku postępu , a jeśli mamy wartość w zakresie lub jeśli chcemy pokazać wartość w określony sposób, możemy użyć widoku miernika . Widok miernikamożna dostosować za pomocą gotowego stylu, stylu niestandardowego oraz różnych etykiet i kolorów.
Zobaczmy widok miernika w akcji:
Gauge(value: progress, in: mininumGaugeValue...maximumGaugeValue, label: {
Text("Title")
}, currentValueLabel: {
Text("Current value: \(progress.formatted())")
}, minimumValueLabel: {
Text(mininumGaugeValue.formatted())
}, maximumValueLabel: {
Text(maximumGaugeValue.formatted())
})
Jedną z różnic między widokiem postępu a widokiem miernika jest styl. Widok miernika ma modyfikator, gaugeStyle(_ style: S) , który zmienia styl widoku przekazując wyliczenie w następujący sposób:
Gauge(value: progress, in: minimumGaugeValue...maximumGaugeValue) {}
.gaugeStyle(.linearCapacity)
To najważniejsza cecha nowego widoku miernika : możesz zbudować niestandardowy styl GaugeStyle i zastosować go do swojego widoku. W poniższym przykładzie możemy zobaczyć przykładową implementację, w której nasz GaugeStyle jest inicjowany treścią @ViewBuilder . Zobaczmy kod:
/// The `GaugeStyle` of the `OverallView`.
struct OverallGaugeStyle<Content: View>: GaugeStyle {
// MARK: - Properties
/// The `View` contained by the gauge.
var content: Content
/// The `LinearGradient` used to style the gauge.
private var gradient = LinearGradient(
colors:
[
Color(uiColor: AppAsset.background.color.withAlphaComponent(0.5)),
Color(uiColor: AppAsset.primary.color)
],
startPoint: .trailing,
endPoint: .leading
)
// MARK: - Init
/// The `init` of the `OverallGaugeStyle`.
/// - Parameter content: The `View` contained by the gauge.
init(@ViewBuilder content: () -> Content) {
self.content = content()
}
func makeBody(configuration: Configuration) -> some View {
VStack {
ZStack {
content
Circle()
.trim(from: 0, to: configuration.value * 0.75)
.stroke(gradient, style: StrokeStyle(lineWidth: 20, lineCap: .round))
.rotationEffect(.degrees(135))
.frame(width: 250, height: 250)
}
configuration.currentValueLabel
.fontWeight(.bold)
.font(.title2)
.foregroundColor(Color(uiColor: AppAsset.background.color))
}
}
}
configuration.currentValueLabel
Jedyne, co można teraz zrobić, to ustawić styl niestandardowy z odpowiednim modyfikatorem, w ten sposób:
Gauge(value: progress, in: minimumGaugeValue...maximumGaugeValue) {} currentValueLabel: {
VStack {
Text("\(model.title): \((model.value).formatted(.number))")
}
}
.gaugeStyle(OverallGaugeStyle {
...
})
Teraz masz nowy widok do projektowania aplikacji, gdy muszą one pokazywać wartość z zakresu. Projektuj i baw się dobrze dzięki Gauge View na iOS.
Kiedy wysyłasz żądanie do facebook.com, Twój komputer wyszukuje nazwę domeny, aby przetłumaczyć tę nazwę domeny na adres IP, aby komputer mógł nawiązać to połączenie.
Nasz język jest potężnym narzędziem, które może kształtować nasze myśli, postawy i działania. Nawet pozornie nieszkodliwe terminy mogą utrwalać szkodliwe uprzedzenia i stereotypy.
Aby uniknąć niejasności, zostaną użyte następujące terminy; uwierzytelniający; Telefon komórkowy używany do tworzenia Witryny logowania; Witryna internetowa lub aplikacja, z której korzysta użytkownik, aby dokonać żądania logowania do Usługi; Sprzedawca świadczący daną usługę np
Możesz być śledczym OSINT, graczem CTF lub po prostu kimś, kto odbiera połączenia spamowe. Ktoś, kto próbuje zweryfikować numer, który widziałeś w reklamie.
Ile razy bez zastanowienia wyrzuciłeś plastikową butelkę, szklany słoik, aluminiową puszkę lub pakiet zielonej energii? Ile razy chciałeś dostać coś w zamian za ich recykling? Jeśli jesteś jak większość ludzi, odpowiedź brzmi prawdopodobnie wiele razy. Recykling jest często postrzegany jako kłopot, przykry obowiązek lub obowiązek, który nie przynosi żadnych natychmiastowych ani wymiernych korzyści.
„Hej, Siri, zagraj w Me Dive autorstwa Olivii Dean”. W maju 2021 rozpocząłem staż w Future Academy Africa w Akure w Nigerii.