2016-08-01 3 views
-4

Возможно, по крайней мере одно из ограничений в следующем списке - это тот, который вы не хотите. Попробуйте следующее:Не удается одновременно удовлетворить ограничениям?

  1. посмотреть на каждое ограничение и попытаться выяснить, чего вы не ожидаете;
  2. найти код, который добавил нежелательные ограничения или ограничения и исправить его.

(Примечание: Если вы видите NSAutoresizingMaskLayoutConstraints, что вы не понимаете, обратитесь к документации по UIView собственности translatesAutoresizingMaskIntoConstraints)

(
    "<NSLayoutConstraint:0x7fa0a385b5a0 H:|-(0)-[UIView:0x7fa0a3855f00] (Names: '|':UIView:0x7fa0a38588a0)>", 
    "<NSLayoutConstraint:0x7fa0a14c5dc0 H:[UIView:0x7fa0a3855f00]-(0)-| (Names: '|':UIView:0x7fa0a38588a0)>", 
    "<NSLayoutConstraint:0x7fa0a141e070 H:[UIView:0x7fa0a15274e0]-(80)-| (Names: '|':UIView:0x7fa0a3855f00)>", 
    "<NSLayoutConstraint:0x7fa0a141e0c0 H:|-(15)-[UIView:0x7fa0a15274e0] (Names: '|':UIView:0x7fa0a3855f00)>", 
    "<NSLayoutConstraint:0x7fa0a380c260 H:[UIView:0x7fa0a15274e0(305)]>", 
    "<NSLayoutConstraint:0x7fa0a16aa700 'UIView-Encapsulated-Layout-Width' H:[UIView:0x7fa0a38588a0(320)]>" 
) 

будет пытаться восстановить разбив ограничение <NSLayoutConstraint:0x7fa0a380c260 H:[UIView:0x7fa0a15274e0(305)]>

Сделать символическую точку останова на UIViewAlertForUnsatisfiableConstraints, чтобы поймать это в отладчике. Методы в категории UIConstraintBasedLayoutDebugging на UIView, перечисленные в <UIKit/UIView.h>, также могут быть полезны.

+0

да, еще один ищет то же http://stackoverflow.com/questions/38692313/constraints-warning-in-console-i-am -not-able-to-understand –

+2

Опубликуйте свой код ограничения или снимок экрана. – Catoshi

+0

это ошибка ограничений, вам нужно удалить ненужные ограничения, которые вы добавили. –

ответ

0

Вот мой опыт и решение.

Выберите вид (UILabel, UIImage и т.д.) Editor> Pin> (Выбрать ...) для SuperView Editor> Решение Проблемы Автокомпоновка> Добавить отсутствующих сдерживающих

Эта ошибка заключается в конфликте между ограничениями, которые у вас есть добавлено. Удалите ограничения, которые не требуются. Будьте осторожны, что вы не используете более одного ограничения в том же направлении и типе.

enter image description here Я бы рекомендовал вам использовать SnapKit. Это система Autolayout, очень удобная в использовании.

import SnapKit 

var label = UILabel() 

label.snp_makeConstraints { (make) -> Void in 
    make.centerX.equalTo(0) 
    make.centerY.equalTo(0) 
    make.width.equalTo(30) 
    make.height.equalTo(30) 
} 

https://github.com/SnapKit/SnapKit Надеюсь, что это полезно :)