2012-09-19 14 views
19

Sto preparando la mia app per iPhone 5 utilizzando il simulatore e ho trovato un problema strano in cui un paio di miei pulsanti, in una delle mie visualizzazioni, non funzionano nel simulatore iPhone (Retina da 4 pollici), ma funzionano bene nel simulatore iPhone (Retina da 3,5 pollici). I pulsanti semplicemente non fanno nulla quando sono TAPpati. Qualcun altro ha riscontrato questo problema?Il mio pulsante non rileva gli eventi tocco sul simulatore iPhone (Retina da 4 pollici), ma funziona con il simulatore iPhone (Retina da 3,5 pollici)

Ho difficoltà a capire da dove iniziare. Qualche suggerimento su dove iniziare?

Grazie mille in anticipo per tutta la tua saggezza!

+2

Solo un'ipotesi, ma hai verificato che nessuna vista trasparente si sovrapponga ai pulsanti? Forse molle e montanti non hanno fatto quello che ti aspettavi con la risoluzione dello schermo dell'iPhone 5. – Sascha

+1

Sto affrontando lo stesso problema. Nel mio caso, la regione inferiore (probabilmente il valore extra di .5 pollici) non è reattiva. I pulsanti della barra delle linguette collocati lì non funzioneranno, cercando di scorrere rapidamente un UITableView da quella regione, inoltre, non funziona. Anche i pulsanti sono posizionati nella parte inferiore? – pennersr

+2

@pennersr: ci hai provato? non mi ha aiutato, ma spero che ti possa aiutare. http://stackoverflow.com/questions/12414817/iphone-5-4-bottom-toolbar-not-responding – BeachRunnerFred

risposta

4

Il problema è stato causato da un altro controllo che si sovrappone ai miei pulsanti a causa del modo in cui sono state installate le molle e le aste. La regolazione dell'ordine z dei pulsanti ha risolto il problema. Ringrazia tutti!

8

Per me, la soluzione era impostare la dimensione ("Metriche simulate") su "Retina 4 Schermo intero" per MainWindow.xib. Non ho bisogno di modificare la dimensione degli altri schermi (sono ancora impostati su Nessuno). Dopo aver modificato MainWindow.xib, l'area inferiore diventa nuovamente cliccabile ...

+0

Fai attenzione a questo. Questo in realtà maschererà il problema poiché abilita solo gli eventi touch sullo schermo intero nel simulatore. Su un dispositivo reale, gli eventi tattili continueranno a non funzionare se non si attiva l'opzione Schermo intero all'avvio in MainWindow.xib. Vedi la mia risposta per una spiegazione più completa. –

+0

Questo non funziona correttamente, poiché cambierà solo la dimensione della vista. Le cose potrebbero non essere ridimensionate correttamente con uno schermo da 3,5 pollici. L'opzione migliore è abilitare "Schermo intero all'avvio" per la finestra principale. – kamprath

32

È necessario modificare MainWindow.xib e abilitare "Schermo intero all'avvio". Per una spiegazione più dettagliata, vedere la documentazione di Apple:

Importante: Quando si crea la finestra in Interface Builder, è consiglia di attivare l'opzione Full Screen lancio nel attributi ispettore. Se questa opzione non è abilitata e la tua finestra è più piccola dello schermo del dispositivo di destinazione, gli eventi di tocco non saranno ricevuti da alcune delle tue visualizzazioni. Questo perché Windows (come tutte le viste ) non riceve eventi di tocco al di fuori del loro rettangolo di limiti. Poiché le viste non sono troncate ai limiti della finestra per impostazione predefinita, le viste sono ancora visibili ma gli eventi non le raggiungono. L'abilitazione dell'opzione dello schermo intero all'avvio garantisce che la finestra sia dimensionata in modo appropriato per la schermata corrente. .

Complete document from Apple

+1

Questo lo ha risolto per me. – jbierling

+0

Grazie mille, risolto il mio problema! – Stiefel

+1

La tabbar nella mia app non ha toccato eventi di azione sul 4 ". Questo problema è stato risolto ... grazie – Ben

1

ho risolto il mio prob.

visualizzare .origin per schermo da 3,5 pollici e 4 pollici sono diversi, quindi, quando si scrive codice comune per entrambi, è necessario fare attenzione a dare CGRectmake(x,y,w,h);

Imposta temp. colore di sfondo diff della vista di diff in modo da poter verificare se una vista si sovrappone o meno, per recuperare l'evento in 4.0 pollici.

4

ci sono due soluzioni a questo problema:

Se si utilizza MainWindow attenersi alla seguente procedura:

a. Selezionare MainWindow.xib.

b. Selezionare Full Screen at Launch dall'opzione Windows disponibile in Impostazioni Attributi.

Se l'applicazione non contiene MainWindow poi basta aggiungere:

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

in viewDidLoad.

Problemi correlati