iOS PDFKit - вопрос ширины - PullRequest
0 голосов
/ 29 августа 2018

В моем приложении я использую PDFKit для отображения простых PDF-файлов.

PDF представлен на ViewController. В PDF нужно установить ширину экрана и не более. Я установил ограничение в раскадровке для PDFView, чтобы оно было «равным ширине суперпредставлению». Если размер PDF превышает несколько страниц, пользователь может осуществлять вертикальную прокрутку.

Казалось бы, все в порядке, отлично работает на всех размерах экрана, за исключением iPhone SE / 5, где ширина PDF больше размера экрана и, следовательно, для просмотра всего документа требуется горизонтальная прокрутка.

Не уверен, почему PDFView больше ширины, чем экран, когда я установил ограничение «равная ширина суперпредставлению»

Ниже приведен код одного из моих контроллеров представления, который представляет PDF

import Foundation
import UIKit
import PDFKit

class DisclaimerViewController: UIViewController, UIScrollViewDelegate {


@IBOutlet var pdfView: PDFView!



override func viewDidLoad() {
    super.viewDidLoad()

    if let path = Bundle.main.path(forResource: "Disclaimer", ofType: "pdf") {
        let url = URL(fileURLWithPath: path)
        if let pdfDocument = PDFDocument(url: url) {


            pdfView.document = pdfDocument
            pdfView.autoScales = true
            pdfView.maxScaleFactor = 4.0
            pdfView.minScaleFactor = pdfView.scaleFactorForSizeToFit
            pdfView.displayMode = .singlePageContinuous


        }
    }

    // colour scheme

    //navigationController?.navigationBar.barTintColor = UIColor(red:0.6, green:0.4, blue:1.0, alpha:1.0)
    self.view.backgroundColor = UIColor.black
}





override var preferredStatusBarStyle : UIStatusBarStyle {
    return UIStatusBarStyle.lightContent
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)


}

@IBAction func back(_ sender: AnyObject) {


    self.dismiss(animated: true, completion: nil)
}

}

Обратите внимание, что это тестирование в симуляторе. Это ошибка симулятора? Или я что-то упустил?

Заранее спасибо

1 Ответ

0 голосов
/ 29 августа 2018

Клянусь, я хотел бы привязать большой кирпич к Xcode и его симулятору и выбросить их обоих на дно океана ....

Кажется, это ошибка симулятора.

Когда моя раскадровка была настроена для просмотра контроллеров представления в виде размера iPhone SE / 5, без изменения фактических контроллеров представления, ограничений и т. Д., Ширина симулятора iPhone SE / 5 в PDFView идеально совпадает с шириной iPhone / SE. Нет горизонтальной прокрутки.

Но если раскадровка настроена на просмотр экрана большего размера, симулятор для iPhone SE / 5 сделан слишком широким, что приводит к горизонтальной прокрутке.

Буквально простое изменение вида вашего раскадровки, похоже, нарушает ограничения на ширину в симуляторе.

Я надеюсь, что это поможет кому-то еще и избежать того же потерянного времени, которое я пережил ...

...