继承与UIView,直接调用start和stop事件;
@interface ActivityIndicatorView ()
{
UIImageView *_imageView;
UILabel *_label;
}
@end
@implementation ActivityIndicatorView
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self)
{
NSMutableArray *images = [NSMutableArray array];
for (int i = 1; i <= 8; i++)
{
NSString *imageName = [NSString stringWithFormat:@"activity_0%d.png", i];
NSString *path = [[NSBundle mainBundle] pathForAuxiliaryExecutable:imageName];
UIImage *image = [UIImage imageWithContentsOfFile:path];
[images addObject:image];
}
_imageView = [[UIImageView alloc] init];
_imageView.bounds = CGRectMake(0, 0, 20, 20);
_imageView.center = CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds));
_imageView.animationImages = images;
_imageView.animationDuration = 1.0;
_imageView.animationRepeatCount = 0;
[self addSubview:_imageView];
_label = [[UILabel alloc]initWithFrame:CGRectMake(SCREEN_WIDTH / 2 - 230, 20, 200, 20)];
_label.text = @"网络加载中,请等待...";
_label.font = [UIFont systemFontOfSize:12];
_label.textAlignment = NSTextAlignmentCenter;
[_imageView addSubview:_label];
_label.alpha = 0.0;
[_label release];
[_imageView release];
}
return self;
}
- (void)start
{
_label.alpha = 1.0;
[_imageView startAnimating];
}
- (void)stop
{
_label.alpha = 0.0;
[_imageView stopAnimating];
}