У меня сложная иерархия представлений, построенная в Interface Builder, с вложенными UIStackViews. Я получаю уведомления об "неудовлетворительных ограничениях" каждый раз, когда я скрываю некоторые из своих внутренних стеков. Я отслеживал это:
(
"<NSLayoutConstraint:0x1396632d0 'UISV-canvas-connection' UIStackView:0x1392c5020.top == UILabel:0x13960cd30'Also available on iBooks'.top>",
"<NSLayoutConstraint:0x139663470 'UISV-canvas-connection' V:[UIButton:0x139554f80]-(0)-| (Names: '|':UIStackView:0x1392c5020 )>",
"<NSLayoutConstraint:0x139552350 'UISV-hiding' V:[UIStackView:0x1392c5020(0)]>",
"<NSLayoutConstraint:0x139663890 'UISV-spacing' V:[UILabel:0x13960cd30'Also available on iBooks']-(8)-[UIButton:0x139554f80]>"
)
В частности, ограничение UISV-spacing
: при скрытии UIStackView его высокое ограничение получает константу 0, но похоже, что она сталкивается с внутренним ограничением интервала стеков: она требует 8 точек между моей меткой и кнопкой, что непримиримо с скрывая ограничение, и поэтому сбой ограничений.
Есть ли способ обойти это? Я попытался рекурсивно скрыть все внутренние StackViews скрытого представления стека, но это приводит к странной анимации, когда контент выплывает из экрана и вызывает серьезные потери FPS для загрузки, но при этом не устраняет проблему.