2010-10-28 16 views
5

Desidero aggiungere un pulsante al mio lettore video quando viene riprodotto a schermo intero. Ho creato un overlay sul mio videoplayer e sta funzionando molto bene su un iPhone. Ho provato la stessa cosa su un iPad, ma il pulsante non appare mai.Sovrapposizione MPMoviePlayer in modalità schermo intero (iPad)

Ecco il mio codice:

NSArray *windows = [[UIApplication sharedApplication] windows]; 
if ([windows count] > 1){ 
     UIWindow * moviePlayerWindow = [windows objectAtIndex:1]; 
     NSArray * subviews = [moviePlayerWindow subviews]; 
     UIView * videoView = [subviews objectAtIndex:0]; 
     [videoView addSubview:myButton]; 
} 

'cuciture come la dose non ipad creare un UIWindow per la modalità a schermo intero.

Qualcuno ha qualche idea su come potrei fare questo?

Grazie!

risposta

3

ho trovato una soluzione a questo problema alcune settimane fa:

Sembra che questo metodo non funziona su iPad (io ho mai controllato iPhone SDK 4>) in modo al fine di ottenere intorno ad esso è possibile effettuare le a seguire.

Dopo aver aggiunto il video e l'impostazione a schermo intero è possibile aggiungere i controlli direttamente a UIWindow (ad es. [[[[ApplicazioneApplicazione condivisa]] objectAtIndex: 0] addSubView: myView]), verranno visualizzati in cima al proprio video

L'unico problema che ho riscontrato con questo è che non obbediscono alle regole di orientamento della vista e ho dovuto manualmente programmare il codice di rotazione nel metodo willRotateToInterfaceOrientation della vista.

+1

puoi spiegare come hai affrontato l'orientamento? Sarei felice di vedere un po 'di codice. Grazie – Alex1987

+0

ho aggiunto overlay allo stesso modo. Hai risolto il problema di rotazione? – 1110

2

La soluzione di @tigermain funziona.

[[[[UIApplication sharedApplication] windows] objectAtIndex:0] addSubView:myView]

Ma il punto di vista aggiunto alla finestra non seguono l'orientamento.

Soluzione per l'orientamento è utilizzare NSNotificationCenter, UIApplicationDidChangeStatusBarOrientationNotification.

// assign a notification 
    id center = [NSNotificationCenter defaultCenter]; 
    [center addObserver:self 
      selector:@selector(didRotate:) 
       name:UIApplicationDidChangeStatusBarOrientationNotification 
       object:nil]; 

    // this method will get called when the orientation changes 
    -(void) didRotate:(NSNotification*)notification { 

     UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation; 
     NSLog(@"%d", orientation); 
     // ... transform view accordingly to the enum 'UIInterfaceOrientationXXX' 
    } 
Problemi correlati