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.
134 lines
6.4 KiB
134 lines
6.4 KiB
4 years ago
|
//
|
||
|
// WXYZ_BookFrontCoverView.m
|
||
|
// WXReader
|
||
|
//
|
||
|
// Created by LL on 2020/5/23.
|
||
|
// Copyright © 2020 Andrew. All rights reserved.
|
||
|
//
|
||
|
|
||
|
#import "WXYZ_BookFrontCoverView.h"
|
||
|
|
||
|
#import "TFReaderSettingHelper.h"
|
||
|
#import "TFReaderBookManager.h"
|
||
|
|
||
|
@interface WXYZ_BookFrontCoverView ()
|
||
|
|
||
|
@property (nonatomic, strong) TFProductionModel *bookModel;
|
||
|
|
||
|
@property (nonatomic, strong) TFReaderSettingHelper *readerSetting;
|
||
|
|
||
|
@end
|
||
|
|
||
|
@implementation WXYZ_BookFrontCoverView
|
||
|
|
||
|
- (instancetype)initWithFrame:(CGRect)frame
|
||
|
bookModel:(TFProductionModel *)bookModel
|
||
|
readerSetting:(TFReaderSettingHelper *)readerSetting {
|
||
|
if (self = [super initWithFrame:frame]) {
|
||
|
self.bookModel = bookModel;
|
||
|
self.readerSetting = readerSetting;
|
||
|
if ([TFNetworkManager networkingStatus]) {
|
||
|
[self netRquest];
|
||
|
} else {
|
||
|
NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject;
|
||
|
path = [path stringByAppendingPathComponent:[TFUtilsHelper stringToMD5:@"book_catalog"]];
|
||
|
NSString *catalogName = [NSString stringWithFormat:@"%zd_%@", bookModel.production_id, @"catalog"];
|
||
|
NSString *fullPath = [path stringByAppendingFormat:@"/%@.plist", [TFUtilsHelper stringToMD5:catalogName]];
|
||
|
if ([[NSFileManager defaultManager] fileExistsAtPath:fullPath]) {
|
||
|
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:fullPath];
|
||
|
TFCatalogModel *catalog = [TFCatalogModel modelWithDictionary:dict];
|
||
|
if (catalog.author) {
|
||
|
self.bookModel.author = self.bookModel.author ? self.bookModel.author : catalog.author.author_name;
|
||
|
self.bookModel.author_name = self.bookModel.author_name ? self.bookModel.author_name : catalog.author.author_name;
|
||
|
self.bookModel.author_id = self.bookModel.author_id ? self.bookModel.author_id : catalog.author.author_id;
|
||
|
self.bookModel.author_note = self.bookModel.author_note ? self.bookModel.author_note : catalog.author.author_note;
|
||
|
self.bookModel.author_avatar = self.bookModel.author_avatar ? self.bookModel.author_avatar : catalog.author.author_avatar;
|
||
|
} else {
|
||
|
TFProductionModel *t_catalog = [TFProductionModel modelWithDictionary:dict];
|
||
|
self.bookModel.author = self.bookModel.author ? self.bookModel.author : t_catalog.name;
|
||
|
self.bookModel.author_name = self.bookModel.author_name ? self.bookModel.author_name : t_catalog.name;
|
||
|
}
|
||
|
}
|
||
|
[self createSubviews];
|
||
|
}
|
||
|
}
|
||
|
return self;
|
||
|
}
|
||
|
|
||
|
- (void)netRquest {
|
||
|
WS(weakSelf)
|
||
|
[TFNetworkTools POST:Book_New_Catalog parameters:@{@"book_id" : @([TFReaderBookManager sharedManager].book_id)} model:TFCatalogModel.class success:^(BOOL isSuccess, TFCatalogModel * _Nullable t_model, TFNetworkRequestModel * _Nonnull requestModel) {
|
||
|
weakSelf.bookModel.author_note = t_model.author.author_note;
|
||
|
weakSelf.bookModel.author = t_model.author.author_name;
|
||
|
weakSelf.bookModel.author_name = t_model.author.author_name;
|
||
|
[weakSelf createSubviews];
|
||
|
} failure:nil];
|
||
|
}
|
||
|
|
||
|
- (void)createSubviews {
|
||
|
UIImageView *coverImageView = [[UIImageView alloc] init];
|
||
|
coverImageView.backgroundColor = [UIColor clearColor];
|
||
|
coverImageView.image = [UIImage imageNamed:@"book_reader_cover"];
|
||
|
[self addSubview:coverImageView];
|
||
|
[coverImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
|
make.edges.equalTo(self);
|
||
|
}];
|
||
|
|
||
|
UILabel *nameLabel = [[UILabel alloc] init];
|
||
|
nameLabel.text = self.bookModel.name ? : @"";
|
||
|
nameLabel.font = kBoldFont18;
|
||
|
nameLabel.textColor = [self.readerSetting getReaderTitleTextColor];
|
||
|
[coverImageView addSubview:nameLabel];
|
||
|
[nameLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
|
make.centerX.equalTo(coverImageView);
|
||
|
make.bottom.equalTo(coverImageView.mas_centerY);
|
||
|
}];
|
||
|
|
||
|
TFProductionCoverView *bookCoverView = [[TFProductionCoverView alloc] initWithProductionType:TFProductionTypeNovel coverDirection:TFProductionCoverDirectionVertical];
|
||
|
bookCoverView.coverImageUrl = self.bookModel.cover;
|
||
|
[coverImageView addSubview:bookCoverView];
|
||
|
[bookCoverView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
|
make.bottom.equalTo(nameLabel.mas_top).offset(-kMargin -kQuarterMargin);
|
||
|
make.centerX.equalTo(nameLabel);
|
||
|
make.height.equalTo(coverImageView.mas_height).multipliedBy(1.0 / 3.0);
|
||
|
make.width.equalTo(bookCoverView.mas_height).multipliedBy(150.0 / 200.0);
|
||
|
}];
|
||
|
|
||
|
self.bookModel.author_note = [self.bookModel.author_note stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
|
||
|
if (self.bookModel.author_note.length == 0) {
|
||
|
UILabel *authorLabel = [[UILabel alloc] init];
|
||
|
authorLabel.text = [NSString stringWithFormat:@"%@/%@", self.bookModel.author ?: @"", TFLocalizedString(@"作品")];
|
||
|
authorLabel.font = kFont14;
|
||
|
authorLabel.textColor = [self.readerSetting getReaderTextColor];
|
||
|
[coverImageView addSubview:authorLabel];
|
||
|
[authorLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
|
make.top.equalTo(nameLabel.mas_bottom).offset(12.0f);
|
||
|
make.centerX.equalTo(bookCoverView);
|
||
|
}];
|
||
|
} else {
|
||
|
UILabel *descLabel = [[UILabel alloc] init];
|
||
|
descLabel.numberOfLines = 5;
|
||
|
descLabel.font = kFont14;
|
||
|
descLabel.textColor = [self.readerSetting getReaderTextColor];
|
||
|
descLabel.text = self.bookModel.author_note;
|
||
|
[coverImageView addSubview:descLabel];
|
||
|
[descLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
|
make.top.equalTo(nameLabel.mas_bottom).offset(SCREEN_HEIGHT * 65.0 / 896.0);
|
||
|
make.left.equalTo(coverImageView).offset(63.0);
|
||
|
make.right.equalTo(coverImageView).offset(-63.0);
|
||
|
}];
|
||
|
|
||
|
UILabel *authorLabel = [[UILabel alloc] init];
|
||
|
authorLabel.font = kFont14;
|
||
|
authorLabel.textColor = [self.readerSetting getReaderTextColor];
|
||
|
authorLabel.text = [NSString stringWithFormat:@"%@%@", @"—— ", self.bookModel.author_name ?: @""];
|
||
|
[coverImageView addSubview:authorLabel];
|
||
|
[authorLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
|
make.top.equalTo(descLabel.mas_bottom).offset(kMoreHalfMargin);
|
||
|
make.right.equalTo(descLabel);
|
||
|
}];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@end
|