Oto krótkie pytanie dotyczące czegoś, co działa, ale może być napisane o wiele lepiej. Mam UIScrollView
i listę obiektów ułożonych wewnątrz, jedną pod drugą. Wszystko odbywa się podczas viewDidLoad()
, a rozmieszczenie obiektów używa Auto Layout
. Oto, co robię, aby ustawić wartość contentSize
wysokości UIScrollView
na odpowiednią wartość.Obliczanie zawartościRozmiar dla UIScrollView podczas korzystania z automatycznego układu
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
globalView.contentSize = CGSize(width: globalView.frame.width,
height: globalView.frame.height * 1.59)
}
Działa, ale arbitralna wartość 1.59 została oczywiście podjęta przeze mnie, próbując kilku możliwych wartości. Jaki jest właściwy sposób obliczenia zawartości w takim przypadku? Robię wszystko programowo. Wyszukiwanie w sieci nie doprowadziło mnie do żadnej prostej i jasnej odpowiedzi, więc chociaż może to być nieco duplikatem pytanie, postanowiłem przeformułować to.
Można znaleźć wiele odpowiedzi na ten sam temat o ustawienie ograniczenia do UIScrollView. Jeśli ustawisz więzy poprawnie dla całego komponentu wewnątrz UIScrollView, wtedy nie będziesz musiał programowo ustawiać stałego rozmiaru. Zobacz ten link wyjaśniając to samo - http://stackoverflow.com/questions/35624873/ios-scrollview-needs-constraint-for-y-position-or-height/35625897#35625897 –
Prawda, ale większość (wszystkie) z nich zakłada używasz storyboardu :) – Michel