QLPreview keeps blinking and stops previewing the file when opening some high-resolution PDF files with heavy content. This can only be simulated in a real device built in xcode simulators cant simulate the issue.
Tested in Xcode Version 15.4 (15F31d) and iPadOS Version 17.5.1.
Following is My Sample code :
import UIKit
import QuickLook
class ViewController: UIViewController {
var currentViewFilePath = ""
let preview = QLPreviewController()
override func viewDidLoad() {
super.viewDidLoad()
self.setupQLPreview()
loaddata()
// Do any additional setup after loading the view.
}
func loaddata(){
if let fileURL = Bundle.main.url(forResource: "CD28048D", withExtension: "pdf") {
self.currentViewFilePath = fileURL.relativePath
self.preview.reloadData()
// Use the fileURL here
print("File URL: \(fileURL)")
} else {
print("File not found")
}
}
}
extension ViewController:QLPreviewControllerDelegate,QLPreviewControllerDataSource{
func setupQLPreview(){
preview.delegate = self
preview.dataSource = self
self.view.addSubview(preview.view)
let previewhight = (UIScreen.main.bounds.height - ((self.navigationController?.navigationBar.frame.height ?? 0)))
preview.view.translatesAutoresizingMaskIntoConstraints = false
preview.view.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true
preview.view.leftAnchor.constraint(equalTo: self.view.leftAnchor,constant: 4).isActive = true
preview.view.rightAnchor.constraint(equalTo: self.view.rightAnchor,constant: -4).isActive = true
preview.view.leadingAnchor.constraint(equalTo: self.view.leadingAnchor,constant: 4).isActive = true
preview.view.trailingAnchor.constraint(equalTo: self.view.trailingAnchor,constant: -4).isActive = true
preview.view.widthAnchor.constraint(equalToConstant: self.view.frame.width-8).isActive = true
preview.view.heightAnchor.constraint(equalToConstant: previewhight-4).isActive = true
preview.view.bottomAnchor.constraint(equalTo: self.view.bottomAnchor).isActive = true
preview.navigationController?.isNavigationBarHidden = true
self.addChild(preview)
preview.didMove(toParent: self)
}
func numberOfPreviewItems(in controller: QLPreviewController) -> Int {
if self.currentViewFilePath.isEmpty || self.currentViewFilePath == ""{
return 0
}else{
return 1
}
}
func previewController(_ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem {
let fileUrl = URL(fileURLWithPath: self.currentViewFilePath)
return fileUrl as QLPreviewItem
}
}
while running the above code Xcode debugger prints following errors:
View service did terminate with error:
Error Domain=_UIViewServiceInterfaceErrorDomain Code=3 "(null)" UserInfo={Message=Service Connection Interrupted} #Remote
Preview collection viewServiceDidTerminateWithError: Error Domain=_UIViewServiceInterfaceErrorDomain Code=3 "(null)" UserInfo={Message=Service Connection Interrupted} #Remote
[u 0AA9D4C5-BBA1-56F6-8FFF-F5F56B99399A:m (null)] [com.apple.quicklook.extension.previewUI(1.0)] Connection to plugin invalidated while in use.
Post
Replies
Boosts
Views
Activity
When drawing using PKInkingTool as soon as the drawing is finished markups getting disappear this happens in IOS 16 after Xcode 14 releases including Xcode 14 This cannot be simulated when built by Xcode 13.4
When drawing using PKInkingTool as soon as the drawing is finished markups getting disappear this happens in IOS 16 Xcode 14.1 Beta