UIActivityIndicatorView的详细使用

转自:http://www.cnblogs.com/top5/archive/2012/05/17/2506623.html

UIActivityIndicatorView实例提供轻型视图,这些视图显示一个标准的旋转进度轮。当使用这些视图时,最重要的一个关键词是小。20×20像素是大多数指示器样式获得最清楚显示效果的大小。只要稍大一点,指示器都会变得模糊。

iPhone提供了几种不同样式的UIActivityIndicatorView类。UIActivityIndicator- ViewStyleWhite和UIActivityIndicatorViewStyleGray是最简洁的。黑色背景下最适合白色版本的外观,白色背景最适合灰色外观(如图4-7所示)。它非常瘦小,而且采用夏普风格。选择白色还是灰色时要格外注意。全白显示在白色背景下将不能显示任何内容。而UIActivityIndicatorViewStyleWhiteLarge只能用于深色背景。它提供最大、最清晰的指示器。

如果希望指示器停止后自动隐藏,那么要设置hidesWhenStoped属性为YES。默认是YES。设置为NO停止后指示器仍会显示。
activityIndicatorView.hidesWhenStoped = NO;

三、网络活动指示器

  1. 当你的应用程序使用网络时,应当在iPhone的状态条上放置一个网络指示器,警告用户正在使用网络。这时你可以用UIApplication的一个名为networkActivityIndicatorVisible的属性。通过设置这个可以启用或禁用网络指示器:UIApplication* app = [ UIApplication sharedApplication ];
  2. pp.networkActivityIndicatorVisible = YES;

下面代码实现进度轮的启动和停止:

#import "TPViewController.h"

@interface TPViewController ()

@property(nonatomic, strong) UIActivityIndicatorView *active;

@end

@implementation TPViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
                // Custom initialization
        }
        return self;
}

- (void)viewDidLoad
{
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        
        [self.view setBackgroundColor:[UIColor whiteColor]];
        
        _active = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 0, 60, 100)];
        [_active setCenter:CGPointMake(160, 140)];
        [_active setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhiteLarge];
        [self.view addSubview:_active];
        
}

- (void)didReceiveMemoryWarning
{
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
}

- (IBAction)btnClick:(UIButton *)sender
{
        if([_active isAnimating])
        {
                [_active stopAnimating];
        }
        else
        {
                [_active startAnimating];
        }
}
@end