Skip to content

Instantly share code, notes, and snippets.

@iosdevie
Created May 29, 2021 18:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iosdevie/16e230472123304b5c66ea8bbe63c505 to your computer and use it in GitHub Desktop.
Save iosdevie/16e230472123304b5c66ea8bbe63c505 to your computer and use it in GitHub Desktop.
struct LinkRow : UIViewRepresentable {
var previewURL:URL
@Binding var redraw: Bool
func makeUIView(context: Context) -> LPLinkView {
let view = LPLinkView(url: previewURL)
let provider = LPMetadataProvider()
provider.startFetchingMetadata(for: previewURL) { (metadata, error) in
if let md = metadata {
DispatchQueue.main.async {
view.metadata = md
view.sizeToFit()
self.redraw.toggle()
}
}
else if error != nil
{
let md = LPLinkMetadata()
md.title = "Custom title"
view.metadata = md
view.sizeToFit()
self.redraw.toggle()
}
}
return view
}
func updateUIView(_ view: LPLinkView, context: Context) {
// New instance for each update
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment