«Невозможно одновременно удовлетворить ограничения» на сложном макете - PullRequest
0 голосов
/ 29 апреля 2020

В моем журнале появляется следующее предупреждение:

2020-04-29 16:36:25.500796-0400 [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. 
(
    "<NSLayoutConstraint:0x6000033bce10 Group Color.height == 36   (active, names: Group Color:0x7f863849e0c0 )>",
    "<NSLayoutConstraint:0x6000033a96d0 V:|-(0)-[Group Color]   (active, names: Group Color:0x7f863849e0c0, Post Container:0x7f863849df50, '|':Post Container:0x7f863849df50 )>",
    "<NSLayoutConstraint:0x6000033a9b30 V:[Group Color]-(8)-[Title]   (active, names: Title:0x7f863a856990, Group Color:0x7f863849e0c0 )>",
    "<NSLayoutConstraint:0x6000033a9c20 V:[Title]-(12)-[UICollectionView:0x7f863a094200]   (active, names: Title:0x7f863a856990 )>",
    "<NSLayoutConstraint:0x6000033a9ef0 V:[UIStackView:0x7f863a859090]-(16)-|   (active, names: Post Container:0x7f863849df50, '|':Post Container:0x7f863849df50 )>",
    "<NSLayoutConstraint:0x6000033a9f40 V:[UICollectionView:0x7f863a094200]-(16)-[UIStackView:0x7f863a859090]   (active)>",
    "<NSLayoutConstraint:0x6000033aa080 UILayoutGuide:0x600002917560'UIViewSafeAreaLayoutGuide'.bottom == Post Container.bottom + 4   (active, names: Post Container:0x7f863849df50 )>",
    "<NSLayoutConstraint:0x6000033aa2b0 Post Container.top == UILayoutGuide:0x600002917560'UIViewSafeAreaLayoutGuide'.top + 16   (active, names: Post Container:0x7f863849df50 )>",
    "<NSLayoutConstraint:0x6000033bb750 'UIView-Encapsulated-Layout-Height'PostTableViewCell:0x7f86388f8a00'PostTableViewCell'.height == 100   (active)>",
    "<NSLayoutConstraint:0x6000033aa170 'UIViewSafeAreaLayoutGuide-bottom' V:[UILayoutGuide:0x600002917560'UIViewSafeAreaLayoutGuide']-(0)-|   (active, names: '|':PostTableViewCell:0x7f86388f8a00'PostTableViewCell' )>",
    "<NSLayoutConstraint:0x6000033aa0d0 'UIViewSafeAreaLayoutGuide-top' V:|-(0)-[UILayoutGuide:0x600002917560'UIViewSafeAreaLayoutGuide']   (active, names: '|':PostTableViewCell:0x7f86388f8a00'PostTableViewCell' )>"
)

Will attempt to recover by breaking constraint 
<NSLayoutConstraint:0x6000033bce10 Group Color.height == 36   (active, names: Group Color:0x7f863849e0c0 )>

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

Как видите, мой макет довольно сложный.

1 Ответ

0 голосов
/ 30 апреля 2020

Нам нужно увидеть картинку с вашими ограничениями, найденную здесь:

перейдите к main.storyboard, откройте каталог (внизу справа), разверните, чтобы найти ограничения

Распространенной проблемой является наличие двух ограничений для одного и того же объекта и стороны

, то есть:

label.leading = 20
label.leading = 25

Если вы видите два разных ограничения с одним и тем же именем, вы столкнетесь с «неспособностью одновременно выполнить ограничение ошибки. "

...