2017-08-03 5 views
0

アイデア?このスタックビューはなぜ遊び場で動作しないのですか?

import UIKit 
    import PlaygroundSupport 

    extension CGRect { 
     init(_ x:CGFloat, _ y:CGFloat, _ w:CGFloat, _ h:CGFloat) { 
      self.init(x:x, y:y, width:w, height:h) 
     } 
    } 

    let v0 = UIView(frame: CGRect(0, 0, 500, 500)) 
    v0.backgroundColor = .white 

    let v1 = UIView(frame: CGRect(0,0,500,100)) 
    v1.backgroundColor = .red 
    v1.translatesAutoresizingMaskIntoConstraints = false 

    let v2 = UIView(frame: CGRect(0,200,500,100)) 
    v2.backgroundColor = .yellow 
    v2.translatesAutoresizingMaskIntoConstraints = false 

    let v3 = UIView(frame: CGRect(0,400,500,100)) 
    v3.backgroundColor = .blue 
    v3.translatesAutoresizingMaskIntoConstraints = false 

    let sv = UIStackView(frame: CGRect(0, 0, 500, 500)) 
    sv.addArrangedSubview(v1) 
    sv.addArrangedSubview(v2) 
    sv.addArrangedSubview(v3) 
    sv.axis = .vertical 
    sv.alignment = .center 
    sv.distribution = .fillEqually 
    sv.translatesAutoresizingMaskIntoConstraints = false 
    sv.backgroundColor = .orange 

    v0.addSubview(sv) 

NSLayoutConstraint.activate([ 

sv.topAnchor.constraint(equalTo: v0.topAnchor), 
    sv.leadingAnchor.constraint(equalTo: v0.leadingAnchor), 
    sv.trailingAnchor.constraint(equalTo: v0.trailingAnchor), 
     sv.bottomAnchor.constraint(equalTo: v0.bottomAnchor), 
    ]) 

    PlaygroundPage.current.liveView = v0 

これは私が見たものである...反対側の軸で

enter image description here

+0

仕事がないとはどういう意味ですか?カラービューのスタックは私のプレイグラウンドに正しく表示されます – XueYu

+0

ああ、私はちょうど白いボックスを参照してください。私はスクリーンショットをアップロードします。 –

+0

右側の最後のUIViewをクリックして結果を展開します – XueYu

答えて

0

は、それはサイズに制約が必要です。

したがって、stackviewは縦モードのときに、私は...

v1.widthAnchor.constraint(equalTo: v0.widthAnchor) 
v2.widthAnchor.constraint(equalTo: v0.widthAnchor) 
v3.widthAnchor.constraint(equalTo: v0.widthAnchor) 

と水平ではこれらの制約を追加...

v1.heightAnchor.constraint(equalTo: v0.heightAnchor) 
v2.heightAnchor.constraint(equalTo: v0.heightAnchor) 
v3.heightAnchor.constraint(equalTo: v0.heightAnchor) 

も色付きのビューのフレームを削除できます。

関連する問題