У меня есть пользовательское представление, это прокручиваемое представление со стековым представлением в нем. И я добавил 3 вида контейнера внутри этого стека, чтобы складывать и прокручивать вертикально. В каждом представлении контейнера я добавляю либо UIImage, либо представление UILabel.
Я не хочу, чтобы мое представление прокрутки прокручивалось, если все представления уже видны на экране. Для этого мне нужно знать высоту моего scrollingStackView, чтобы я мог сравнить его с текущим размером экрана. Вот как я настроил их в viewDidLoad:
setupScrollingSV()
setupContainer1()
setupContainer2()
setupContainer3()
setupImageViewInContainer1()
setupImageViewInContainer2()
setupLabelViewInContainer3()
Мой пользовательский вид стека прокрутки не имеет размера, я его выкладываю программно, оставляя левый, правый, верхний якоря.
scrollingSV.leftAnchor.constraint(equalTo: stackView.leftAnchor).isActive = true
scrollingSV.rightAnchor.constraint(equalTo: stackView.rightAnchor).isActive = true
scrollingSV.topAnchor.constraint(equalTo: stackView.topAnchor).isActive = true
И есть другое представление стека, которое находится в безопасной области моего представления, которое имеет это представление стека прокрутки и другое представление контейнера ContainerView4.
Я размещаю ContainerView4 следующим образом:
ContainerView4.leftAnchor.constraint(equalTo: stackView.leftAnchor).isActive = true
ContainerView4.rightAnchor.constraint(equalTo: stackView.rightAnchor).isActive = true
ContainerView4.topAnchor.constraint(equalTo: scrollingSV.bottomAnchor).isActive = true
ContainerView4.bottomAnchor.constraint(equalTo: stackView.bottomAnchor).isActive = true
ContainerView4.heightAnchor.constraint(equalToConstant: 100.0).isActive = true
Наконец, когда я использую иерархию представления отладки, я вижу высоту и ширину для моего scrollingSV и представления внутри контейнеров.
Вот код, который я пытаюсь получить размер для scrollingSV, который возвращает 0:
print("Scrollview height: \(scrollingSV.contentSize.height )")
Я уже пытался чтобы получить размер контента, используя union, как сказано в этом ответе stackoverflow: Как автоматически настроить UIScrollView для соответствия его содержимому Но это также возвращает 0.
Как получить эту прокрутку размер стека? Или это еще не рассчитано в viewDidLoad?
Спасибо