123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- //
- // VideoDownLoadListCell.m
- // jiaPei
- //
- // Created by 张嵘 on 2018/11/5.
- // Copyright © 2018 JCZ. All rights reserved.
- //
- #import "VideoDownLoadListCell.h"
- @interface VideoDownLoadListCell ()
- @property (nonatomic, strong) RQDownloadModel *downloadModel;
- @end
- @implementation VideoDownLoadListCell
- #pragma mark - Life Circle
- - (void)awakeFromNib {
- [super awakeFromNib];
- self.backgroundColor = backGroundColor;
- }
- - (void)setSelected:(BOOL)selected animated:(BOOL)animated {
- [super setSelected:selected animated:animated];
-
- // Configure the view for the selected state
- }
- #pragma mark - About UI
- - (void)refreshUIWithDownloadModel:(RQDownloadModel *)downloadModel{
-
- RQDownloadStatus downloadStatus = downloadModel.status;
- CGFloat progress = downloadModel.progress;
- NSInteger progressInt = (NSInteger)(progress * 100);
- dispatch_async(dispatch_get_main_queue(), ^{
-
- // [self.progressView setProgress:progress];
- self.stateLabel.text = downloadModel.statusText;
- [self.downLoadBtn setTitle:nil forState:UIControlStateNormal];
-
- if(downloadStatus == RQDownloadStatus_None){
- [self.downLoadBtn setImage:[UIImage imageNamed:@"RQ_download_ready"] forState:UIControlStateNormal];
- }else if(downloadStatus == RQDownloadStatus_Running){
- [self.downLoadBtn setImage:nil forState:UIControlStateNormal];
- NSString *title = [NSString stringWithFormat:@"%zd%%",progressInt];
- [self.downLoadBtn setTitle:title forState:UIControlStateNormal];
- }else if(downloadStatus == RQDownloadStatus_Suspended){
- [self.downLoadBtn setImage:[UIImage imageNamed:@"RQ_download_pause"] forState:UIControlStateNormal];
- }else if(downloadStatus == RQDownloadStatus_Completed){
- [self.downLoadBtn setImage:[UIImage imageNamed:@"RQ_download_finished"] forState:UIControlStateNormal];
- }else if(downloadStatus == RQDownloadStatus_Failed){
- [self.downLoadBtn setImage:[UIImage imageNamed:@"RQ_download_fail"] forState:UIControlStateNormal];
- }else if(downloadStatus == RQDownloadStatus_Waiting){
- [self.downLoadBtn setImage:[UIImage imageNamed:@"RQ_download_waiting"] forState:UIControlStateNormal];
- }else{
-
- }
- [self layoutSubviews];
- });
- }
- #pragma mark - Pravite Method
- - (RQDownloadModel *)downloadModel {
- _downloadModel = [kRQDownloadDataBaseManager getModelWithUrl:self.model.urlString];
-
- if(!_downloadModel && _model){
- _downloadModel = [[RQDownloadModel alloc] init];
- _downloadModel = _model;
- }
- __weak typeof(self) weakSelf = self;
- _downloadModel.statusChanged = ^(RQDownloadModel *downloadModel) {
- [weakSelf refreshUIWithDownloadModel:downloadModel];
- };
-
- _downloadModel.progressChanged = ^(RQDownloadModel *downloadModel) {
- [weakSelf refreshUIWithDownloadModel:downloadModel];
- };
- return _downloadModel;
- }
- #pragma mark - Event response
- - (IBAction)downloadAction:(id)sender {
- RQDownloadStatus downloadStatus = self.downloadModel.status;
-
- if(downloadStatus == RQDownloadStatus_None){
-
- [kRQDownloadManager startDownloadTask:self.downloadModel];
-
- }else if(downloadStatus == RQDownloadStatus_Running){
-
- [kRQDownloadManager pauseDownloadTask:self.downloadModel];
-
- }else if(downloadStatus == RQDownloadStatus_Suspended){
-
- [kRQDownloadManager startDownloadTask:self.downloadModel];
-
- }else if(downloadStatus == RQDownloadStatus_Completed){
- VideoPlayViewController *vc = [[VideoPlayViewController alloc] init];
- vc.currentModel = self.downloadModel;
- [[RQ_SHARE_FUNCTION topViewController] navPushHideTabbarToVC:vc];
- }else if(downloadStatus == RQDownloadStatus_Failed){
-
- [kRQDownloadManager startDownloadTask:self.downloadModel];
- }else if(downloadStatus == RQDownloadStatus_Waiting){
-
- }else if(downloadStatus == RQDownloadStatus_Cancel){
-
- [kRQDownloadManager startDownloadTask:self.downloadModel];
- }
- }
- #pragma mark - Delegate methods
- #pragma mark - Getters/Setters/Lazy
- - (void)setModel:(RQDownloadModel *)model{
- _model = model;
-
- self.titleLabel.text = model.title;
-
- [self.ImageView sd_setImageWithURL:[NSURL URLWithString:model.imageUrl] placeholderImage:[UIImage imageNamed:@"NOIMG"]];
-
- [self refreshUIWithDownloadModel:model];
- }
- // 更新视图
- - (void)updateViewWithModel:(RQDownloadModel *)model {
- [self refreshUIWithDownloadModel:model];
- }
- @end
|