Ваш родительский вид выглядит как вид с прокруткой, и в нем отсутствуют ограничения, которые сообщают ему, каков его размер прокручиваемого содержимого (обратите внимание на предупреждение на первом скриншоте). Поскольку размер контента не определяет ничто, поэтому размер области прокрутки равен нулю.
Я не уверен, какие именно ограничения вам нужны, так как это зависит от деталей вашей ситуации, но для того, чтобы хотя бы увидеть ваше подпредставление вы можете добавить (например) ограничения равной ширины и равной высоты к вашему подпредставлению и его родительскому представлению (представление прокрутки):
NSLayoutConstraint.activate([
subview.widthAnchor.constraint(equalTo: parent.widthAnchor),
subview.heightAnchor.constraint(equalTo: parent.heightAnchor)
])
Это определяет область прокрутки как равную по ширине и высота до рамки вида прокрутки. Однако, если вы сделаете это, то при попытке прокрутки за пределы области прокрутки (если она включена для этого вида прокрутки) действительно не будет никакой прокрутки, кроме прыгающего поведения.
Вы можете вместо этого измените привязку высоты, чтобы она была равна некоторой константе, просто чтобы обеспечить некоторую фактическую прокрутку:
NSLayoutConstraint.activate([
subview.widthAnchor.constraint(equalTo: parent.widthAnchor),
subview.heightAnchor.constraint(equalToConstant: 2000) // just some arbitrary amount for demonstration purposes
])
Это делает высоту прокрутки равной 2000 точкам, независимо от высоты рамки представления прокрутки.
Или, если вы хотите, чтобы область прокрутки была кратна высоте кадра представления прокрутки, вы можете установить множитель для привязки высоты:
NSLayoutConstraint.activate([
subview.widthAnchor.constraint(equalTo: parent.widthAnchor),
subview.heightAnchor.constraint(equalTo: parent.heightAnchor, multiplier: 3)
])
Это делает высоту прокрутки равной В три раза превышает высоту рамки вида с прокруткой.
И если вы хотите горизонтальную прокрутку, просто измените widthAnchor
вместо heightAnchor
, как я делал выше. Или, если вы хотите область с прокруткой 2D, которая позволяет перемещаться как по вертикали, так и по горизонтали, измените оба.