2

ラベルの右隅に末尾と下からラベルをsuperViewレイアウト8pt10ptたい

これは私のコードです:

  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

更新:その他の制約: "<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)]>" )

4

1 に答える 1

0

制約の 1 つの優先順位を下げてみてください。

H:|-(>=8@999)-[label]-(8)-|

これは、UICollectionView がレイアウト作業を実行できるようにするために実行する必要があります。UIView-Encapsulated-Layout-Widthレイアウトを壊すという名前のゼロ幅制約に注意してください。

于 2015-12-25T23:40:05.307 に答える