Estoy usando SwiftUI por primera vez y estoy luchando para crear una página. En la captura de pantalla proporcionada, tengo el botón que se supone que debe moverse a otra página una vez presionado, que es el área verde resaltada, pero el rojo resaltado es donde debe hacer clic para ir a la página de navegación. Siento que tiene algo que ver con el ZStack, pero parece que no puedo entenderlo.

Button(action: {
                self.isActive = true
            }) {
            ZStack {
                Image(uiImage: #imageLiteral(resourceName: "Group 897")).renderingMode(.original).frame(width: 30, height: 60).padding(.top, 16).offset(x:103, y:-105)
               
            }
         }

Básicamente mi pregunta es: ¿cómo hago para que el gatillo se mueva a donde se movió la imagen?

Captura de pantalla de SwiftUI

0
Jake 24 jun. 2020 a las 23:35

2 respuestas

La mejor respuesta

Creo que es causado por su .offset(x:103, y:-105), usted cambia la posición visual de su botón (imagen de su botón), pero los tocables aún permanecen en el mismo lugar.

Intente colocar su botón con la arquitectura de pila como:

VStack {
   HeadingBar() // your heading bar
   HStack { 
     Spacer() // move you button to trailing of screen, then just indent with padding
     Button().padding(.trailing, 10)
   } // end of HStack
   RemainingView() // rest of your page
} // end of VStack

Si desea utilizar offset, debe hacerlo como:

Button(action: {
                self.isActive = true
            }) {
                Image("yourImage")
            }
            .offset(x:103, y:-105)

Pero la arquitectura Stack es mejor para el diseño, porque su aplicación se verá similar en todos los dispositivos.

0
Jan Podmolík 24 jun. 2020 a las 21:01

Me di cuenta de mi error. Tuve que mover el desplazamiento de la imagen al botón.

0
Jake 24 jun. 2020 a las 20:54