2017-05-28 19 views
0

画面サイズがスタックビューの高さと幅を変更するため、定数を持つことができません。私はビューの高さと幅を持つ1つの一般的なスタックビューをしたい。プログラムでUIStackViewを設定して親ビューの幅と高さを100%にする方法はありますか?

問題がある場合は、self.view.frame.heightが私に0を与えます。これは、私がstackViewの高さを設定するために使用できると思ったので、奇妙です。

これは定数と正常に動作しますが、もちろん、私はそれが高さ/幅の動的ベースドンする必要があります。

parentStack.widthAnchor.constraint(equalToConstant: 414).isActive = true parentStack.heightAnchor.constraint(equalToConstant: 250).isActive = true

答えて

4

あなたが制約または自動サイズ変更マスクでこれを行うことができます。あなたは、制約を使用したい場合は

、あなたはこのように、制約を起動する前に、そのスーパーにスタックビューを追加する必要があります。

let rootView = ... 
rootView.addSubview(parentStack) 
rootView.addSubview(parentStack) 
parentStack.translatesAutoresizingMaskIntoConstraints = false 
NSLayoutConstraint.activate([ 
    rootView.leadingAnchor.constraint(equalTo: parentStack.leadingAnchor), 
    rootView.trailingAnchor.constraint(equalTo: parentStack.trailingAnchor), 
    rootView.widthAnchor.constraint(equalTo: parentStack.widthAnchor), 
    rootView.heightAnchor.constraint(equalTo: parentStack.heightAnchor)]) 

を使用すると、自動サイズ変更マスクを使用する場合は、スタックを設定する必要がありますビューのフレームはスーパービューの境界に等しい:

let rootView = ... 
rootView.addSubview(parentStack) 
parentStack.frame = rootView.bounds 
parentStack.translatesAutoresizingMaskIntoConstraints = true 
parentStack.autoresizingMask = [ .flexibleWidth, .flexibleHeight ] 
関連する問題