Je développe une nouvelle application SwiftUI et j'essaie de comprendre comment rendre ce Swift compatible avec SwiftUI: https://github.com/suzuki-0000/SKPhotoBrowser
Le problème est que je ne peux pas faire fonctionner UIViewRepresentable. J'obtiens une erreur:
Le type 'PhotoViewer' n'est pas conforme au protocole 'UIViewRepresentable'
Voici mon code:
struct PhotoViewer: UIViewRepresentable {
@Binding var viewerImages:[SKPhoto]
@Binding var currentPageIndex: Int
func makeUIView(context: Context) -> SKPhotoBrowser {
let browser = SKPhotoBrowser(photos: viewerImages)
browser.initializePageIndex(currentPageIndex)
browser.delegate = context.coordinator
return browser
}
func makeCoordinator() -> Coordinator {
Coordinator(self)
}
func updateUIView(_ browser: SKPhotoBrowser, context: Context) {
browser.photos = viewerImages
browser.currentPageIndex = currentPageIndex
}
class Coordinator: NSObject, SKPhotoBrowserDelegate {
var control: PhotoViewer
init(_ control: PhotoViewer) {
self.control = control
}
func didShowPhotoAtIndex(_ browser: PhotoViewer) {
self.control.currentPageIndex = browser.currentPageIndex
}
}
}
Qu'est-ce que j'oublie ici?
Peut-être avez-vous oublié de spécifier explicitement les typealias pour UIViewType
?