2012-03-23 9 views
8

que tienen un habitual UITableViewController y una UITableView como su único punto de vista, y yo quiero tener una UIActivittyIndicatorView además de la vista de tabla.La creación de un UIActivityIndicatorView para la programación UITableViewController

por eso es necesario una estructura vista como esta:

view (UIView): 
    tableView 
    activityIndicatorView 

¿Cuál es la forma más limpia de hacerlo sin InterfaceBuilder? Supongo que necesito anular el método loadView:, pero hasta ahora no he tenido éxito.

Respuesta

27

UPDATE para ARC y el IOS 5.0 o superior (creo versión antigua necesita ser eliminado ya que tenemos nueva y mejor API de :)):

Añadir a la cabecera .h archivo de su UIViewController subclase:

@property (nonatomic, weak) UIActivityIndicator *activityIndicator; 

y anular los métodos de archivo .m de su UIViewController subclase:

- (void)loadView { 
    [super loadView]; 
    UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 
    // If you need custom color, use color property 
    // activityIndicator.color = yourDesirableColor; 
    [self.view addSubview:activityIndicator]; 
    [activityIndicator startAnimating]; 
    self.activityIndicator = activityIndicator; 
} 

- (void)viewWillLayoutSubviews { 
    [super viewWillLayoutSubviews]; 
    CGSize viewBounds = self.view.bounds; 
    self.activityIndicator.center = CGPointMake(CGRectGetMidX(viewBounds), CGRectGetMidY(viewBounds)); 
} 

=========================== ===============================

versión no ARC, iOS < 5.0:

Debe reemplazar el método

-(void)loadView { 
    [super loadView]; 
    self.activityIndicator = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray] autorelease]; 
    [self.view addSubview:self.activityIndicator]; 
    self.activityIndicator.center = CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height/2); 
    [self.activityIndicator startAnimating]; 
} 

Además, agregue

@property (nonatomic, assign) UIActivityIndicatorView *activityIndicator; 

en el archivo de cabecera

y

@synthesize activityIndicator; 

al archivo .m

+0

¿No debería ser 'CGRect viewBounds = self.view.bounds;' en lugar de '' CGSize viewBounds ...? – wmora

Cuestiones relacionadas