2016-01-22 16 views
5

私は埋め込みを試みましたが、スタックビューは動的で、私のアプリケーションは時々方向を変更しています。私はビューの最後にセグメントコントロールを持っています。 私もそれを見つけようとしましたが運がありませんでした。前もって感謝します。スタックビューをプログラムでスクロールビューに埋め込む方法

これまでのところ私が行っている:

を考慮して、負荷をした:ビューで

mainStackView.axis = UILayoutConstraintAxis.Vertical 
mainStackView.spacing = 3 
scrollView.frame = self.view.bounds 
scrollView.addSubview(mainStackView) 
view.addSubview(scrollView) 

は、レイアウトをした:

override func viewDidLayoutSubviews() 
    { 
     super.viewDidLayoutSubviews() 
     let top = topLayoutGuide.length 
     let bottom = bottomLayoutGuide.length 
         self.mainStackView.frame = CGRect(x: 0, y: top, width: view.frame.width, height: view.frame.height - top - bottom).insetBy(dx: 10, dy: 10) 
     dispatch_async(dispatch_get_main_queue()) 
      { 

       self.scrollView.frame = self.view.bounds 
       self.scrollView.contentSize = CGSize(width: self.view.bounds.width, height: self.segmentedControl.frame.origin.y + self.segmentedControl.frame.height + 50) 
     } 
     print(scrollView.contentSize) 
    } 

答えて

2

あなたはセグメント制御の高さ制約を設定する必要があります。例については

以上

segmentedControl.heightAnchor.constraintEqualToConstant(50).active = true 

より、あなたはスタックビューの記入しなければならないメカニズムを回避するために、空の底面図を追加することができます。これは、あなたが望むビュー出力を表示します。

 var bottomView = UIView(frame: CGRectZero) 
     stackView.addArrangedSubview(bottomView) 
+0

良いキャッチです。それはまさに私が探していたものでした。 – shafi

関連する問題