// // 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