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;
}
网友评论