首页 > 代码库 > iOS 自定义转子

iOS 自定义转子

继承与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];

}