2016-01-22 21 views
5

Próbowałem go osadzić, ale mój widok stosu jest dynamiczny, a moja aplikacja zmienia również orientacje od czasu do czasu. Mam kontrolę segmentu na końcu widoku. Próbowałem również googling, ale nie miałem szczęścia. z góry dziękuję.Jak osadzić widok stosu w widoku przewijania programowo

tej pory zrobiłem:

Biorąc zrobił obciążenie:

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

Biorąc zrobił układ:

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

Odpowiedz

2

Musisz ustawić ograniczenie wysokości kontroli segmentu .

Dla przykładu:

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

Więcej więcej, można dodać Empty widok z dołu aby uniknąć musi wypełnić stos widoku danych, mechanizm. Spowoduje to wyświetlenie pożądanych danych wyjściowych widoku.

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

dobry połów. To było dokładnie to, na co patrzyłem. – shafi

Powiązane problemy