2011-06-13 2 views
1

Когда мое приложение запущено, я хотел бы отобразить «ожидающий вид», чтобы я мог сделать первые HTTP-вызовы перед доступом к приложению.
Я видел хороший, весь серый и немного прозрачный, с внутренним индикатором активности.
Я действительно не знаю, как построить такой вид в хорошей манере, это простой UIView?Экран ожидания iOS

ответ

8

MBProgressHUD может быть то, что вы ищете:
https://github.com/matej/MBProgressHUD

enter image description here

+0

спасибо, я уже использовал этот в в прошлом, и я помню, что это замечательно. Можно ли настроить эту конфигурацию на высоту и ширину, чтобы соответствовать размеру экрана минус «пара пикселей»? – Luc

0

Существует много способов сделать это, но да, это может быть просто UIView.

Может быть, вы должны дать посмотреть на three20 библиотеку, которая предлагает встроенные погрузчикам TTActivityLabel как эти:

TTActivityLabel

+0

г, есть способ лучше, чем другой? – Luc

+0

Я предпочитаю использовать фреймворк, такой как three20, который предлагает это и многое другое, но он сложен при первом использовании. Это действительно зависит от ваших потребностей. Просто добавьте 'UIView' с прозрачностью' .alpha = .5f', в том числе, почему не 'UILabel' и' UISpinner', и вы закончили –

+0

g. На самом деле я хотел бы создать серый/прозрачный вид, который будет «почти» в полноэкранном режиме, и это создаст впечатление, что, например, будет плавать другой черный фон. – Luc

12

Кулак короткий ответ: да, самый простой способ - использовать U IActivityIndicatorView.

Если вам не нравится все это «большие» статические библиотеки просто использовать это:

#import <QuartzCore/QuartzCore.h> 

..... 

- (UIActivityIndicatorView *)showActivityIndicatorOnView:(UIView*)aView 
{ 
    CGSize viewSize = aView.bounds.size; 

    // create new dialog box view and components 
    UIActivityIndicatorView *activityIndicatorView = [[UIActivityIndicatorView alloc] 
    initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; 

    // other size? change it 
    activityIndicatorView.bounds = CGRectMake(0, 0, 65, 65); 
    activityIndicatorView.hidesWhenStopped = YES; 
    activityIndicatorView.alpha = 0.7f; 
    activityIndicatorView.backgroundColor = [UIColor blackColor]; 
    activityIndicatorView.layer.cornerRadius = 10.0f; 

    // display it in the center of your view 
    activityIndicatorView.center = CGPointMake(viewSize.width/2.0, viewSize.height/2.0); 

    [aView addSubview:activityIndicatorView]; 

    [activityIndicatorView startAnimating]; 

    return activityIndicatorView; 
} 

Это необходим доступ к классу QuartzCore так добавить его к вам рамки. После выполнения задачи отправьте его stopAnimating и он исчезнет. Если вам это больше не нужно, удалите его из своего вида, чтобы сохранить память (кстати, это код ARC).

Я называю это, как этот

self.activityIndicatorView = [self showActivityIndicatorOnView:self.parentViewController.view]; 

В этом случае у меня есть UINavigationViewController в качестве основного контроллера представления в моем приложении. Это важно, поскольку индикатор активности должен отображаться в середине экрана, а не, например, в середине таблицы.

Простейшая реализация заключается в следующем:

- (UIActivityIndicatorView *)showSimpleActivityIndicatorOnView:(UIView*)aView 
{ 
    CGSize viewSize = aView.bounds.size; 

    // create new dialog box view and components 
    UIActivityIndicatorView *activityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; 

    activityIndicatorView.center = CGPointMake(viewSize.width/2.0, viewSize.height/2.0); 

    [aView addSubview:activityIndicatorView]; 

    [activityIndicatorView startAnimating]; 

    return activityIndicatorView; 
} 
Смежные вопросы