Sí, st3fan tiene razón, se debe establecer la propiedad contentSize de UIScrollView. Pero no debe desactivar el diseño automático para este propósito. Puede configurar fácilmente contentSize de UIScrollView con diseño automático solo en IB, sin ningún código.
Es importante comprender que cuando no se configura directamente contentSize de UIScrollView, se calcula en función de las restricciones de todas las subvistas de UIScrollView. Y todo lo que necesita es proporcionar las restricciones adecuadas para las subvistas en ambas direcciones.
Por ejemplo, si solo tiene una subvista, puede establecer su altura y espacio desde la parte superior e inferior a la supervista (es decir, scrollView en nuestro caso) contentSize.height se calcula como suma
Vertical Space (aSubview.top to Superview.top) + aSubview.height + Vertical Space (aSubview.top to Superview.top)
contentSize.width se calcula de manera similar a partir de restricciones horizontales.
Si hay muy pocas restricciones para calcular el tamaño del contenido correctamente, se muestra un pequeño botón rojo cerca del elemento Ver escena del controlador para informar sobre la ambigüedad del diseño.
Si hay muchas subvistas, puede ser una "cadena" de restricciones: subvista de arriba a arriba, alturas y espacios entre las subvistas y subvista de abajo a abajo como en la respuesta de Danyal Aytekin .
Pero en la práctica, en la mayoría de los casos, es más conveniente agregar una vista vacía con el tamaño requerido y establecer los espacios en la parte superior, izquierda, inferior, derecha de scrollView en 0.
Puede usar esta vista como "Vista de contenido", es decir, poner todas las demás subvistas. en él o si ya tiene muchas subvistas y no desea moverlas y configurar el diseño nuevamente, puede agregar esta vista auxiliar a las subvistas existentes y ocultarla.
Para que scrollView, el contenido calculado desplazable, el tamaño debe ser mayor que el tamaño de scrollView.