Настройка UIActivityIndicatorView для UITableViewController программно - PullRequest
8 голосов
/ 23 марта 2012

У меня есть обычное UITableViewController и UITableView как его единственное представление, и я хочу иметь UIActivittyIndicatorView в дополнение к табличному представлению.

Так что мне нужна структура вида, подобная этой:

view (UIView):
  tableView
  activityIndicatorView

Какой самый чистый способ сделать это без InterfaceBuilder?Я думаю, мне нужно переопределить метод loadView:, но мне пока не удалось это сделать.

1 Ответ

28 голосов
/ 23 марта 2012

ОБНОВЛЕНИЕ для ARC и iOS 5.0+ (я думаю, что старую версию нужно уже удалить, так как у нас есть новые, лучшие API:)):

Добавить в заголовочный файл .h вашего подкласса UIViewController:

 @property (nonatomic, weak) UIActivityIndicator *activityIndicator;

И методы переопределения в файле .m вашего подкласса UIViewController:

- (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));
} 

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

версия без ARC, iOS <5.0: </p>

Вы должны переопределить метод

-(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];
}

Также добавить

@property (nonatomic, assign) UIActivityIndicatorView *activityIndicator;

в заголовочном файле

и

@synthesize activityIndicator;

в файл .m

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...