美文网首页
关于下载文件,根据文件下载进度显示进度条

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

作者: 为你弹琴 | 来源:发表于2018-12-07 17:12 被阅读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;

    }

    相关文章

      网友评论

          本文标题:关于下载文件,根据文件下载进度显示进度条

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