それはなぜ地球上
私は視覚的な形式で、各サブビューを指定し、それらを追跡することはもう
現実的ではないではないのか?あなたはこれが何らかの「どちらか/あるいは」の状況だと思っているようです。視覚的な書式設定を使用して制約のコレクションを構築することはできません。法律では、
のすべてをビジュアルフォーマットに入力する必要があります。
レイアウトエンジンは、あなたの制約を形成するために使用したという表記を知らないか気にしません。制約は制約です!私は視覚的な書式設定を使用していますが、私は、私のように、時間としてそれを一の制約をやってる
var con = [NSLayoutConstraint]()
con.appendContentsOf(
NSLayoutConstraint.constraintsWithVisualFormat(
"H:|[sv]|",
options:[], metrics:nil,
views:["sv":sv]))
con.appendContentsOf(
NSLayoutConstraint.constraintsWithVisualFormat(
"V:|[sv]|",
options:[], metrics:nil,
views:["sv":sv]))
var previousLab : UILabel? = nil
for i in 0 ..< 30 {
let lab = UILabel()
// lab.backgroundColor = UIColor.redColor()
lab.translatesAutoresizingMaskIntoConstraints = false
lab.text = "This is label \(i+1)"
sv.addSubview(lab)
con.appendContentsOf(
NSLayoutConstraint.constraintsWithVisualFormat(
"H:|-(10)-[lab]",
options:[], metrics:nil,
views:["lab":lab]))
if previousLab == nil { // first one, pin to top
con.appendContentsOf(
NSLayoutConstraint.constraintsWithVisualFormat(
"V:|-(10)-[lab]",
options:[], metrics:nil,
views:["lab":lab]))
} else { // all others, pin to previous
con.appendContentsOf(
NSLayoutConstraint.constraintsWithVisualFormat(
"V:[prev]-(10)-[lab]",
options:[], metrics:nil,
views:["lab":lab, "prev":previousLab!]))
}
previousLab = lab
}
con.appendContentsOf(
NSLayoutConstraint.constraintsWithVisualFormat(
"V:[lab]-(10)-|",
options:[], metrics:nil,
views:["lab":previousLab!]))
NSLayoutConstraint.activateConstraints(con)
:
は、私はスクロールビューとその内側の30枚のラベルのための制約を構築このコードを考えてみましょうビューを追加します(これはあなたが尋ねるものです)。
ハ。今私は親切な気分を感じる:)ありがとう – egze
スクロールビューに 'contentSize.height'を設定して実際にスクロールできるようにするには、最後のラベルをスクロールビューの下端に拘束する必要があることに注意してください。 –
@robmayoffそれをした、ちょうど貼り付けを中断した – matt