iOS YTKNetwork插件数据请求HUD

作者: 七分呗轻唱 | 来源:发表于2016-07-10 10:58 被阅读637次

1.协议插件

@protocol YTKRequestAccessory <NSObject>
@optional
- (void)requestWillStart:(id)request;
- (void)requestWillStop:(id)request;
- (void)requestDidStop:(id)request;

2.给API请求添加插件功能

- (void)startWithCompletionBlockWithSuccess:(void (^)(YTKBaseRequest *request))success failure:(void (^)(YTKBaseRequest *request))failure {
__block id safeSelf = self;、
[self addAccessory:[DTLoadingIndicator sharedLoadingIndicator]]; //添加HUB并且成为代理
self.successCompletionBlock = ^(YTKBaseRequest *request){
    [safeSelf printRequestInfo:request];
    success(request);
};
self.failureCompletionBlock = ^(YTKBaseRequest *request){
    [safeSelf printRequestInfo:request];
    if (request.responseStatusCode==0) {
        [MBProgressHUD showMessage:@"网络异常" finishBlock:nil];
    }else{
        NSString *errorString = [NSString stringWithFormat:@"请求失败, 状态码:%ld",(long)request.responseStatusCode];
        [MBProgressHUD showMessage:errorString finishBlock:nil];
    }
    failure(request);
};
[self start];
}

3.遵循协议的HUB动画

@interface DTLoadingIndicator : UIView<YTKRequestAccessory>
@property (strong, nonatomic)  UIImageView *backImage;
+ (DTLoadingIndicator *)sharedLoadingIndicator;
- (void)settingDefault;
    - (void)setIndicatorWith:(NSString *)image num:(int)num speed:(float)speed      backGroundColor:(UIColor *)backColor color:(UIColor *)color moveViewSize:(float)moveViewSize moveSize:(float)moveSize;
    -(void)show;
    -(void)hide;

4.HUB动画实现代理方法

 - (void)requestWillStart:(id)request{
    [self show];
}

- (void)requestWillStop:(id)request{
   [self hide];
}

相关文章

网友评论

    本文标题:iOS YTKNetwork插件数据请求HUD

    本文链接:https://www.haomeiwen.com/subject/ypqodttx.html