В SwiftUI как я могу назначить переменную в поле зрения?

#swift #xcode #swiftui

Вопрос:

У меня есть этот код здесь (помещен в представление):

 if videoPos > 0.05 {
                    Text("It Worked Yay!")
                    playerPaused = false
                }
 

Однако, поскольку «Тип» () «не может соответствовать «Просмотру»», я не уверен, как я могу изменить переменную, когда videoPos > 0,05.

Это видеозапись: @Binding private(set) var videoPos: Double

Как я могу преодолеть это?

Комментарии:

1. Обновляйте playerPaused там, где вы обновляете videoPos .

2. Я вставил туда, где я непосредственно объявляю и устанавливаю видео, равное другому значению, здесь: pastebin.com/9zVr6geB но он находится не внутри той же структуры (VideoPlayerControlsView), а в другом классе, как я могу отредактировать его оттуда?

3. @EmilioPelaez, если это поможет, вот весь мой код: pastebin.com/Ss6m0CA1

4. Вы можете использовать это }// Your view end .onChange(of: videoPos) { value in playerPaused = false }

Ответ №1:

Вы можете использовать onChange

 }// End HStack
.onChange(of: videoPos, perform: { value in
    if value > 0.05 {
        playerPaused = false
    }
})
 

если поддерживается iOS 13, используйте combine

 }// End HStack
.onReceive(Just(videoPos), perform: { value in
    if value > 0.05 {
        playerPaused = false
    }
})
 
 import Combine
 

Комментарии:

1. Большое вам спасибо, я так долго пытался решить эту проблему 🙂