Ускорьте просмотр прогресса с помощью представления Gauge
Gauge — это новое представление SwiftUI, представленное Apple, чтобы помочь разработчикам отображать значение в диапазоне. Если вы думаете о полукруглом виджете Apple, вы правы! Полукруглый вид ваших виджетов или расширений WatchOS теперь можно воспроизвести с помощью Gauge View . Посмотрим, как работает.
Представьте, что вы разработали приложение master-detail; у вас есть список объектов с серией статистики, и в подробном представлении вы хотите показать статистику с представлением прогресса, может быть круговым или линейным (да, это пока приложение Pokémon). У нас есть не процентное число, а значение в пределах диапазона, которое имеет минимальное (также может быть отрицательное значение или другое нулевое значение) и максимальное значение. Это основное различие между представлением прогресса и представлением шкалы ; поэтому, если мы хотим управлять процентным значением, мы можем использовать представление прогресса , а если у нас есть значение в пределах диапазона или если мы хотим показать значение определенным образом, мы можем использовать представление датчика . Калибровочное представлениеможно настроить с помощью предустановленного стиля, пользовательского стиля и различных меток и цветов.
Давайте посмотрим на экран Gauge View в действии:
Gauge(value: progress, in: mininumGaugeValue...maximumGaugeValue, label: {
Text("Title")
}, currentValueLabel: {
Text("Current value: \(progress.formatted())")
}, minimumValueLabel: {
Text(mininumGaugeValue.formatted())
}, maximumValueLabel: {
Text(maximumGaugeValue.formatted())
})
Одним из различий между представлением прогресса и представлением шкалы является стиль. Gauge View имеет модификатор GaugeStyle (_ style: S) , который изменяет стиль представления, передавая перечисление следующим образом:
Gauge(value: progress, in: minimumGaugeValue...maximumGaugeValue) {}
.gaugeStyle(.linearCapacity)
Это изюминка нового представления Gauge View : вы можете создать собственный GaugeStyle и применить его к своему представлению. В приведенном ниже примере мы видим пример реализации, в котором наш GaugeStyle инициализируется содержимым @ViewBuilder . Давайте посмотрим код:
/// 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
Единственное, что нужно сделать сейчас, это установить пользовательский стиль с правильным модификатором, таким образом:
Gauge(value: progress, in: minimumGaugeValue...maximumGaugeValue) {} currentValueLabel: {
VStack {
Text("\(model.title): \((model.value).formatted(.number))")
}
}
.gaugeStyle(OverallGaugeStyle {
...
})
Теперь у вас есть новый вид для разработки ваших приложений, когда им нужно показать значение в пределах диапазона. Создавайте дизайн и получайте удовольствие с Gauge View на iOS.
Когда вы делаете запрос на facebook.com, ваш компьютер ищет доменное имя, чтобы преобразовать это доменное имя в IP-адрес, чтобы ваш компьютер мог установить это соединение.
Наш язык является мощным инструментом, который может формировать наши мысли, отношения и действия. Даже кажущиеся безобидными термины могут увековечить вредные предубеждения и стереотипы.
«Привет, Siri, включи Me Dive Оливии Дин». В мае 2021 года я начал стажировку в Future Academy Africa в Акуре, Нигерия.
Вчера мы закрыли двери конкурса песни «Евровидение» в этом году блестящим, хаотичным грандиозным финалом, в котором шведская певица Лорин забрала домой трофей, став первой женщиной, выигравшей дважды, и вернув корону Швеции спустя 50 лет после того, как ABBA выиграла конкурс. с «Ватерлоо». Они стали одним из крупнейших исполнителей в каноне поп-музыки.
Сколько раз вы, не задумываясь, выбрасывали пластиковую бутылку, стеклянную банку, алюминиевую банку или пакет экологически чистой энергии? Сколько раз вы хотели получить что-то взамен за их переработку? Если вы похожи на большинство людей, ответ, вероятно, много раз. Переработка часто рассматривается как хлопотное дело, рутинная работа или обязанность, не приносящая немедленных или ощутимых выгод.
Было уже за полночь, когда Хейден отвез Кэти обратно в общежитие колледжа после их совместного вечера. У нее был ранний урок утром, и у нее не было другой смены одежды после того, как она осталась с ним прошлой ночью.