2016-01-22 10 views
5

Ich habe versucht, sie einzubetten, aber meine Stapelansicht ist dynamisch und meine App ändert auch von Zeit zu Zeit die Ausrichtung. Ich habe eine Segmentkontrolle am Ende der Ansicht. Ich habe auch versucht, es zu googeln, aber hatte kein Glück. Danke im Voraus.So können Sie die Stapelansicht programmgesteuert in die Bildlaufansicht einbetten

Bisher habe ich getan:

Im Hinblick Last tat:

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

Im Hinblick tat Layout:

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) 
    } 

Antwort

2

Sie müssen die Höhenbeschränkung der Segmentsteuerung einstellen .

Beispiel:

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

Mehr über, können Sie leere Unteransicht hinzufügen muss die Stapelansicht Mechanismus füllen zu vermeiden. Dies zeigt Ihnen die gewünschte Ansichtsausgabe.

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

guten Fang. Es war genau das, was ich suchte. – shafi

Verwandte Themen