2012-09-19 12 views
19

Estoy preparando mi aplicación para el iPhone 5 con el simulador y tengo encontré un problema extraño en el que un par de mis botones, en uno de mis puntos de vista, no funcionan en el simulador de iPhone (Retina de 4 pulgadas), pero funcionan bien en el simulador de iPhone (Retina de 3,5 pulgadas). Los botones simplemente no hacen nada cuando están intervenidos. ¿Alguien más ha tenido este problema?Mi botón no detecta eventos táctiles en el simulador de iPhone (Retina de 4 pulgadas), pero funciona en el simulador de iPhone (Retina de 3,5 pulgadas)

Estoy teniendo dificultades para averiguar por dónde empezar con esta. ¿Alguna sugerencia sobre dónde comenzar?

¡Muchas gracias de antemano por toda su sabiduría!

+2

Solo una suposición, pero ¿comprobó que no se superponen las vistas transparentes a los botones? Tal vez los resortes y puntales no hicieron lo que esperabas con la resolución de pantalla del iPhone 5. – Sascha

+1

Estoy enfrentando el mismo problema. En mi caso, la región inferior (probablemente la .5 pulgadas extra) no responde. Los botones de la barra de pestañas que se colocan allí no funcionarán, al intentar desplazar el desplazamiento de una UITableView desde esa región tampoco funciona. ¿Están tus botones ubicados en la región inferior también? – pennersr

+2

@pennersr: ¿has probado esto? no me ayudó, pero espero que te ayude. http://stackoverflow.com/questions/12414817/iphone-5-4-bottom-toolbar-not-responding – BeachRunnerFred

Respuesta

4

El problema fue causado por otro control que se superponía a mis botones debido a la forma en que se configuraron los resortes y los puntales. Ajustar el orden z de los botones solucionó el problema. ¡Gracias a todos!

8

Para mí, la solución fue establecer el tamaño ("Métricas simuladas") en "Pantalla completa de Retina 4" para MainWindow.xib. No necesité modificar el tamaño de las otras pantallas (aún están configuradas como Ninguna). Después de cambiar MainWindow.xib, se puede volver a hacer clic en el área inferior ...

+0

Tenga cuidado de hacer esto. Esto realmente enmascarará el problema ya que solo permite tocar eventos en la pantalla completa en el simulador. En un dispositivo real, los eventos táctiles seguirán sin funcionar a menos que active la opción Pantalla completa al iniciar en MainWindow.xib. Ver mi respuesta para una explicación más completa. –

+0

Esto no funciona correctamente, ya que solo cambiará el tamaño de la vista. Es posible que las cosas no cambien de tamaño correctamente en una pantalla de 3.5 pulgadas. La mejor opción es habilitar "Pantalla completa al inicio" para la ventana principal. – kamprath

32

Necesita editar su MainWindow.xib y habilitar "Pantalla completa al iniciar". Para una explicación más detallada, ver documentos de Apple:

Importante: Al crear su ventana en el Interface Builder, es recomienda que habilite la opción de pantalla completa en el lanzamiento del inspector de atributos. Si esta opción no está habilitada y su ventana es más pequeña que la pantalla del dispositivo de destino, los eventos táctiles no serán recibidos por algunas de sus vistas. Esto se debe a que las ventanas (como todas las vistas ) no reciben eventos táctiles fuera de su rectángulo de límites. Como las vistas no están recortadas a los límites de la ventana de forma predeterminada, las vistas aún aparecen visibles pero los eventos no las alcanzan. La habilitación de la opción Pantalla completa al inicio garantiza que la ventana tenga el tamaño de manera apropiada para la pantalla actual.

Complete document from Apple

+1

Esto lo arregló para mí. – jbierling

+0

¡Muchas gracias, corrigió mi problema! – Stiefel

+1

La barra de pestañas de mi aplicación no activó los eventos en el 4 ". Esto lo solucionó ... gracias. – Ben

1

he resuelto mi problema.

vista .origin para pantalla de 3.5 pulgadas y 4 pulgadas son diferentes, por lo tanto, al escribir código común para ambos debemos tener cuidado al dar CGRectmake(x,y,w,h);

Temp. Diferencia el color de fondo de la vista de diferencia para que pueda verificar si alguna vista se superpone o no, para captar el evento en 4.0 pulgadas.

4

hay dos solución a este problema:

Si está utilizando MainWindow siga estos pasos:

a. Seleccione MainWindow.xib.

b. Seleccione Full Screen at Launch desde la opción de Windows disponible en el Inspector de atributos.

Si su solicitud no contiene MainWindow continuación, sólo tiene que añadir:

self.view.frame = [UIScreen mainScreen].bounds 

en viewDidLoad.

Cuestiones relacionadas