Tengo un UIView
y configuro las restricciones usando Xcode Interface Builder.
Ahora necesito actualizar esa UIView's
constante de altura mediante programación.
Hay una función que dice myUIView.updateConstraints()
, pero no sé cómo usarla.
swift
xcode
autolayout
nslayoutconstraint
ios-autolayout
Chris Mikkelsen
fuente
fuente
Respuestas:
Seleccione la restricción de altura en el constructor de Interfaces y tome una salida. Entonces, cuando desee cambiar la altura de la vista, puede usar el siguiente código.
El método
updateConstraints()
es un método de instancia deUIView
. Es útil cuando establece las restricciones mediante programación. Actualiza las restricciones de la vista. Para más detalles haga clic aquí .fuente
Si tiene una vista con múltiples restricciones, una forma mucho más fácil sin tener que crear múltiples salidas sería:
En el generador de interfaces, asigne un identificador a cada restricción que desee modificar:
Luego, en el código, puede modificar múltiples restricciones así:
Puede asignar el mismo identificador a varias restricciones, lo que le permite agrupar restricciones y modificarlas todas a la vez.
fuente
Cambiar
HeightConstraint
yWidthConstraint
sin crearIBOutlet
.Nota: Asigne una restricción de altura o ancho en el archivo Storyboard o XIB. después de obtener esta restricción usando esta extensión.
Puede usar esta extensión para obtener una restricción de altura y ancho:
Puedes usar:
fuente
first(where: ...)
que podría usar inmediatamente en lugar defilter
+first
Arrastre la restricción a su VC como un IBOutlet. Luego puede cambiar su valor asociado (y otras propiedades; consulte la documentación):
fuente
fuente
Si el método anterior no funciona, asegúrese de actualizarlo en el bloque Dispatch.main.async {}. No es necesario llamar al método layoutIfNeeded () entonces.
fuente
Primero conecte la restricción de altura a nuestro controlador de vista para crear IBOutlet como se muestra en el siguiente código
luego ponga el siguiente código a la vista si se cargó o dentro de cualquier acción
si está dentro de un botón, haga clic
fuente
Para actualizar una restricción de diseño, solo necesita actualizar la propiedad constante y llamar a layoutIfNeeded después.
fuente
fuente