2012-05-03 17 views
5

Ho una classe UITableView che utilizza i seguenti metodi per chiamare una sovrapposizione di caricamento quando si passa alla schermata successiva. Il problema è che questa schermata di caricamento non scorre con l'elenco ... Quindi se si scorre un po 'e si fa clic su qualcosa, la schermata di caricamento non viene visualizzata (perché è in alto). Come posso avere sempre la schermata di caricamento in cima a UITableView? Si prega di sapere che ogni UITableView è contenuto in un UINavBar, che è contenuto in un UITabBar. Ecco il mio codice:Overlay non in scorrimento con UITableView - iOS

-(void)createLoadScreen 
{ 
    CGRect screenRect = [self.view bounds]; 
    CGRect overlayFrame = CGRectMake(0.0, 0.0, screenRect.size.width, screenRect.size.height); 
    overlay = [[UIView alloc] initWithFrame:overlayFrame]; 
    overlay.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.7]; 
    CGRect frame = CGRectMake(screenRect.size.width/2 - 25.0, screenRect.size.height/2 - 70, 25.0, 25.0); 
    loading = [[UIActivityIndicatorView alloc] initWithFrame:frame]; 
    [loading setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhiteLarge]; 
    [loading sizeToFit]; 
    loading.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin | 
           UIViewAutoresizingFlexibleRightMargin | 
           UIViewAutoresizingFlexibleTopMargin | 
           UIViewAutoresizingFlexibleBottomMargin); 
    loading.hidesWhenStopped = YES; 
    [overlay addSubview:loading]; 
} 

-(void)showActivityIndicator 
{ 
    [self.view addSubview:overlay]; 
    [loading startAnimating]; 
} 

-(void)removeActivityIndicator { 
    [loading stopAnimating]; 
    [overlay removeFromSuperview]; 
} 

risposta

5

Si sta utilizzando un UITableViewController?

Si dovrebbe essere in grado di risolvere il problema aggiungendo la vista sovrapposizione alla superview della tabella invece della vista tabella stessa. In questo modo il tuo overlay è in realtà sopra e separato dalla vista tabella scorrevole

-(void)showActivityIndicator 
{ 
    [[self.view superview] addSubview:overlay]; 
    [loading startAnimating]; 
} 
+0

bello! grazie amico ... –

+0

in realtà ... sta succedendo qualcosa di funky ora. l'indicatore di attività fisica si muove in posizione (altezza-saggio). Non sono sicuro del motivo per cui ciò sta accadendo, ma sembra essere casualmente più alto e più basso a seconda di quale cella di tabella faccio clic. qualche idea? –

+0

questo è dopo l'ho aggiunto al superview della uitableview –

Problemi correlati