我只想要我收到的东西
pdfView.autoScales = true而没有改变比例的可能性。
在@carmine的帮助下,我们有:
import UIKit
import PDFKit
class ViewController: UIViewController {
@IBOutlet weak var pdfView: PDFView!
override func viewDidLoad() {
super.viewDidLoad()
setPdfFile()
}
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
self.pdfView.autoScales = true
}
func setPdfFile() {
if let path = Bundle.main.path(forResource: "Swift.org - Getting Started", ofType: "pdf") {
let url = URL(fileURLWithPath: path)
if let pdfDocument = PDFDocument(url: url) {
pdfView.autoScales = true
pdfView.displayMode = .singlePageContinuous
pdfView.displayDirection = .vertical
pdfView.document = pdfDocument
pdfView.displaysPageBreaks = false
pdfView.minScaleFactor = pdfView.scaleFactor
pdfView.maxScaleFactor = pdfView.scaleFactorForSizeToFit
}
}
}
}这就产生了这样的结果:https://gfycat.com/briefpowerlessbug
但是,如果您运行时没有使用这些行:
pdfView.minScaleFactor = pdfView.scaleFactor
pdfView.maxScaleFactor = pdfView.scaleFactorForSizeToFit您将收到我需要的结果,但带有缩放功能:https://gfycat.com/presentconcretebunting
我想禁用缩放,并使pdfView的宽度等于pdf-file的宽度。
发布于 2019-09-14 04:28:56
我尝试了各种禁用收缩缩放的方法,包括覆盖canZoomIn (我发现它在收缩缩放时没有被调用),设置代理的pdfViewWillChangeScaleFactor方法(我发现它从未被调用过),以及在视图上设置最大和最小比例因子(这阻止了视图自动缩放)。
最后,通过将我自己的pinchGestureRecognizer添加到PDFView以覆盖pinchGestureRecognizer中内置的视图,我能够完成我想要的事情。为了使您的夹点识别器具有优先级,您需要为识别器创建一个委托并覆盖以下方法:
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer,
shouldBeRequiredToFailBy otherGestureRecognizer: UIGestureRecognizer) -> Bool {
//Prefer this pinch recognizer over the default one to override pinch zoom
if gestureRecognizer is UIPinchGestureRecognizer && otherGestureRecognizer is UIPinchGestureRecognizer {
return true
}
}
return false
}发布于 2019-02-22 22:36:31
使用
pdfView.minScaleFactor = pdfView.scaleFactor
pdfView.maxScaleFactor = pdfView.scaleFactorForSizeToFit并添加
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
self.pdfView.autoScales = true
}发布于 2019-09-09 15:37:22
解决方案是创建一个CustomPDFView并覆盖它的实例属性 canZoomIn:
class CustomPDFView: PDFView {
override func canZoomIn() -> Bool {
return false
}
}那么@IBOutlet weak var pdfView: PDFView!的类型应该是@IBOutlet weak var pdfView: CustomPDFView!。还要在IdentyInspector上更新它,这样它就不会让你崩溃。
有关更多信息,请查看:来自Apple Docs的canZoomIn
canZoomIn
返回一个布尔值,指示用户是否可以放大视图和放大。
声明
var canZoomIn: Bool { get }https://stackoverflow.com/questions/54829190
复制相似问题