You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

170 lines
5.5 KiB

//
// TFComicDownloadViewCell.m
// TFReader
//
// Created by 谢腾飞 on 2020/12/15.
// Copyright © 2020 xtfei_2011@126.com. All rights reserved.
//
#import "TFComicDownloadViewCell.h"
#import "WXYZ_ComicDownloadManager.h"
@interface TFComicDownloadViewCell ()
{
UILabel *chapterNumLabel;
UIImageView *lockImageView;
UILabel *cellStateLabel;
}
@end
@implementation TFComicDownloadViewCell
- (instancetype)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame]) {
self.backgroundColor = [UIColor clearColor];
[self createSubViews];
}
return self;
}
- (void)createSubViews
{
chapterNumLabel = [[UILabel alloc] init];
chapterNumLabel.backgroundColor = kWhiteColor;
chapterNumLabel.textColor = kBlackColor;
chapterNumLabel.textAlignment = NSTextAlignmentCenter;
chapterNumLabel.font = kMainFont;
chapterNumLabel.layer.cornerRadius = 8;
chapterNumLabel.clipsToBounds = YES;
[self addSubview:chapterNumLabel];
[chapterNumLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.mas_equalTo(self);
}];
lockImageView = [[UIImageView alloc] init];
lockImageView.image = [[UIImage imageNamed:@"comic_lock"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
lockImageView.tintColor = kMainColor;
lockImageView.hidden = YES;
[chapterNumLabel addSubview:lockImageView];
[lockImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(kQuarterMargin);
make.top.mas_equalTo(kQuarterMargin);
make.width.height.mas_equalTo(self.mas_height).with.multipliedBy(0.3);
}];
cellStateLabel = [[UILabel alloc] init];
cellStateLabel.backgroundColor = [UIColor clearColor];
cellStateLabel.textColor = kWhiteColor;
cellStateLabel.textAlignment = NSTextAlignmentCenter;
cellStateLabel.font = kFont6;
cellStateLabel.layer.cornerRadius = (self.height * 0.2) / 2;
cellStateLabel.clipsToBounds = YES;
[chapterNumLabel addSubview:cellStateLabel];
[cellStateLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(chapterNumLabel.mas_right).with.offset(- 2);
make.bottom.mas_equalTo(chapterNumLabel.mas_bottom).with.offset(- 2);
make.width.mas_equalTo(20);
make.height.mas_equalTo(self.mas_height).with.multipliedBy(0.2);
}];
}
- (void)setChapterModel:(TFProductionChapterModel *)chapterModel
{
_chapterModel = chapterModel;
chapterNumLabel.text = chapterModel.display_label?:@"";
if (chapterModel.can_read) {
lockImageView.hidden = YES;
} else {
lockImageView.hidden = NO;
}
chapterNumLabel.text = chapterModel.display_label?:@"";
}
- (void)setCellDownloadState:(WXYZ_ProductionDownloadState)cellDownloadState
{
_cellDownloadState = cellDownloadState;
lockImageView.hidden = self.chapterModel.can_read;
switch (cellDownloadState) {
case WXYZ_ProductionDownloadStateNormal:
{
cellStateLabel.backgroundColor = [UIColor clearColor];
cellStateLabel.hidden = YES;
cellStateLabel.text = @"";
lockImageView.tintColor = kMainColor;
chapterNumLabel.backgroundColor = kWhiteColor;
chapterNumLabel.textColor = kBlackColor;
}
break;
case WXYZ_ProductionDownloadStateDownloading:
{
cellStateLabel.backgroundColor = kColorRGBA(28, 220, 142, 1);
cellStateLabel.hidden = NO;
cellStateLabel.text = TFLocalizedString(@"下载中");
lockImageView.tintColor = kMainColor;
lockImageView.hidden = YES;
chapterNumLabel.backgroundColor = kGrayDeepViewColor;
chapterNumLabel.textColor = kGrayTextColor;
}
break;
case WXYZ_ProductionDownloadStateDownloaded:
{
cellStateLabel.backgroundColor = kColorRGBA(28, 220, 142, 0.5);
cellStateLabel.hidden = NO;
cellStateLabel.text = TFLocalizedString(@"本地");
lockImageView.tintColor = kMainColor;
lockImageView.hidden = YES;
chapterNumLabel.backgroundColor = kGrayDeepViewColor;
chapterNumLabel.textColor = kGrayTextColor;
}
break;
case WXYZ_ProductionDownloadStateFail:
{
cellStateLabel.backgroundColor = kRedColor;
cellStateLabel.hidden = NO;
cellStateLabel.text = TFLocalizedString(@"失败");
lockImageView.tintColor = kMainColor;
chapterNumLabel.backgroundColor = kWhiteColor;
chapterNumLabel.textColor = kBlackColor;
}
break;
case WXYZ_ProductionDownloadStateSelected:
{
cellStateLabel.backgroundColor = [UIColor clearColor];
cellStateLabel.hidden = YES;
cellStateLabel.text = @"";
lockImageView.tintColor = kWhiteColor;
chapterNumLabel.backgroundColor = kMainColor;
chapterNumLabel.textColor = kWhiteColor;
}
break;
default:
break;
}
[cellStateLabel mas_updateConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo([TFViewHelper getDynamicWidthWithLabelFont:kFont6 labelHeight:(self.height * 0.2) labelText:cellStateLabel.text]);
}];
}
@end