PDFThumbnailView сломанные ограничения - PullRequest
0 голосов
/ 08 апреля 2020

Я работаю над средством просмотра PDF, использующим PDFKit, и получаю предупреждение о нарушении ограничения, которое появляется, когда устройства поворачиваются из альбомной в портретную. Не отображается при повороте из портрета в пейзаж. Он также показывает только в первый раз и только показывает iOS 12, а не 13. Вот предупреждение:

HSDFViewerTestProject[4938:4399120] [LayoutConstraints] Unable to simultaneously satisfy constraints.
    Probably at least one of the constraints in the following list is one you don't want. 
    Try this: 
        (1) look at each constraint and try to figure out which you don't expect; 
        (2) find the code that added the unwanted constraint or constraints and fix it. 
    (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints) 
(
    "<NSAutoresizingMaskLayoutConstraint:0x2819ebbb0 h=-&- v=-&- PDFThumbnailItem_ios:0x104e1f6d0.width == PDFCollectionView_ios:0x107855e00.width - 1164   (active)>",
    "<NSLayoutConstraint:0x2819ad810 H:|-(0)-[UIView:0x104a04340]   (active, names: '|':UIView:0x104a04160 )>",
    "<NSLayoutConstraint:0x2819ad860 UIView:0x104a04340.trailing == UIView:0x104a04160.trailing   (active)>",
    "<NSLayoutConstraint:0x2819ae350 PDFThumbnailView:0x104e1ddd0.left == PDFCollectionView_ios:0x107855e00.left   (active)>",
    "<NSLayoutConstraint:0x2819ae3a0 H:[PDFCollectionView_ios:0x107855e00]-(0)-|(LTR)   (active, names: '|':PDFThumbnailView:0x104e1ddd0 )>",
    "<NSLayoutConstraint:0x2819ae5d0 H:|-(0)-[PDFThumbnailView:0x104e1ddd0]   (active, names: '|':UIView:0x104e17510 )>",
    "<NSLayoutConstraint:0x2819ae620 PDFThumbnailView:0x104e1ddd0.trailing == UIView:0x104e17510.trailing   (active)>",
    "<NSLayoutConstraint:0x2819ae990 H:|-(0)-[UIView:0x104e17510]   (active, names: '|':UIView:0x104a04340 )>",
    "<NSLayoutConstraint:0x2819aea30 UIView:0x104e17510.trailing == UIView:0x104a04340.trailing   (active)>",
    "<NSLayoutConstraint:0x281991ef0 'UIView-Encapsulated-Layout-Width' UIView:0x104a04160.width == 834   (active)>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x2819ae350 PDFThumbnailView:0x104e1ddd0.left == PDFCollectionView_ios:0x107855e00.left   (active)>

Вот код, который имеет дело с настройкой PDFThumbnailView:

func viewDidLoad()
{     
     thumbnailView = PDFThumbnailView(frame: .zero)

     view.addSubview(thumbnailView)
     thumbnailView.translatesAutoresizingMaskIntoConstraints                        = false
     thumbnailView.bottomAnchor  .constraint(equalTo: view.bottomAnchor)  .isActive = true
     thumbnailView.leadingAnchor .constraint(equalTo: view.leadingAnchor) .isActive = true
     thumbnailView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
     thumbnailView.heightAnchor  .constraint(equalToConstant: 44.0)       .isActive = true
     thumbnailView.clipsToBounds = true
}

func viewDidAppear()
{
     thumbnailView.autoresizesSubviews = false
     thumbnailView.contentMode = .redraw
     thumbnailView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
}

// This is called sometime after the vc is created when the pdf doc is ready.
func loadPDFDoc()
{
     self.thumbnailView.pdfView       = self.pdfView
     self.thumbnailView.thumbnailSize = CGSize(width: 25.0, height: 25.0)
     self.thumbnailView.layoutMode    = .horizontal
}

То, что я до сих пор пробовал, это:

  • Переход от использования ведущих и конечных якорей, установка ширины в ширину родительского вида и центрирование ее. (Не исправил)
  • Снимите ведущие или ведущие анкеры и замените их на ширину c. (Исправлена ​​ошибка, но теперь я утратил преимущество автоматического макета)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...