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.
133 lines
6.4 KiB
133 lines
6.4 KiB
// |
|
// 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
|
|
|