Я работаю над средством просмотра 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. Любая помощь приветствуется, и я заранее благодарю вас.