2016-01-22 24 views
5

Ho provato a incorporarlo, ma la visualizzazione dello stack è dinamica e la mia app cambia anche gli orientamenti di volta in volta. Ho il controllo del segmento alla fine della vista. Ho provato anche a cercarlo su google, ma non ho avuto fortuna. Grazie in anticipo.Come incorporare la vista dello stack nella vista di scorrimento a livello di programmazione

Finora ho fatto:

In considerazione fecero carico:

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

In considerazione ha fatto 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) 
    } 

risposta

2

È necessario impostare il vincolo altezza del controllo dei segmenti .

Per esempio:

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

Più sopra, è possibile aggiungere vista dal basso vuoto per evitare il meccanismo deve riempire di vista dello stack. Questo mostrerà l'output della vista desiderata.

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

buona cattura. Era esattamente la cosa che stavo cercando. – shafi