ios - doesn - Añadir un ScrollView a la vista existente
scrollview swift 4 programmatically (4)
Estoy desarrollando una pequeña aplicación en Swift 2.0. Tengo una vista con la siguiente jerarquía:
Ahora, los elementos colocados en esta vista no se pueden mostrar completamente en ella, así que me gustaría usar un ScrollView
para poder desplazar todo el contenido.
¿Cómo puedo incrustar todo el contenido de mi View
en un nuevo ScrollView
? ¿Puedo hacer esto programáticamente por código?
Se puede hacer incluso más simple que la respuesta de ebby94.
1) Vaya al controlador de vista en el guión gráfico y haga clic en algo en él y presione Comando + A. Esto seleccionará todos los elementos en la vista.
2) Vaya a Editor -> Incrustar en -> Vista de desplazamiento. Esto incrustará todas las etiquetas, vistas, etc. en un scrollView.
3) Establezca las restricciones de la Vista de desplazamiento en los bordes de la Vista.
Y eres bueno para irte! No hay necesidad de una toma de corriente.
Seleccionar todos los elementos e incrustar la vista de desplazamiento (editor-> incrustar en> scrollView) funciona bien.
Agregar restricciones es mucho más fácil seleccionando la advertencia de restricciones (Agregar restricciones que faltan).
Tuve el mismo problema. Necesitaba agregar scrollview a la vista existente. Pero mi vista de contenedor principal tiene una gran cantidad de vistas dentro de ella. Y estaban conectados entre sí. Así que tenía miedo. Finalmente lo hice. el proceso dado a continuación.
Duplica tu vista (vista raíz). Para ello, primero seleccione la vista raíz y luego presione Comando + D
Ahora borre toda la vista de vista secundaria dentro de la vista raíz
Ahora agregue una vista de desplazamiento a la vista raíz y establezca la restricción a 0,0,0,0
Ahora agregue la vista duplicada (que usted duplicó) a la vista de desplazamiento y configure las restricciones a 0,0,0, y 0 también establezca la altura que desee.
Establezca el ancho de la vista duplicada por el mismo ancho que la vista raíz.
Ahora seleccione el viewController, vaya al inspector de tamaño, seleccione el tamaño de forma libre. A continuación, establezca la altura que ha introducido con vista duplicada.
Ya casi has terminado. Ahora tiene que conectar la vista secundaria con el outlet o la acción que dio en la clase viewController.
Eso es todo.
ACTUALIZACIÓN: hay una forma más fácil de hacer esto que no sabía cuando publiqué esta respuesta
1) Vaya al controlador de visualización en el guión gráfico y haga clic en algo en él y presione Command + A
Esto seleccionará todos los elementos en la vista.
2) Vaya a Editor -> Embed In -> Scroll View
. Esto incrustará todas las etiquetas, vistas, etc. en un scrollView.
3) Seleccione la vista de scrollview
que acaba de incrustar. Presione Control
y arrástrelo al archivo de clase respectivo del controlador de vista y cree una salida scrollView
.
4) Agregue esto a su viewDidLoad()
scrollView.contentSize = CGSizeMake(self.view.frame.width, self.view.frame.height+100)
Asegúrese de que la altura de contentSize sea mayor que el tamaño de su vista.
AGREGANDO MANUALMENTE SCROLLVIEW
1) Arrastre y suelte una scrollview
de scrollview
desde la Biblioteca de objetos en su viewcontroller
de viewcontroller
en el guión gráfico y cree una salida para su programa como ''scrollView''.
2) Haga clic en el viewcontroller
su viewcontroller
y vaya al inspector de tamaño y anote el ancho y la altura.
3) Haga clic en su vista de scrollview
y establezca el width
y el height
la misma manera que el viewcontroller
. y establece los valores de X
e Y
en 0
4) Haga clic en el scrollView
y arrástrelo un poco hacia el lado
5) Presione Command+A
para seleccionar todos los elementos incluyendo scrollView
. Presione Command
y haga clic en el scrollView
para deseleccionar el ScrollView
6) Tendrá todos los elementos excepto el scrollView
seleccionado ahora. Ahora haga clic y arrástrelos en el scrollView.
7) Ahora haga clic en el scrollView
y establezca los valores de X
e Y
en 0 desde el Inspector de tamaño.
8) Agregue esto a su viewDidLoad()
scrollView.contentSize = CGSizeMake(self.view.frame.width, self.view.frame.height+100)
Asegúrese de que la altura de contentSize sea mayor que el tamaño de su vista.
Eso debería crear un scrollView para su vista. Algunos de los elementos pueden estar en una posición ligeramente diferente . Puedes corregirlos fácilmente moviéndolos en tu storyBoard.