103 lines
4.3 KiB
Swift
103 lines
4.3 KiB
Swift
//
|
||
// RDReaderContentView.swift
|
||
// RDReaderDemo
|
||
//
|
||
// Created by yangsq on 2021/8/11.
|
||
//
|
||
|
||
import UIKit
|
||
import SnapKit
|
||
|
||
class RDReaderContentView: UIView {
|
||
lazy var textLabel: UILabel = {
|
||
let label = UILabel()
|
||
label.numberOfLines = 0
|
||
return label
|
||
}()
|
||
lazy var pageNumLabel: UILabel = {
|
||
let label = UILabel()
|
||
label.font = UIFont.systemFont(ofSize: 13)
|
||
return label
|
||
}()
|
||
override init(frame: CGRect) {
|
||
super.init(frame: frame)
|
||
addSubview(textLabel)
|
||
addSubview(pageNumLabel)
|
||
|
||
textLabel.text = """
|
||
孩子为了不进职校,压力之大,我甚至听说,有初三学生晚上八点睡觉,凌晨两点起床读书做作业,忙到天亮,吃好早饭赶往学校。
|
||
|
||
平心静气地讲,一个孩子如果不是读书的料,完全可以去职校学一门手艺。但家长却有三重焦虑:
|
||
|
||
第一,一个普通高校的学生可以轻松去读职校的课程,但职校学生要去读普通高校的课程,难上加难。同一年级的各类学校和专业,在学习上是有难易梯度的。家长多不会同意让孩子一开始就选择容易的学校和专业,否则在未来竞争中,将处于不利地位。
|
||
|
||
第二,初中毕业生社会经验匮乏,实际上根本没有能力做人生规划。选择职校学一门技术,同时也就意味着,将来从事其他工作的门槛是很高的。如果没有继续学习的能力,改行的成本之高,难以想象。
|
||
|
||
以我的个人经验来讲,初中阶段,一度想去学习屠宰的手艺,毕业时也有上建筑类职高的机会,但都没去,在普通高中混到高三才决定考大学,如果去上职高,很可能就是个小包工头。我不知道这是不是我的真实意愿,但我觉得当下的工作更符合秉性。
|
||
|
||
第三,中国的一些职校,风评并不十分好,家长并不十分放心把十五六岁的孩子送入这些学校,他们不担心孩子学艺不成,而是担心孩子“学坏了”。
|
||
|
||
并且,随着科技加速进步,很多好端端的传统职业,忽然消失了。以汽修为例,现在的汽修专业毕业生,谁能保证他的精湛技术在10年之后不会归零?一些新职业出现没几年又消失了,谁能保证中高职教育能够跟上科技潮流?
|
||
"""
|
||
textLabel.snp.makeConstraints { make in
|
||
make.edges.equalTo(UIEdgeInsets(top: 40, left: 16, bottom: 40, right: 16))
|
||
}
|
||
pageNumLabel.snp.makeConstraints { make in
|
||
make.bottom.equalTo(-20)
|
||
make.right.equalTo(-30)
|
||
}
|
||
}
|
||
override func layoutSubviews() {
|
||
super.layoutSubviews()
|
||
|
||
}
|
||
|
||
required init?(coder: NSCoder) {
|
||
fatalError("init(coder:) has not been implemented")
|
||
}
|
||
|
||
}
|
||
|
||
final class RDReaderEPUBTextContentView: UIView {
|
||
private(set) lazy var textLabel: UILabel = {
|
||
let label = UILabel()
|
||
label.numberOfLines = 0
|
||
return label
|
||
}()
|
||
|
||
private(set) lazy var pageNumLabel: UILabel = {
|
||
let label = UILabel()
|
||
label.font = UIFont.systemFont(ofSize: 13)
|
||
return label
|
||
}()
|
||
|
||
override init(frame: CGRect) {
|
||
super.init(frame: frame)
|
||
addSubview(textLabel)
|
||
addSubview(pageNumLabel)
|
||
|
||
textLabel.snp.makeConstraints { make in
|
||
make.edges.equalTo(UIEdgeInsets(top: 40, left: 16, bottom: 40, right: 16))
|
||
}
|
||
pageNumLabel.snp.makeConstraints { make in
|
||
make.bottom.equalTo(-20)
|
||
make.right.equalTo(-30)
|
||
}
|
||
}
|
||
|
||
required init?(coder: NSCoder) {
|
||
fatalError("init(coder:) has not been implemented")
|
||
}
|
||
|
||
func configure(page: LegacyRDEPUBTextPage, pageNumber: Int, totalPages: Int, theme: RDReaderTheme) {
|
||
backgroundColor = theme.contentBackgroudColor
|
||
pageNumLabel.textColor = theme.contentTextColor
|
||
pageNumLabel.text = "\(pageNumber) / \(totalPages)"
|
||
|
||
let displayContent = NSMutableAttributedString(attributedString: page.content)
|
||
let fullRange = NSRange(location: 0, length: displayContent.length)
|
||
displayContent.addAttribute(.foregroundColor, value: theme.contentTextColor ?? UIColor.black, range: fullRange)
|
||
textLabel.attributedText = displayContent
|
||
}
|
||
}
|