/ / Problemi di schermo dell'interfaccia utente iPhone 5 - obiettivo-c, interfaccia utente, ios6, xcode4.5, iphone-5

Problemi di schermo dell'interfaccia utente iPhone 5: obiettivo-c, interfaccia utente, ios6, xcode4.5, iphone-5

Dopo un sacco di googling sto facendo questa domanda. Ho una app, voglio renderla compatibile con l'iPhone5. Ho aggiunto Default-568h @ 2x alla mia app che contiene quasi 10 visualizzazioni. Così ho cambiato visualizzazioni come questa ..

In viewDidLoad:

    if ([[UIScreen mainScreen] bounds].size.height >= 568) {
self.view.frame = CGRectMake(0, 0, 320, 568);
//iPhone5
}
else {
}
window.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;

Ho apportato questo cambiamento nel mio didFinishLaunching con le opzioni:

window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

Dopo aver fatto questo ho trovato alcuni problemi ..

  1. La parte inferiore dello schermo, che non è lunga 88px, non è toccabile nemmeno con i controlli posizionati su di esso - per questo ho impostato FullScreenAtLaunch controllato negli attributi di MainWindow.xib, ma non ha funzionato
  2. Ho una casella di testo in vista, quando è focalizzata la tastiera, ma in cima alla vista Tastiera che sta arrivando, come sbarazzarmene.

Come risolvere questo, qualsiasi aiuto sarebbe molto apprezzato.

Grazie

risposte:

3 per risposta № 1

Questo perché nella linea in cui crei il tuo UIWindow nella classe dei delegati App probabilmente avrai qualcosa di simile a questo:

self.window = [[UIWindow alloc] initWithFrame:CGRectMake(0,0,320,480);

cambiarlo in qualcosa di simile:

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

anche dove ora fai:

if ([[UIScreen mainScreen] bounds].size.height >= 568) {
self.view.frame = CGRectMake(0, 0, 320, 568);
//iPhone5
}
else {
}

Anche tu fai bene:

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

Ma il più delle volte questo non è più necessario dalla vista del viewcontroller occuperà correttamente lo spazio. Se hai impostato correttamente AutoResizeMasks nel generatore di interfacce, non avrai dato l'impostazione del codice nel frame.