Skip to content

Commit 283b067

Browse files
authored
Update mastering-progressview-swiftui.md
1 parent f69c58f commit 283b067

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

ru/tutorials/mastering-progressview-swiftui.md

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,11 @@ struct ContentView: View {
4343
}
4444
}
4545
}
46+
```
47+
48+
И добавим в экстеншен:
4649

50+
```swift
4751
extension ContentView {
4852

4953
private var currentTextProgress: Text {
@@ -76,7 +80,7 @@ extension ContentView {
7680

7781
[Determinate Activity Indicator](https://cdn.ivanvorobei.by/websites/sparrowcode.io/mastering-progressview-swiftui/determinate_activity_indicator.mov)
7882

79-
По нажатию на `Load more` начинается загрузка. Текст показывает текущий прогресс, а кнопка `Reset` станет доступной для нажатия и сброса. Когда загрузка закончится, текст на экране сообщит об этом. Кнопка `Load more` станет неактивной.
83+
По нажатию на `Load more` начинается загрузка. Текст показывает прогресс, а кнопка `Reset` для сброса. Текст на экране изменится, когда загрузка закончится. Кнопка `Load more` станет неактивной.
8084

8185
Сделаем симуляцию прогресса c таймером:
8286

@@ -109,27 +113,26 @@ struct TimerProgressView: View {
109113

110114
[Timer Progress](https://cdn.ivanvorobei.by/websites/sparrowcode.io/mastering-progressview-swiftui/timer_progress.mov)
111115

112-
Событие вызывается несколько раз при помощи таймера. Код таймера:
116+
Событие вызывается несколько раз при помощи таймера. Код:
113117

114118
```swift
115119
let timer = Timer.publish(every: 0.05, on: .main, in: .common).autoconnect()
116120
```
117121

118-
Таймер срабатывает каждые 0.05 секунд (50 миллисекунд). Таймер должен работать в главном потоке и общем цикле (common run loop). Run loop позволяет обрабатывать код, когда пользователь делает что-либо (нажимает кнопку). Таймер начинает отсчитывать время моментально.
122+
Таймер срабатывает каждые 0.05 секунд (50 миллисекунд), он должен работать в главном потоке и общем цикле `common run loop`. Run loop позволяет обрабатывать код, когда пользователь взаимодейтсвует и интерфейсом. Таймер начнет отсчитывать время моментально.
119123

120124
Когда `progress` достигнет `downloadTotal` значения, таймер остановится.
121125
При достижении 50% загрузки, индикатор меняет цвет на зеленый.
122126

123-
`ProgressView` выглядит как полоса загрузки, которая заполняется слева направо.
124-
Так показываем пользователю, что прогресс загрузки зависит от размера файла.
127+
`ProgressView` это полоса загрузки, заполняется слева направо.
125128

126-
Описание метода `publish` доступно в [документации Apple](https://developer.apple.com/documentation/foundation/timer/3329589-publish). Больше инициализаторов можно найти в документации Xcode или [на сайте](https://developer.apple.com/documentation/swiftui/progressview).
129+
Описание метода `publish` доступно в [документации Apple](https://developer.apple.com/documentation/foundation/timer/3329589-publish). Больше инициализаторов в документации Xcode или [на сайте](https://developer.apple.com/documentation/swiftui/progressview).
127130

128131
![Documentation SwiftUI ProgressView](https://cdn.ivanvorobei.by/websites/sparrowcode.io/mastering-progressview-swiftui/progressview_init.png)
129132

130133
## Дизайн
131134

132-
Собственный дизайн для `ProgressView` создаётся с помощью протокола `ProgressViewStyle`, нужно наследоваться от него. Объявим структуру `RoundedProgressViewStyle`, которая содержит метод `makeBody()` и принимает параметр конфигурации для стиля:
135+
Чтобы создать кастомный дизайн для `ProgressView`, нужно наследоваться от протокола `ProgressViewStyle`. Объявим структуру `RoundedProgressViewStyle` c методом `makeBody()` и принимающим параметр конфигурации для стиля:
133136

134137
```swift
135138
struct RoundedProgressViewStyle: ProgressViewStyle {
@@ -147,7 +150,7 @@ struct RoundedProgressViewStyle: ProgressViewStyle {
147150
}
148151
```
149152

150-
Возвращаемся к `TimerProgressView.swift` и передадим `RoundedProgressViewStyle(color: .cyan)` в модификатор `.progressViewStyle()`. Теперь код выглядит так:
153+
Передадим `RoundedProgressViewStyle(color: .cyan)` в модификатор `.progressViewStyle()`:
151154

152155
```swift
153156
struct TimerProgressView: View {
@@ -175,6 +178,6 @@ struct TimerProgressView: View {
175178
}
176179
```
177180

178-
Прогресс начинается не слева направо, а с середины в противоположные стороны.
181+
Теперь прогресс продолжается с середины в противоположные стороны:
179182

180183
[RoundedProgressViewStyle](https://cdn.ivanvorobei.by/websites/sparrowcode.io/mastering-progressview-swiftui/rounded_progress_view.mov)

0 commit comments

Comments
 (0)