iOS PDFKit 禁用垂直滚动弹跳
iOS PDFKit Disable vertical scroll bounce
如何使用 PDFKit 在 PDFView
中禁用滚动反弹?
显示 PDF 的视图没有 滚动反弹 选项。
这是我的代码:
if let path = Bundle.main.path(forResource: pdfObject, ofType: "pdf") {
let url = URL(fileURLWithPath: path)
if let pdfDocument = PDFDocument(url: url) {
pdfView.autoresizesSubviews = true
pdfView.autoresizingMask = [.flexibleWidth, .flexibleHeight,
.flexibleTopMargin, .flexibleLeftMargin]
pdfView.autoScales = true
pdfView.displaysPageBreaks = true
pdfView.displayDirection = .vertical
pdfView.displayMode = .singlePageContinuous
pdfView.document = pdfDocument
pdfView.maxScaleFactor = 4.0
pdfView.minScaleFactor = pdfView.scaleFactorForSizeToFit
}
}
提前致谢(对于一个可能简单得可笑的问题!)
遗憾的是,没有导出的 API 来设置 PDFView
所需的 弹跳 行为。
话虽如此,您现在可以(安全地)利用 PDFView
实现细节来绕过它:
extension PDFView {
/// Disables the PDFView default bouncing behavior.
func disableBouncing() {
for subview in subviews {
if let scrollView = subview as? UIScrollView {
scrollView.bounces = false
return
}
}
print("PDFView.disableBouncing: FAILED!")
}
}
然后在您的代码中像这样使用它:
pdfView.disableBouncing()
警告。请记住,这样的解决方案 可能 在未来的 iOS 版本中失效。不过,请放心,您的应用不会因此而崩溃(您只是根本不会禁用弹跳行为)。
如何使用 PDFKit 在 PDFView
中禁用滚动反弹?
显示 PDF 的视图没有 滚动反弹 选项。
这是我的代码:
if let path = Bundle.main.path(forResource: pdfObject, ofType: "pdf") {
let url = URL(fileURLWithPath: path)
if let pdfDocument = PDFDocument(url: url) {
pdfView.autoresizesSubviews = true
pdfView.autoresizingMask = [.flexibleWidth, .flexibleHeight,
.flexibleTopMargin, .flexibleLeftMargin]
pdfView.autoScales = true
pdfView.displaysPageBreaks = true
pdfView.displayDirection = .vertical
pdfView.displayMode = .singlePageContinuous
pdfView.document = pdfDocument
pdfView.maxScaleFactor = 4.0
pdfView.minScaleFactor = pdfView.scaleFactorForSizeToFit
}
}
提前致谢(对于一个可能简单得可笑的问题!)
遗憾的是,没有导出的 API 来设置 PDFView
所需的 弹跳 行为。
话虽如此,您现在可以(安全地)利用 PDFView
实现细节来绕过它:
extension PDFView {
/// Disables the PDFView default bouncing behavior.
func disableBouncing() {
for subview in subviews {
if let scrollView = subview as? UIScrollView {
scrollView.bounces = false
return
}
}
print("PDFView.disableBouncing: FAILED!")
}
}
然后在您的代码中像这样使用它:
pdfView.disableBouncing()
警告。请记住,这样的解决方案 可能 在未来的 iOS 版本中失效。不过,请放心,您的应用不会因此而崩溃(您只是根本不会禁用弹跳行为)。