Это, вероятно, потому что у вашего greyview
нет его bottomAnchor
. Для правильной работы внутри scrollView необходимы верхний и нижний якоря:
scrollview.addSubview(greyview)
greyview.topAnchor.constraint(equalTo: scrollview.topAnchor).isActive = true
greyview.centerXAnchor.constraint(equalTo: scrollview.centerXAnchor).isActive = true
greyview.heightAnchor.constraint(equalToConstant: 100).isActive = true
greyview.widthAnchor.constraint(equalToConstant: 100).isActive = true
Добавьте widthAnchor, здесь я расположил его по центру в представлении прокрутки, но это зависит от вас, чтобы разместить его так, как вы хотите. Также, если вы добавляете больше элементов, просто убедитесь, что у самого нижнего элемента есть bottomAnchor
, прикрепленный к scrollView bottomAnchor
, иначе он не будет прокручиваться.
Обновление:
Я не знаю, как вы хотите, чтобы ваш greyview
выглядел, но если вы сделаете высоту выше, чем contentSize
scrollView, он будет прокручиваться и убедитесь, что у вас есть bottomAnchor
:
scrollview.contentSize = CGSize.init(width: view.frame.size.width, height: view.frame.size.height)
scrollview.addSubview(greyview)
greyview.topAnchor.constraint(equalTo: scrollview.topAnchor).isActive = true
greyview.bottomAnchor.constraint(equalTo: scrollview.bottomAnchor).isActive = true
greyview.heightAnchor.constraint(equalTo: scrollview.heightAnchor, constant: 500).isActive = true
greyview.widthAnchor.constraint(equalTo: scrollview.widthAnchor).isActive = true
Это делает ширину greyview
равной ширине просмотра прокрутки, а высоту равной высоте просмотра прокрутки + 500 для прокрутки.