ReplayKit со SwiftUI

Я хочу записать экран с помощью ReplayKit. Я исследовал метод с UIKit. Но в моем проекте использовался SwiftUI, поэтому я хочу использовать ReplayKit для записи экрана с помощью SwiftUI.

Как записать экран с помощью SwiftUI?

-

Когда я использую функцию stopRecording, функция будет иметь previewViewController. Но я не могу вызвать функцию present для представления previewViewController.


person Jerry Lee    schedule 21.01.2020    source источник
comment
Swift UI — это фреймворк, помогающий создавать пользовательские интерфейсы. Он не делает ничего другого. Если вы хотите использовать ReplayKit для записи экрана, посмотрите, как использовать ReplayKit, а не SwiftUI. Посмотрите на developer.apple.com/documentation/replaykit/rpscreenrecorder это< /i> записывает ваш экран   -  person Scriptable    schedule 21.01.2020
comment
хорошо. имеет смысл.   -  person Jerry Lee    schedule 21.01.2020
comment
Когда я использую функцию stopRecording, функция будет иметь previewViewController. Но я не могу вызвать функцию present для представления previewViewController.   -  person Jerry Lee    schedule 21.01.2020
comment
См.: developer.apple.com/tutorials/swiftui/interfacing-with-uikit как использовать UIKit UIViewController со SwiftUI.   -  person Scriptable    schedule 21.01.2020


Ответы (1)


Примечание. Это не очень практичный ответ.

В большинстве случаев SwiftUI.View работает поверх UIHostingController. Вам нужно получить это, чтобы представить RPPreviewViewController. Вы можете найти один из них, следуя UIApplication.

let scene = UIApplication.shared.connectedScenes.first as! UIWindowScene
let viewController = scene.windows.last!.rootViewController
viewController.present(previewViewController, animated: true, completion:nil)
person yajamon    schedule 04.07.2020