SwiftUI: Difference between revisions
Jump to navigation
Jump to search
Line 35: | Line 35: | ||
func makeUIView(context: UIViewRepresentableContext<MyPDFView>) -> UIView { | func makeUIView(context: UIViewRepresentableContext<MyPDFView>) -> UIView { | ||
let empty = UIView() | let empty = UIView() | ||
guard let provider = CGDataProvider(data: self.data as CFData) else {return empty} | //guard let provider = CGDataProvider(data: self.data as CFData) else {return empty} | ||
guard let document = CGPDFDocument(provider) else {return empty} | //guard let document = CGPDFDocument(provider) else {return empty} | ||
guard let url = URL(string: "https://api.chorke.org/academia/api/v1.0/health/card/01890600.pdf") else {return empty} | |||
guard let document = CGPDFDocument(url as CFURL) else {return empty} | |||
guard let page = document.page(at: 1) else {return empty} | guard let page = document.page(at: 1) else {return empty} | ||
let pageRect = page.getBoxRect(.mediaBox) | let pageRect = page.getBoxRect(.mediaBox) |
Revision as of 07:56, 11 April 2020
ContentView
import SwiftUI
struct ContentView: View {
var body: some View {
VStack(alignment: .leading) {
Text("Turtle Rock")
.font(.title)
HStack {
Text("Joshua Tree National Park")
.font(.subheadline)
Spacer()
Text("California")
.font(.subheadline)
}
}
.padding()
}
}
struct ContentView_Preview: PreviewProvider {
static var previews: some View {
ContentView()
}
}
MyPDFView
// MARK: - MyPDFView
fileprivate struct MyPDFView: UIViewRepresentable {
@Binding var data: Data
func makeUIView(context: UIViewRepresentableContext<MyPDFView>) -> UIView {
let empty = UIView()
//guard let provider = CGDataProvider(data: self.data as CFData) else {return empty}
//guard let document = CGPDFDocument(provider) else {return empty}
guard let url = URL(string: "https://api.chorke.org/academia/api/v1.0/health/card/01890600.pdf") else {return empty}
guard let document = CGPDFDocument(url as CFURL) else {return empty}
guard let page = document.page(at: 1) else {return empty}
let pageRect = page.getBoxRect(.mediaBox)
let renderer = UIGraphicsImageRenderer(size: pageRect.size)
let uiImage = renderer.image { ctx in
UIColor.white.set()
ctx.fill(pageRect)
ctx.cgContext.translateBy(x: 0.0, y: pageRect.size.height)
ctx.cgContext.scaleBy(x: 1.0, y: -1.0)
ctx.cgContext.drawPDFPage(page)
}
return UIImageView(image: uiImage)
}
func updateUIView(_ view: UIView, context: UIViewRepresentableContext<MyPDFView>) {
// MARK: - TODO
}
}