I am trying to update a each table cell with progress bar loading, but I am stuck.
I created a custom cell for a table view with these properties:
@interface OFPTableCell : UITableViewCell
@property (nonatomic, weak) IBOutlet UILabel *textLabel;
@property (nonatomic, weak) IBOutlet UILabel *detailTextLabel;
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@property (weak, nonatomic) IBOutlet UIProgressView *progressView;
@end;
and after just @synthesize them, now i have in each table cell a progress bar as expected.
The problem is that when i try to update even 1 st cell with a loading progress bar it just do nothing or its set 0 or full progress bar.
Note that the download process is working fine.
Bellow you may find the code where i try to update the progress bar:
- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didWriteData:(int64_t)bytesWritten
totalBytesWritten:(int64_t)totalBytesWritten totalBytesExpectedToWrite: (int64_t)totalBytesExpectedToWrite
{
dispatch_async(dispatch_get_main_queue(), ^{
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
OFPTableCell *cell = (OFPTableCell*)[self tableView:self.tableViewCache cellForRowAtIndexPath:indexPath];
cell.progressView.progress=(double)totalBytesWritten / (double)totalBytesExpectedToWrite;
});
}
Below is the method cellForRowAtIndexPath :
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
OFPTableCell *cell = [self.tableViewCache dequeueReusableCellWithIdentifier:@"Cell"];
OFPVideoDetails *vd = [someArray objectAtIndex:indexPath.row];
cell.textLabel.text=vd1;
cell.detailTextLabel.text=vd2;
CGSize size = {65,53};
cell.imageView.image =[self imageWithImage:[UIImage imageWithContentsOfFile:vd.imageUrl] scaledToSize:size];
cell.delegate = self;
return cell;
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…