Tengo 3 elementos en stackview.

-Uno es el correo electrónico: TextField,

-Otro es la contraseña - Textfield;

-El último es UIView y tiene un botón.

Cuando lo ejecuto, el botón en esa vista no responde, mientras que la misma vista fuera de la vista de pila responde normalmente. TAMBIÉN cuando pongo un botón en esa vista de pila, actúa, pero cuando está en una vista de vista de pila no lo hace.

ingrese la descripción de la imagen aquí Me estoy perdiendo algo pero ¿qué? Gracias

-2
smoothumut 10 sep. 2018 a las 13:30

3 respuestas

La mejor respuesta

Hola, el problema son las restricciones indefinidas. Aquí acabo de crear una solución simple para ayudarte. No es perfecto pero será útil. Cuando utiliza la vista de pila, debe tener en cuenta algunas cosas. Hay dos tipos de stackView horizontal y vertical stackView y stackView tiene algunas propiedades como

Ácido : significa que lo quiere horizontal o vertical

Alineación : es simple que puede entender cuando ve, llena el centro líder y la capacitación

Distribución : en mi opinión, es la parte más importante de la vista de pila

  • El relleno dejará a tres de ellos su tamaño natural, y hará que el cuarto ocupe más espacio. Utiliza la prioridad de abrazo de contenido del diseño automático para decidir cuál estirar.
  • Rellenar igualmente hará que cada subvista tenga el mismo tamaño para que llenen todo el espacio disponible para la vista de pila.
  • Rellenar utiliza proporcionalmente el tamaño del contenido intrínseco de cada subvista para cambiar su tamaño en la misma cantidad. Por lo tanto, la vista 1 se diseñó para tener el doble de altura que las vistas 2, 3 y 4, esa proporción permanecerá cuando se redimensione: todas las subvistas se hacen proporcionalmente más grandes o más pequeñas.
  • Igual Espaciado no cambia el tamaño de las subvistas, y en cambio cambia el espacio entre las subvistas para llenar el espacio.
  • El centrado equitativo es el más complicado, pero para muchas personas también el más estéticamente agradable. Intenta garantizar que los centros de cada subvista estén igualmente espaciados. Esto podría significar que el borde derecho de la vista 1 está a solo 10 puntos del borde izquierdo de la vista 2, mientras que el borde derecho de la vista 2 está a 50 puntos del borde izquierdo de la vista 3, pero lo importante es que los centros de visión 1 , 2, 3 y 4 están todos idénticamente espaciados.

Espaciado : el espaciado se utiliza para proporcionar el espacio entre objetos como etiquetas, botones, etc.

enter image description here enter image description here

Establezco el espacio entre los elementos 15 y el relleno de distribución por igual para que puedan llenar el espacio disponible para stack view.

Aquí está el enlace al proyecto https://github.com/waytorohit/SOreadytohelp para que pueda comprender mejor .

Referencias: https://www.hackingwithswift.com/read/31/ 2 / uistackview-by-example

1
smoothumut 10 sep. 2018 a las 13:51

No hay necesidad de una vista extra. Si elimina esto, puede agregar un color de fondo a un botón normal y cambiar el tamaño del fondo y el tamaño del texto para que se vea igual.

Si esto no funciona, puede acceder a la herramienta de diseño de su aplicación y hacer un cuadro de color y agregar esto como una imagen en el fondo de su botón.

Después de configurar su botón, puede agregar @IBAction como cualquier otro botón normal.

Espero que funcione, Toby

0
Toby Clark 10 sep. 2018 a las 10:48
  1. No es necesario dar restricciones
  2. primero borre la vista y el botón en su vista de pila y vuelva a agregar luego crear un viewController y de este viewController y conectarlo

    @IBAction func clickMe(_ sender: UIButton) {
        print("you click me")
    }
    
    • y dele un poco de color a su botón para verificar y haga clic en eso

    Espero que funcione bien.

0
wm.p1us 10 sep. 2018 a las 10:47