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.
200 lines
7.4 KiB
200 lines
7.4 KiB
// |
|
// TFSignAlertView.m |
|
// TFReader |
|
// |
|
// Created by 谢腾飞 on 2020/12/17. |
|
// Copyright © 2020 xtfei_2011@126.com. All rights reserved. |
|
// |
|
|
|
#import "TFSignAlertView.h" |
|
#import "TFCollectionManager.h" |
|
|
|
@interface TFSignAlertView () |
|
|
|
@property (nonatomic ,strong) UIView *bookBackView; |
|
@end |
|
|
|
@implementation TFSignAlertView |
|
|
|
- (void)createSubviews |
|
{ |
|
[super createSubviews]; |
|
|
|
self.bookBackView = [[UIView alloc] init]; |
|
self.bookBackView.backgroundColor = [UIColor clearColor]; |
|
[self.alertBackView addSubview:self.bookBackView]; |
|
|
|
self.cancelTitle = TFLocalizedString(@"不用了"); |
|
self.confirmTitle = TFLocalizedString(@"全部加入书架"); |
|
|
|
WS(weakSelf) |
|
self.confirmButtonClickBlock = ^{ |
|
[weakSelf addBooks]; |
|
}; |
|
} |
|
|
|
- (void)showAlertView |
|
{ |
|
if (_bookList.count == 0) { |
|
[self closeAlertView]; |
|
return; |
|
} |
|
|
|
[super showAlertView]; |
|
|
|
CGFloat bookWidth = (self.alertViewWidth - 2 * kMargin - 2 * kHalfMargin) / 3; |
|
CGFloat bookHeigh = kGeometricHeight(bookWidth, 3, 4); |
|
|
|
[self.contentLabel mas_updateConstraints:^(MASConstraintMaker *make) { |
|
make.height.mas_equalTo(30); |
|
}]; |
|
|
|
[self.bookBackView mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.left.mas_equalTo(kMargin); |
|
make.top.mas_equalTo(self.contentLabel.mas_bottom).with.offset(kMargin); |
|
make.width.mas_equalTo(self.alertBackView.mas_width).with.offset(- 2 * kMargin); |
|
make.height.mas_equalTo(bookHeigh + 40); |
|
}]; |
|
|
|
[self.cancelButton mas_remakeConstraints:^(MASConstraintMaker *make) { |
|
make.left.mas_equalTo(self.alertBackView.mas_left).with.offset(0); |
|
make.top.mas_equalTo(self.bookBackView.mas_bottom).with.offset(kMargin); |
|
make.height.mas_equalTo(self.alertViewBtnHeight); |
|
make.width.mas_equalTo(self.alertViewWidth / 2); |
|
}]; |
|
|
|
[self.confirmButton mas_remakeConstraints:^(MASConstraintMaker *make) { |
|
make.right.mas_equalTo(self.alertBackView.mas_right).with.offset(0); |
|
make.top.mas_equalTo(self.bookBackView.mas_bottom).with.offset(kMargin); |
|
make.height.mas_equalTo(self.alertViewBtnHeight); |
|
make.width.mas_equalTo(self.alertViewWidth / 2); |
|
}]; |
|
} |
|
|
|
- (void)setBookList:(NSArray *)bookList |
|
{ |
|
_bookList = bookList; |
|
if (kObjectIsEmpty(bookList)) return; |
|
|
|
CGFloat bookWidth = (self.alertViewWidth - (2 * kMargin) - (2 * kHalfMargin)) / 3.0; |
|
CGFloat bookHeigh = kGeometricHeight(bookWidth, 3, 4); |
|
|
|
int buttonNum = 3;//每行多少按钮 |
|
CGFloat button_W = bookWidth;//按钮宽 |
|
CGFloat space_X = kHalfMargin;//按钮间距 |
|
UIView *backView = [[UIView alloc] init]; |
|
backView.backgroundColor = [UIColor clearColor]; |
|
[self.bookBackView addSubview:backView]; |
|
[backView mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.center.equalTo(self.bookBackView); |
|
}]; |
|
|
|
int max = (int)(bookList.count < 3 ? bookList.count : 3); |
|
|
|
for (int i = 0; i < max; i ++) { |
|
int loc = i % buttonNum;//列号 |
|
CGFloat button_X = (space_X + button_W) * loc; |
|
|
|
TFProductionModel *t_model = [bookList objectOrNilAtIndex:i]; |
|
|
|
// 图片 |
|
TFProductionCoverView *bookImageView = [[TFProductionCoverView alloc] initWithProductionType:t_model.productionType coverDirection:TFProductionCoverDirectionVertical]; |
|
bookImageView.userInteractionEnabled = YES; |
|
bookImageView.coverImageUrl = t_model.cover; |
|
[backView addSubview:bookImageView]; |
|
|
|
[bookImageView mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.top.mas_equalTo(0); |
|
make.left.mas_equalTo(button_X); |
|
make.width.mas_equalTo(bookWidth); |
|
make.height.mas_equalTo(bookHeigh); |
|
if (i == max - 1) { |
|
make.right.equalTo(backView); |
|
} |
|
}]; |
|
|
|
// 书名 |
|
UILabel *titleLabel = [[UILabel alloc] init]; |
|
titleLabel.numberOfLines = 1; |
|
titleLabel.text = [NSString stringWithFormat:@"%@\n", t_model.name]; |
|
titleLabel.backgroundColor = kWhiteColor; |
|
titleLabel.font = kFont12; |
|
titleLabel.textAlignment = NSTextAlignmentLeft; |
|
[backView addSubview:titleLabel]; |
|
|
|
[titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.centerX.mas_equalTo(bookImageView.mas_centerX); |
|
make.top.mas_equalTo(bookImageView.mas_bottom); |
|
make.width.mas_equalTo(bookImageView.mas_width); |
|
make.height.mas_equalTo(20); |
|
make.bottom.equalTo(backView); |
|
}]; |
|
|
|
UILabel *connerLabel = [[UILabel alloc] init]; |
|
connerLabel.font = kFont8; |
|
connerLabel.layer.cornerRadius = 4.0f; |
|
connerLabel.textAlignment = NSTextAlignmentCenter; |
|
connerLabel.textColor = kWhiteColor; |
|
connerLabel.clipsToBounds = YES; |
|
[bookImageView addSubview:connerLabel]; |
|
|
|
[connerLabel mas_makeConstraints:^(MASConstraintMaker *make) { |
|
make.right.mas_equalTo(bookImageView.mas_right).with.offset(- kQuarterMargin); |
|
make.top.mas_equalTo(bookImageView.mas_top).with.offset(kQuarterMargin); |
|
make.width.mas_equalTo(30); |
|
make.height.mas_equalTo(15); |
|
}]; |
|
|
|
if (t_model.productionType == TFProductionTypeNovel) { |
|
connerLabel.backgroundColor = kMainColor; |
|
connerLabel.text = TFLocalizedString(@"小说"); |
|
[connerLabel mas_updateConstraints:^(MASConstraintMaker *make) { |
|
make.width.mas_equalTo([TFViewHelper getDynamicWidthWithLabel:connerLabel]); |
|
}]; |
|
} |
|
|
|
if (t_model.productionType == TFProductionTypeComic) { |
|
connerLabel.backgroundColor = kRedColor; |
|
connerLabel.text = TFLocalizedString(@"漫画"); |
|
[connerLabel mas_updateConstraints:^(MASConstraintMaker *make) { |
|
make.width.mas_equalTo([TFViewHelper getDynamicWidthWithLabel:connerLabel]); |
|
}]; |
|
} |
|
|
|
if (t_model.productionType == TFProductionTypeAudio) { |
|
connerLabel.backgroundColor = [UIColor colorWithHexString:@"#56a0ef"]; |
|
connerLabel.text = TFLocalizedString(@"听书"); |
|
[connerLabel mas_updateConstraints:^(MASConstraintMaker *make) { |
|
make.width.mas_equalTo([TFViewHelper getDynamicWidthWithLabel:connerLabel]); |
|
}]; |
|
} |
|
} |
|
} |
|
|
|
- (void)addBooks |
|
{ |
|
for (TFProductionModel *t_model in self.bookList) { |
|
switch (t_model.productionType) { |
|
case TFProductionTypeNovel: |
|
[[TFCollectionManager shareManagerWithProductionType:TFProductionTypeNovel] addCollectionWithProductionModel:t_model atIndex:0]; |
|
break; |
|
|
|
case TFProductionTypeComic: |
|
[[TFCollectionManager shareManagerWithProductionType:TFProductionTypeComic] addCollectionWithProductionModel:t_model]; |
|
break; |
|
|
|
case TFProductionTypeAudio: |
|
[[TFCollectionManager shareManagerWithProductionType:TFProductionTypeAudio] addCollectionWithProductionModel:t_model]; |
|
break; |
|
|
|
default: |
|
break; |
|
} |
|
} |
|
|
|
if (self.bookList) { |
|
[[NSNotificationCenter defaultCenter] postNotificationName:Notification_Reload_Rack_Production object:nil]; |
|
} |
|
} |
|
|
|
@end
|
|
|