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.
96 lines
3.9 KiB
96 lines
3.9 KiB
4 years ago
|
//
|
||
|
// TFComicDetailIntroductionCell.m
|
||
|
// TFReader
|
||
|
//
|
||
|
// Created by 谢腾飞 on 2020/12/19.
|
||
|
// Copyright © 2020 xtfei_2011@126.com. All rights reserved.
|
||
|
//
|
||
|
|
||
|
#import "TFComicDetailIntroductionCell.h"
|
||
|
|
||
|
@interface TFComicDetailIntroductionCell ()
|
||
|
{
|
||
|
UILabel *introductionLabel;
|
||
|
UILabel *introductionContent;
|
||
|
}
|
||
|
@end
|
||
|
|
||
|
@implementation TFComicDetailIntroductionCell
|
||
|
|
||
|
- (void)createSubviews
|
||
|
{
|
||
|
[super createSubviews];
|
||
|
|
||
|
introductionLabel = [[UILabel alloc] init];
|
||
|
introductionLabel.text = TFLocalizedString(@"作品简介");
|
||
|
introductionLabel.textColor = kGrayTextDeepColor;
|
||
|
introductionLabel.textAlignment = NSTextAlignmentLeft;
|
||
|
introductionLabel.font = kMainFont;
|
||
|
[self.contentView addSubview:introductionLabel];
|
||
|
[introductionLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
|
make.left.mas_equalTo(self.contentView.mas_left).with.offset(kMargin);
|
||
|
make.top.mas_equalTo(self.contentView.mas_top).with.offset(kMargin);
|
||
|
make.right.mas_equalTo(self.contentView.mas_right).with.offset(- kMargin);
|
||
|
make.height.mas_equalTo(0.0);
|
||
|
}];
|
||
|
|
||
|
introductionContent = [[UILabel alloc] init];
|
||
|
introductionContent.textColor = kGrayTextColor;
|
||
|
introductionContent.textAlignment = NSTextAlignmentLeft;
|
||
|
introductionContent.font = kFont12;
|
||
|
introductionContent.numberOfLines = 0;
|
||
|
[self.contentView addSubview:introductionContent];
|
||
|
[introductionContent mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
|
make.left.mas_equalTo(introductionLabel.mas_left);
|
||
|
make.top.mas_equalTo(self.contentView.mas_top).offset(kHalfMargin);
|
||
|
make.right.mas_equalTo(introductionLabel.mas_right);
|
||
|
}];
|
||
|
|
||
|
UIView *splitLine = [[UIView alloc] init];
|
||
|
splitLine.backgroundColor = [UIColor clearColor];
|
||
|
[self.contentView addSubview:splitLine];
|
||
|
[splitLine mas_makeConstraints:^(MASConstraintMaker *make) {
|
||
|
make.height.mas_equalTo(0.1);
|
||
|
make.right.bottom.left.equalTo(self.contentView);
|
||
|
make.top.equalTo(introductionContent.mas_bottom).offset(kHalfMargin).priorityLow();
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
- (void)setComicModel:(TFProductionModel *)comicModel
|
||
|
{
|
||
|
if (_comicModel != comicModel) {
|
||
|
_comicModel = comicModel;
|
||
|
|
||
|
if (comicModel.production_descirption.length > 0) {
|
||
|
|
||
|
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:comicModel.production_descirption?:@""];
|
||
|
attributedString.lineSpacing = 6;
|
||
|
attributedString.font = kFont12;
|
||
|
attributedString.color = kGrayTextColor;
|
||
|
|
||
|
YYTextLayout *layout = [YYTextLayout layoutWithContainerSize:CGSizeMake(SCREEN_WIDTH - 2 * kMargin, MAXFLOAT) text:attributedString];
|
||
|
|
||
|
if (layout.rowCount < 5) {
|
||
|
introductionContent.attributedText = attributedString;
|
||
|
} else {
|
||
|
// 截取前5行的内容
|
||
|
YYTextLine *lastLine = layout.lines[4];
|
||
|
NSMutableAttributedString *t_atr = [[attributedString attributedSubstringFromRange:NSMakeRange(0, lastLine.range.location + lastLine.range.length)] mutableCopy];
|
||
|
// 截取第5行一半的内容
|
||
|
CGFloat maxWidth = (SCREEN_WIDTH - 2 * kMargin) / 2.0;
|
||
|
if (lastLine.lineWidth > maxWidth) {
|
||
|
// 获取多出来的距离
|
||
|
CGFloat spacing = lastLine.lineWidth - maxWidth;
|
||
|
// 获取多余的文字个数(多余的间距 / 单个字的宽度)
|
||
|
NSInteger number = spacing / (lastLine.lineWidth / lastLine.range.length);
|
||
|
t_atr = [[t_atr attributedSubstringFromRange:NSMakeRange(0, t_atr.length - number - 1)] mutableCopy];
|
||
|
[t_atr appendString:@" ..."];
|
||
|
}
|
||
|
introductionContent.attributedText = t_atr;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@end
|