关于下载文件,根据文件下载进度显示进度条

2018-12-07  本文已影响0人  为你弹琴

 btn.userInteractionEnabled = NO;

         _urlStr = @"http://www.hudiezc.com/admin-test/ios%E5%BC%80%E5%8F%91.pdf";

        /* 创建网络下载对象 */

        AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];

        /* 下载地址 */

        NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:_urlStr]];

       /* 下载路径 */

        NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];

        NSString*filePath = [pathstringByAppendingPathComponent:_urlStr.lastPathComponent];

       /* 开始请求下载 */

        NSURLSessionDownloadTask*downloadTask = [managerdownloadTaskWithRequest:requestprogress:^(NSProgress*_NonnulldownloadProgress) {

// 主线程里修改进度条的值 

           dispatch_async(dispatch_get_main_queue(), ^{

// 修改进度条的值

                self.progress.progress= downloadProgress.fractionCompleted;

                if(downloadProgress.fractionCompleted==1) {

//                    证明下载完成了

                    for(UIView*viewin[self.downBtnsubviews])

                    {

                        [viewremoveFromSuperview];

                    }

// 更改按钮的内容

                    [self.downBtnaddSubview:[selflabelTitle:@"点击分享"fontSize:17.0color:[UIColorwhiteColor] CGFloatX:35*W_RATIOCGFloatY:14*H_RATIOCGFloatW:70*W_RATIOCGFloatH:18*H_RATIOtextAlignment:@""]];

                    self.downBtn.tag=1;

                }

            });

            NSLog(@"下载进度:%.0f%", downloadProgress.fractionCompleted*100);

            self.completed= downloadProgress.fractionCompleted;

        }destination:^NSURL*_Nonnull(NSURL*_NonnulltargetPath,NSURLResponse*_Nonnullresponse) {

            //        return targetPath;

            /* 设定下载到的位置 */

            self.downAddress= filePath;

            NSLog(@"下载地址:%@", [NSURLfileURLWithPath:filePath]);

            return[NSURLfileURLWithPath:filePath];

        }completionHandler:^(NSURLResponse*_Nonnullresponse,NSURL*_NullablefilePath,NSError*_Nullableerror) {

            NSLog(@"下载完成");

// 主线程里 把下载好的链接存起来

            dispatch_async(dispatch_get_main_queue(), ^{

                [udsetObject:self.downAddressforKey:self.fileKey];

                btn.userInteractionEnabled=YES;

            });

        }];

        [downloadTaskresume];

//  懒加载progress

-(UIProgressView*)progress {

    if(!_progress) {

        //进度条高度不可修改

        _progress= [[UIProgressViewalloc]initWithFrame:CGRectMake(0,182*H_RATIO,135*W_RATIO,45*H_RATIO)];

        _progress.transform = CGAffineTransformMakeScale(1.0f, 22.5*H_RATIO);

//        已经完成的进度

        _progress.progressTintColor = Tab_COLOR;

//        没有完成的进度

        _progress.trackTintColor = [UIColor whiteColor];

        _progress.progressViewStyle = UIProgressViewStyleDefault;

    }

    return _progress;

}

上一篇下一篇

猜你喜欢

热点阅读