亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS tableView上拉刷新顯示下載進度的問題及解決辦法

2020-07-26 02:55:04
字體:
來源:轉載
供稿:網友

一,點擊下載按鈕后,調用的時afnetworking的downLoad方法,具體代碼如下

@interface ViewController ()<UITableViewDelegate,UITableViewDataSource>{  XLCircleProgress *_circle;  CGFloat _progress;}@property (strong,nonatomic) NSURLSessionDownloadTask *downloadTask;@property (strong,nonatomic) UITableView *tableView;@property (strong,nonatomic) NSMutableArray *dataSource;@end
- (void)request:(NSInteger)index{  //下載  NSURL *URL = [NSURL URLWithString:@"http://song.90uncle.com/upload/media/e366a607d222442f83ed7028c4d7118e_20170227110100.mp4"];  NSURLRequest *request = [NSURLRequest requestWithURL:URL];  AFHTTPSessionManager *manger = [AFHTTPSessionManager manager];  manger.responseSerializer = [AFJSONResponseSerializer serializer];  _downloadTask= [manger downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) {    NSLog(@"%f",downloadProgress.fractionCompleted);    _progress = downloadProgress.fractionCompleted;    // 開一個異步線程,放到主隊列里面刷新數據    dispatch_async(dispatch_get_main_queue(), ^{      [self reloadCell:index];    });  } destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {    //獲取沙盒cache路徑    NSURL * documentsDirectoryURL = [[NSFileManager defaultManager] URLForDirectory:NSCachesDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];    return [documentsDirectoryURL URLByAppendingPathComponent:[response suggestedFilename]];  } completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {    if (error) {      NSLog(@"失敗");    } else {       NSLog(@"成功");    }  }];  [_downloadTask resume];}- (void)reloadCell:(NSInteger)index{  // 修改對應的數據源  NSMutableDictionary *dic = [[NSMutableDictionary alloc]init];  [dic addEntriesFromDictionary:self.dataSource[index]];  [dic removeObjectForKey:@"progress"];  [dic setObject:@(_progress) forKey:@"progress"];  [self.dataSource replaceObjectAtIndex:index withObject:dic];  // 刷新某一個cell  NSIndexPath *indexPath = [NSIndexPath indexPathForRow:index inSection:0];  [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationNone];}

問題:如果是但一個下載刷新是可以的,但是多個任務同時進行的話,就會來回的數據交換

解決方法一:在網上查了好多資料,發現是不能實時刷新cell的,不管是單個還是多個,因為刷新會出現界面跳動的現象,當然是不是有其他的方法可以解決,這也是有可能的。

解決方法二:直接在異步里面實時賦值(找到相應的cell),這樣就可以避免因刷新cell帶來的界面跳動的現象,具體看代碼:

但是這樣還存在了,刷新時已經下載了的cell進度條會出現歸零的現象,刷新過后會還原到正常值,然而,如果是下載完事了再刷新,直接就是0了,這應該是cell復用導致的,那么接下來就來解決刷新歸零的問題。

// 找到相應的cell的indexPathNSIndexPath *indexPath = [NSIndexPath indexPathForRow:index inSection:0];MyTableViewCell *cell = (MyTableViewCell *)[_tableView cellForRowAtIndexPath:indexPath];    dispatch_async(dispatch_get_main_queue(), ^{  // 這樣網上說這樣會耗費cpu資源,我親測后,基本不費資源,還有就是怕內存泄露等問題,但是現在還沒撲捉到,以后發現不妥之處了,再加修正      cell.progress.progress = _progress;//      [self reloadCell:index];    });

下面是cell復用的機制,如果在里面不給進度條付初值,就不會在刷新的時候出現歸零的問題

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{  MyTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];  cell.selectionStyle = NO;  cell.title.text = self.dataSource[indexPath.row][@"title"];//  cell.progress.progress = [self.dataSource[indexPath.row][@"progress"] floatValue];  return cell;}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩美女视频免费在线观看| 最近2019中文字幕大全第二页| 深夜福利国产精品| 姬川优奈aav一区二区| 91香蕉电影院| 秋霞午夜一区二区| 国产精品成人播放| 国产成人免费av| 亚洲视频一区二区三区| 欧洲亚洲在线视频| 一级做a爰片久久毛片美女图片| 久久久亚洲精选| 日韩av中文字幕在线| 日韩电影大全免费观看2023年上| 日韩一区二区欧美| 亚洲人午夜精品| 午夜精品视频网站| 91av视频在线| 亚洲成人精品视频在线观看| 国产日韩欧美在线| 欧美一级片一区| 91精品久久久久久久久久久久久| 91亚洲精品在线观看| 5566日本婷婷色中文字幕97| 一个人www欧美| 欧美裸体xxxx极品少妇软件| 亚洲a在线观看| 91精品国产高清自在线看超| 成人黄色av播放免费| 神马久久久久久| 国产精品久久久久久久美男| 欧美精品18videos性欧美| 色阁综合伊人av| 国产精品永久免费观看| 欧美高清视频在线观看| 另类天堂视频在线观看| 久久精品视频在线观看| 欧美日韩国产中文字幕| 日韩美女在线观看一区| 亚洲美女视频网| 亚洲aⅴ男人的天堂在线观看| 国产精品福利在线| 欧美性猛交xxxx偷拍洗澡| 欧美高清在线观看| 91成人国产在线观看| 亚洲黄色成人网| 日韩欧美国产免费播放| 久久精品人人爽| 久久国产精品免费视频| 欧美另类高清videos| 黑人巨大精品欧美一区二区| 国产精欧美一区二区三区| 亚洲缚视频在线观看| 亚洲精品电影在线| 国产日韩在线免费| 亚洲视频777| 日韩亚洲第一页| 国产精品青草久久久久福利99| 亚洲大胆美女视频| 亚洲精品女av网站| 欧美中文在线字幕| 欧美电影在线观看完整版| 日本韩国在线不卡| 欧美视频免费在线| 国产激情999| 久久黄色av网站| 午夜剧场成人观在线视频免费观看| 欧美片一区二区三区| 欧美成人免费在线观看| 国内精品免费午夜毛片| 国产99久久久欧美黑人| 国产成人涩涩涩视频在线观看| 亚洲欧美一区二区激情| 欧美日韩综合视频| www.亚洲人.com| 91在线观看免费网站| 久久久久久这里只有精品| 日本一区二区在线播放| 精品久久久久久久大神国产| 欧美一区二区视频97| 欧美久久久精品| 日韩国产中文字幕| 国产国产精品人在线视| 国产精品老女人视频| 大量国产精品视频| 亚洲第一天堂无码专区| 亚洲午夜小视频| 奇米一区二区三区四区久久| 精品国产一区二区三区久久久狼| 国产精品久久久久久久久久久不卡| 欧美高清第一页| 日韩美女av在线免费观看| 亚洲国产婷婷香蕉久久久久久| 国产精品电影网站| 国产aⅴ夜夜欢一区二区三区| 久操成人在线视频| 超碰97人人做人人爱少妇| 久久人体大胆视频| 久久久久久美女| 色综合天天综合网国产成人网| 中文一区二区视频| 5566日本婷婷色中文字幕97| 国产精品日韩欧美综合| 日韩经典中文字幕| 深夜福利一区二区| 亚洲美女av网站| 欧美一性一乱一交一视频| 色www亚洲国产张柏芝| 日韩av免费看网站| 中文字幕精品视频| 在线视频精品一| 国产成人精品一区二区在线| 中文字幕在线看视频国产欧美在线看完整| 亚洲直播在线一区| 91高清免费视频| 中文综合在线观看| 欧美www视频在线观看| 91天堂在线视频| 理论片在线不卡免费观看| 国产精品美女在线| 日韩免费在线看| 欧美激情久久久久| 中文字幕一精品亚洲无线一区| 日韩中文av在线| 亚洲欧美激情另类校园| 欧美特级www| 精品国产自在精品国产浪潮| 久久91亚洲精品中文字幕| 久久精品国产69国产精品亚洲| 狠狠色香婷婷久久亚洲精品| 日韩免费av一区二区| 国产成人精品综合| 欧美丰满少妇xxxxx| 日韩精品视频中文在线观看| 人人做人人澡人人爽欧美| 亚洲精品一区中文字幕乱码| 中文字幕av日韩| 日本aⅴ大伊香蕉精品视频| 精品久久久久久久久久久久久| 亚洲第一偷拍网| 欧美视频专区一二在线观看| 成人xvideos免费视频| 国产91网红主播在线观看| 日韩精品中文字幕久久臀| 91丝袜美腿美女视频网站| 久久久人成影片一区二区三区| 欧美性猛交xxxx乱大交3| 黄色成人在线播放| 亚洲老头同性xxxxx| 亚洲国产精品成人精品| 亚洲天堂男人天堂女人天堂| 欧洲日本亚洲国产区| 精品视频偷偷看在线观看| 亚洲第一精品夜夜躁人人爽| 精品久久中文字幕久久av| 国产一区二区三区在线观看视频| 精品一区二区三区电影| 日韩欧美精品网站| 国产一区二区免费| 米奇精品一区二区三区在线观看| 日韩av男人的天堂| 欧美乱妇高清无乱码| 欧美丰满少妇xxxxx| 日本一区二区在线播放|