IOS 开发之网络加载屏幕中心转圈的动画

我们都知道,当我们进入一个新的页面的时候,开始网络加载转圈,当数据加载完成的时候,转圈动画消失,今天闲着没事,记录一下,实际上很简单,没错,就是MBProgressHUD三方,我简单的封装了一下:

#pragma mark - 网络请求转圈方法

+ (void)showLoading:(UIView*)view{

    [MBProgressHUD hideHUDForView:view animated:YES];

    MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES];

    hud.mode = MBProgressHUDModeCustomView;

    hud.bezelView.style = MBProgressHUDBackgroundStyleSolidColor;

    hud.bezelView.backgroundColor = [UIColor clearColor];

    NSURL *imgUrl = [[NSBundle mainBundle] URLForResource:@"qywkLoading" withExtension:@"gif"];

    FLAnimatedImage*animatedImg = [FLAnimatedImage animatedImageWithGIFData:[NSData dataWithContentsOfURL:imgUrl]];

    FLAnimatedImageView *imageViewCircle = [[FLAnimatedImageView alloc] init];

    imageViewCircle.animatedImage= animatedImg;

    hud.customView= imageViewCircle;

    [view bringSubviewToFront:hud];

}

#pragma mark - 取消网络请求转圈方法

+ (void)hideLoading:(UIView*)view{

    [MBProgressHUD hideHUDForView:view animated:YES];

}

然后再需要用到的地方需要调用次方法 (用封装的类名调用,这里注意,需要在主线程里面写,这里我又做了一层实例封装)

// 自定义转圈样式 显示转圈

- (void)showLoading {

    dispatch_async(dispatch_get_main_queue(), ^{

        [RCUtilsNetwork showLoading:self.view];

    });

}

// 自定义转圈样式 隐藏转圈

- (void)hideLoading {

    dispatch_async(dispatch_get_main_queue(), ^{

        [RCUtilsNetwork hideLoading:self.view];

    });

}

//为了转圈的时候不能点击其他控件,所以还可以重写父类的方法

#pragma mark 重写父类转圈方法

- (void)showLoading{

    [RCToast showToastAddToView:[UIApplication sharedApplication].keyWindow animate:YES];

    [UIApplication sharedApplication].keyWindow.userInteractionEnabled = NO;

}

#pragma mark 重写父类隐藏转圈方法

- (void)hideLoading{

    [RCToast hideToastForView:[UIApplication sharedApplication].keyWindow];

    [UIApplication sharedApplication].keyWindow.userInteractionEnabled = YES;

}

这个是重写父类的子方法

+ (void)showToastAddToView:(UIView*)view animate:(BOOL)animate{

    [MBProgressHUD showHUDAddedTo:view animated:animate];

}

+ (void)hideToastForView:(UIView*)view{

    [MBProgressHUD hideHUDForView:view animated:YES];

}

你可能感兴趣的:(IOS 开发之网络加载屏幕中心转圈的动画)