Когда я хочу установить верхние привязки моих подпредставлений в UIScrollView
, я должен задать им постоянную высоту, иначе scrollView не будет прокручиваться.Но по мере того как их число растет, это похоже на беспорядок.
Например, если я установлю для моих 2-ых подпредставлений 'topAnchor
значение первого * bottomAnchor
, оно не будет прокручиваться.Я должен установить их на якорь scrollView.Есть ли лучший способ достичь этого, не задавая константу и не вычисляя расстояние самостоятельно?
Вот мой scrollView:
scrollView.translatesAutoresizingMaskIntoConstraints = false
scrollView.contentSize = CGSize(width: UIScreen.main.bounds.width, height: 500)
scrollView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
scrollView.isScrollEnabled = true
belowContainer.addSubview(scrollView)
scrollView.topAnchor.constraint(equalTo: belowContainer.topAnchor, constant: 20).isActive = true
scrollView.leadingAnchor.constraint(equalTo: belowContainer.leadingAnchor).isActive = true
scrollView.trailingAnchor.constraint(equalTo: belowContainer.trailingAnchor).isActive = true
scrollView.bottomAnchor.constraint(equalTo: belowContainer.bottomAnchor, constant: 0).isActive = true
И я использую следующие переменные, чтобы получить правильный вертикальный интервалмежду подпредставлениями
var counter : CGFloat = 0; // height space counter between uiItems below!
let multiplierHeight : CGFloat = 32 // we multiply our counter by this value to get the right spacing!
И, наконец, я получил привязку своих подпредставлений в цикле for, например:
for lbl in labelsArray {
lbl.font = UIFont(name: fontName, size: 20)
lbl.topAnchor.constraint(equalTo: scrollView.topAnchor, constant: counter * multiplierHeight).isActive = true
lbl.heightAnchor.constraint(equalToConstant: 25).isActive = true
counter += 1
}