仿58同城loading加载界面(可复用)

最近发现MBProgressHUD的loading框有点不好看,所以就写了这个仿58同城的加载loading界面,如果觉得这个动画不符合,可以自己写一个动画,然后调用LoadingView里的方法就可以实现你自己的loading框.(注:动画时网上找到,具体是哪个作者写的我给忘了,感谢作者的开源,如果有作者看到,可以联系我).
其实主要的方法还是可以仿照MBProgressHUD的方法写:

+(instancetype)showLoadingViewToView:(UIView *)view animated:(BOOL)animated{
    LoadingView *loading = [[self alloc] initWithFrame:view.bounds];
    [view addSubview:loading];
    [loading startLoading:animated];
    return loading;
}

+(NSInteger)hideLoadingViewForView:(UIView *)view animated:(BOOL)animated {
    NSArray *huds = [LoadingView allLoadingsForView:view];
    for (LoadingView *loading in huds) {
        [loading stopLoading:animated];
    }
    return [huds count];
}

+ (instancetype)loadingForView:(UIView *)view {
    NSEnumerator *subviewsEnum = [view.subviews reverseObjectEnumerator];
    for (UIView *subview in subviewsEnum) {
        if ([subview isKindOfClass:self]) {
            return (LoadingView *)subview;
        }
    }
    return nil;
}

+ (NSArray *)allLoadingsForView:(UIView *)view {
    NSMutableArray *huds = [NSMutableArray array];
    NSArray *subviews = view.subviews;
    for (UIView *aView in subviews) {
        if ([aView isKindOfClass:self]) {
            [huds addObject:aView];
        }
    }
    return [NSArray arrayWithArray:huds];
}

主要的就是这几个方法.
用的时候需要导入头文

#import "LoadingView.h"

然后,在请求之前调用方法

[LoadingView showLoadingViewToView:self.view animated:YES];

请求完成时,需要隐藏loading框

[LoadingView hideLoadingViewForView:self.view animated:YES];

这就完成了.是不是很简单,想要换动画的话,就自己写一个专属的动画,这样就可以实现自己的加载loading框了.
点击此处下载demo

你可能感兴趣的:(仿58同城loading加载界面(可复用))