2

Я хочу макет этикетки в правом углу ИТС superView с 8pt завершающего и 10pt из нижнейAutolayout будет пытаться восстановить разбив ограничение

Это мой код:

let label = UILabel(frame: CGRectZero) 
    label.text = "text goes here" 
    label.textColor = UIColor.whiteColor() 
    label.translatesAutoresizingMaskIntoConstraints = false 
    label.numberOfLines = 0 
    label.textAlignment = .Right 
    label.backgroundColor = UIColor.blackColor() 
    label.font = UIFont(name: "TheSans-Plain", size: 17) 
    imageTitleContainer.addSubview(label) 


    let label_constraint_H:Array = NSLayoutConstraint.constraintsWithVisualFormat("H:|-(>=8)-[label]-(8)-|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["label":label]) 

    let label_constraint_V:Array = NSLayoutConstraint.constraintsWithVisualFormat("V:[label]-(10)-|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: ["label":label]) 

    imageTitleContainer.addConstraints(label_constraint_H) 
    imageTitleContainer.addConstraints(label_constraint_V)` 

но я получение Unable to simultaneously satisfy constraints в console

Will attempt to recover by breaking constraint <NSLayoutConstraint:0x7ff55acf24c0 H:[UILabel:0x7ff55acf1af0'text goes here']-(8)-| (Names: '|':UIView:0x7ff55acbf430)>

Примечание: 0x7ff55acbf430 это мой imageTitleContainer в коде

Update: другие сдерживает: "<NSLayoutConstraint:0x7ff55accdc80 H:|-(0)-[UIView:0x7ff55acbf430] (Names: '|':UIView:0x7ff55acca080)>", "<NSLayoutConstraint:0x7ff55accdcd0 H:[UIView:0x7ff55acbf430]-(0)-| (Names: '|':UIView:0x7ff55acca080)>", "<NSLayoutConstraint:0x7ff55acf2450 H:|-(>=8)-[UILabel:0x7ff55acf1af0'text goes here'] (Names: '|':UIView:0x7ff55acbf430)>", "<NSLayoutConstraint:0x7ff55acf24c0 H:[UILabel:0x7ff55acf1af0'text goes here']-(8)-| (Names: '|':UIView:0x7ff55acbf430)>", "<NSLayoutConstraint:0x7ff55adb3830 'UIView-Encapsulated-Layout-Width' H:[UIView:0x7ff55acca080(0)]>" )

+0

Какие еще ограничения упоминаются в консоли? Должен быть список всех ограничений, которые должны применяться. –

+0

@ JörnBuitink Я обновил свой вопрос –

+0

из-за конфликта в горизонтальных ограничениях с одной стороны вы применяете '> = 8' и другое ограничение на стороне сбоя. Удалить '> = 8' Ведущее ограничение просто применяет ограничивающее ограничение' -8-'и если требуется установить соответствующую ширину. –

ответ

0

Попробуйте более низкий приоритет для одного из ваших ограничений, например

H:|-(>[email protected])-[label]-(8)-| 

Это должно быть сделано, чтобы позволить UICollectionView выполнять свою компоновку. Обратите внимание на ограничение нулевой ширины с именем UIView-Encapsulated-Layout-Width, которое разбивает ваш макет.

 Смежные вопросы

  • Нет связанных вопросов^_^