es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo hacer escalable una etiqueta colocada sobre una imagen con Auto Layout (IB)?

En Xcode, estoy tratando de colocar una etiqueta sobre una imagen utilizando el autodiseño con Interface Builder. El punto es que la imagen se adapte a diferentes dispositivos, mientras que también se adapta la etiqueta, de modo que siga estando en la misma posición sobre la imagen.

Es una pregunta muy similar a ésta, sin el botón:
https://stackoverflow.com/q/42413269/17568357

En esa publicación, el preguntador mencionó que la segunda respuesta fue lo más cerca que llegaron a resolver el problema. Incluía el uso de “vistas de relleno” para restringir la etiqueta para que se moviera con la imagen. Pero el preguntador estaba confundido (como yo) con cómo implementar esas restricciones. ¿Puede alguien explicar más detalladamente cómo hacerlo? ¿O tal vez hay otro método?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para colocar una etiqueta sobre una imagen en Xcode utilizando Auto Layout con Interface Builder, sigue estos pasos:

    1. Agrega la imagen y la etiqueta a la vista del controlador de vista en Interface Builder.
    2. Selecciona la imagen y agrega restricciones para su posición y tamaño. Por ejemplo, podrías usar restricciones de borde izquierdo, superior, derecho e inferior para hacer que la imagen ocupe toda la vista.
    3. Selecciona la etiqueta y agrega restricciones para su posición y tamaño en relación con la imagen. Por ejemplo, podrías usar restricciones de borde izquierdo y superior para colocar la etiqueta en la esquina superior izquierda de la imagen, y una restricción de altura y ancho para ajustar su tamaño.
    4. Ahora viene la parte complicada: hacer que la etiqueta se mueva con la imagen a medida que se escala para diferentes dispositivos. Para hacer esto, necesitas usar “vistas de relleno” como se describe en la respuesta referenciada en la pregunta.

    Así es como puedes usar vistas de relleno para restringir la etiqueta para que se mueva con la imagen:

    1. Agrega dos vistas nuevas a la vista del controlador de vista en Interface Builder. Estas vistas actuarán como “vistas de relleno” para crear las restricciones necesarias para la etiqueta.
    2. Posiciona la primera vista de relleno encima de la imagen y dale una restricción de altura de 0.
    3. Posiciona la segunda vista de relleno a la izquierda de la imagen y dale una restricción de ancho de 0.
    4. Selecciona la primera vista de relleno y agrega una restricción en la parte superior de la etiqueta. Esto hará que la etiqueta se mueva con la primera vista de relleno a medida que la imagen se escala.
    5. Selecciona la segunda vista de relleno y agrega una restricción en el borde izquierdo de la etiqueta. Esto hará que la etiqueta se mueva con la segunda vista de relleno a medida que la imagen se escala.
    6. Finalmente, selecciona la primera vista de relleno nuevamente y agrega una restricción en la parte inferior de la imagen. Esto es necesario para evitar que la primera vista de relleno se superponga a la imagen a medida que se escala.

    Con estas restricciones en su lugar, tu etiqueta debería moverse con la imagen a medida que se escala para diferentes dispositivos.

Comments are closed.