я получаю «Невозможно одновременно удовлетворяют ограничениям» исключения (Xcode 5, IOS 7, как устройство и имитатор), где один из ограничений в списке что-то вроде этого:Что такое ограничение UIView-Encapsulated-Layout-Width?
"<NSLayoutConstraint:0x165b23d0 'UIView-Encapsulated-Layout-Width'
H:[StoryPlayerCell:0x165affc0(0)]>"
Я не ставил это ограничение. Это также не NSAutoresizingMaskLayoutConstraint
. Но откуда оно взялось? И как я могу избавиться от него?
Я понятия не имею. И я ничего не могу найти о 'UIView-Encapsulated-Layout-Width'
в документации Apple. Даже поиск в Google ничего не возвращает.
Любые предложения?
PS: Я использую эту ячейку в UICollectionView
с пользовательским подклассом UICollectionViewFlowLayout
. Может быть, часть 'Encapsulated-Layout'
имеет какое-то отношение к этому?
Можете ли вы загрузить образец проекта, где это воспроизводится? –
Попробуйте образец [CSStickyHeaderFlowLayout] (https://github.com/jamztang/CSStickyHeaderFlowLayout). Если вы обычно прокручиваетесь, ничего не происходит, но если вы прокручиваете очень медленно, ошибка будет сброшена. Это беспорядочно и трудно воспроизвести. – andreamazz
@andreamazz Я играл с образцом, я думаю, что эти коды вызывают исключение Autolayout. 'CGFloat height = MAX (0, -y + maxY);' строка 79 в CSStickyHeaderFlowLayout.m. если вы используете статическое значение для высоты, например, 200, исключение больше не произойдет. Я не могу понять, что такое UIView-Encapsulated-Layout, но похоже, что динамическое изменение кадра UICollectionViewLayoutAttributes может вызвать эту проблему. в примере проекта, это высота, в проблеме PO, я думаю, что это ширина. Может быть, я смогу немного поработать, если вы считаете, что это будет полезно. –