|
@@ -1,18 +1,218 @@
|
|
|
+
|
|
|
+// MARK: - 设置页退出登录跟注销账号提示视图
|
|
|
+
|
|
|
+/// 设置页退出登录跟注销账号提示视图
|
|
|
+public class PQRemindView: UIView {
|
|
|
+ public var isBanned: Bool = false // 是否是拉黑用户提示
|
|
|
+ public var isBlank: Bool = false { // 是否是黑色弹窗
|
|
|
+ didSet {
|
|
|
+ if isBlank {
|
|
|
+ contentView.backgroundColor = UIColor.hexColor(hexadecimal: "#212223")
|
|
|
+ titleLab.textColor = UIColor.white
|
|
|
+ contentLab.textColor = UIColor.white
|
|
|
+ cancelBtn.setTitleColor(UIColor.white, for: .normal)
|
|
|
+ confirmBtn.setTitleColor(UIColor.white, for: .normal)
|
|
|
+ } else {
|
|
|
+ contentView.backgroundColor = UIColor.white
|
|
|
+ contentLab.textColor = UIColor.hexColor(hexadecimal: "#666666")
|
|
|
+ titleLab.textColor = UIColor.black
|
|
|
+ cancelBtn.setTitleColor(UIColor.black, for: .normal)
|
|
|
+ confirmBtn.setTitleColor(UIColor.black, for: .normal)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public var remindBlock: ((_ sender: UIButton, _ remindData: PQBaseModel?) -> Void)?
|
|
|
+
|
|
|
+ lazy var contentView: UIView = {
|
|
|
+ let contentView = UIView()
|
|
|
+ contentView.backgroundColor = UIColor.white
|
|
|
+ contentView.addCorner(corner: 4)
|
|
|
+ return contentView
|
|
|
+ }()
|
|
|
+
|
|
|
+ lazy var titleLab: UILabel = {
|
|
|
+ let titleLab = UILabel()
|
|
|
+ titleLab.font = UIFont.systemFont(ofSize: 18, weight: .medium)
|
|
|
+ titleLab.textAlignment = .center
|
|
|
+ titleLab.numberOfLines = 0
|
|
|
+ titleLab.textColor = UIColor.black
|
|
|
+ return titleLab
|
|
|
+ }()
|
|
|
+
|
|
|
+ lazy var contentLab: UILabel = {
|
|
|
+ // let contentLab = TYAttributedLabel.init()
|
|
|
+ // contentLab.textAlignment = CTTextAlignment.center
|
|
|
+ // contentLab.verticalAlignment = .center
|
|
|
+ // contentLab.highlightedLinkBackgroundColor = UIColor.white
|
|
|
+ // contentLab.numberOfLines = 0
|
|
|
+ // contentLab.font = UIFont.systemFont(ofSize: 14)
|
|
|
+ // contentLab.textColor = UIColor.hexColor(hexadecimal: "#666666")
|
|
|
+ let contentLab = UILabel()
|
|
|
+ contentLab.font = UIFont.systemFont(ofSize: 16)
|
|
|
+ contentLab.textAlignment = .center
|
|
|
+ contentLab.numberOfLines = 0
|
|
|
+ contentLab.textColor = UIColor.hexColor(hexadecimal: "#666666")
|
|
|
+ return contentLab
|
|
|
+ }()
|
|
|
+
|
|
|
+ lazy var cancelBtn: UIButton = {
|
|
|
+ let cancelBtn = UIButton(type: .custom)
|
|
|
+ cancelBtn.setTitle("取消", for: .normal)
|
|
|
+ cancelBtn.setTitleColor(UIColor.black, for: .normal)
|
|
|
+ cancelBtn.tag = 1
|
|
|
+ cancelBtn.addTarget(self, action: #selector(btnClck(sender:)), for: .touchUpInside)
|
|
|
+ cancelBtn.titleLabel?.font = UIFont.systemFont(ofSize: 16, weight: .medium)
|
|
|
+ return cancelBtn
|
|
|
+ }()
|
|
|
+
|
|
|
+ lazy var confirmBtn: UIButton = {
|
|
|
+ let confirmBtn = UIButton(type: .custom)
|
|
|
+ confirmBtn.setTitle("确定", for: .normal)
|
|
|
+ confirmBtn.setTitleColor(UIColor.black, for: .normal)
|
|
|
+ confirmBtn.tag = 2
|
|
|
+ confirmBtn.addTarget(self, action: #selector(btnClck(sender:)), for: .touchUpInside)
|
|
|
+ confirmBtn.titleLabel?.font = UIFont.systemFont(ofSize: 16, weight: .medium)
|
|
|
+ return confirmBtn
|
|
|
+ }()
|
|
|
+
|
|
|
+ lazy var verticalLine: UIView = {
|
|
|
+ let verticalLine = UIView()
|
|
|
+ verticalLine.backgroundColor = UIColor.hexColor(hexadecimal: "#E5E5E5")
|
|
|
+ return verticalLine
|
|
|
+ }()
|
|
|
+
|
|
|
+ lazy var horizonLine: UIView = {
|
|
|
+ let horizonLine = UIView()
|
|
|
+ horizonLine.backgroundColor = UIColor.hexColor(hexadecimal: "#E5E5E5")
|
|
|
+ return horizonLine
|
|
|
+ }()
|
|
|
+
|
|
|
+ override public init(frame: CGRect) {
|
|
|
+ super.init(frame: frame)
|
|
|
+ addSubview(contentView)
|
|
|
+ contentView.addSubview(titleLab)
|
|
|
+ contentView.addSubview(contentLab)
|
|
|
+ contentView.addSubview(cancelBtn)
|
|
|
+ contentView.addSubview(confirmBtn)
|
|
|
+ contentView.addSubview(verticalLine)
|
|
|
+ contentView.addSubview(horizonLine)
|
|
|
+ backgroundColor = cShadowColor
|
|
|
+ }
|
|
|
+
|
|
|
+ required init?(coder _: NSCoder) {
|
|
|
+ fatalError("init(coder:) has not been implemented")
|
|
|
+ }
|
|
|
+
|
|
|
+ public var remindData: PQBaseModel? {
|
|
|
+ didSet {
|
|
|
+ addData()
|
|
|
+ addLayout()
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public func addData() {
|
|
|
+ titleLab.text = remindData?.title
|
|
|
+ contentLab.text = remindData?.summary
|
|
|
+ cancelBtn.setTitleColor(isBanned ? (isBlank ? UIColor.white : UIColor.black) : (isBlank ? UIColor.white : UIColor.hexColor(hexadecimal: "#666666")), for: .normal)
|
|
|
+ if isBanned {
|
|
|
+ titleLab.textAlignment = .center
|
|
|
+ } else {
|
|
|
+ titleLab.textAlignment = .left
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ func addLayout() {
|
|
|
+ var summH: CGFloat = 0
|
|
|
+ var titleH: CGFloat = 0
|
|
|
+ if (remindData?.summary?.count ?? 0) > 0 {
|
|
|
+ summH = sizeWithText(text: remindData?.summary ?? "", font: UIFont.systemFont(ofSize: 16, weight: .medium), size: CGSize(width: cScreenWidth - cDefaultMargin * 12, height: CGFloat.greatestFiniteMagnitude)).height + cDefaultMargin
|
|
|
+ }
|
|
|
+ if (remindData?.title?.count ?? 0) > 0 {
|
|
|
+ titleH = sizeWithText(text: remindData?.title ?? "", font: UIFont.systemFont(ofSize: 18, weight: .medium), size: CGSize(width: cScreenWidth - cDefaultMargin * 12, height: CGFloat.greatestFiniteMagnitude)).height + cDefaultMargin
|
|
|
+ if titleH < cDefaultMargin * 2 {
|
|
|
+ titleH = cDefaultMargin * 2
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let contentH: CGFloat = cDefaultMargin * 2 + (titleH > 0 ? titleH + cDefaultMargin : 0) + (summH > 0 ? summH + cDefaultMargin : 0) + cDefaultMargin * 3 + (isBanned ? cDefaultMargin * 2 : 0)
|
|
|
+ contentView.snp.makeConstraints { make in
|
|
|
+ make.left.equalTo(self).offset(cDefaultMargin * 4)
|
|
|
+ make.right.equalTo(self).offset(-cDefaultMargin * 4)
|
|
|
+ make.height.equalTo(contentH)
|
|
|
+ make.center.equalTo(self)
|
|
|
+ }
|
|
|
+ titleLab.snp.makeConstraints { make in
|
|
|
+ make.left.equalTo(contentView).offset(cDefaultMargin * 2)
|
|
|
+ make.right.equalTo(contentView).offset(-cDefaultMargin * 2)
|
|
|
+ make.height.equalTo(titleH)
|
|
|
+ make.top.equalTo(contentView).offset(cDefaultMargin * 2)
|
|
|
+ }
|
|
|
+ contentLab.snp.makeConstraints { make in
|
|
|
+ make.top.equalTo(titleLab.snp_bottom).offset(summH > 0 ? cDefaultMargin : 0)
|
|
|
+ make.left.right.equalTo(titleLab)
|
|
|
+ make.height.equalTo(summH)
|
|
|
+ }
|
|
|
+ if isBanned {
|
|
|
+ let btnW: CGFloat = (cScreenWidth - 1 - cDefaultMargin * 8) / 2
|
|
|
+ verticalLine.snp.makeConstraints { make in
|
|
|
+ make.top.equalTo(contentLab.snp_bottom).offset(cDefaultMargin)
|
|
|
+ make.height.equalTo(1)
|
|
|
+ make.left.width.equalToSuperview()
|
|
|
+ }
|
|
|
+ cancelBtn.snp.makeConstraints { make in
|
|
|
+ make.left.equalToSuperview()
|
|
|
+ make.top.equalTo(verticalLine.snp_bottom)
|
|
|
+ make.width.equalTo(btnW)
|
|
|
+ make.bottom.equalTo(contentView)
|
|
|
+ }
|
|
|
+ horizonLine.snp.makeConstraints { make in
|
|
|
+ make.left.equalTo(cancelBtn.snp_right)
|
|
|
+ make.height.top.equalTo(cancelBtn)
|
|
|
+ make.width.equalTo(1)
|
|
|
+ }
|
|
|
+ confirmBtn.snp.makeConstraints { make in
|
|
|
+ make.right.equalToSuperview()
|
|
|
+ make.height.width.bottom.equalTo(cancelBtn)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ confirmBtn.snp.makeConstraints { make in
|
|
|
+ make.right.equalTo(titleLab)
|
|
|
+ make.height.equalTo(cDefaultMargin * 4)
|
|
|
+ make.width.equalTo(cDefaultMargin * 6)
|
|
|
+ make.bottom.equalTo(contentView).offset(-cDefaultMargin)
|
|
|
+ }
|
|
|
+ cancelBtn.snp.makeConstraints { make in
|
|
|
+ make.right.equalTo(confirmBtn.snp_left).offset(-cDefaultMargin)
|
|
|
+ make.height.equalTo(cDefaultMargin * 4)
|
|
|
+ make.width.equalTo(cDefaultMargin * 6)
|
|
|
+ make.bottom.equalTo(confirmBtn)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @objc func btnClck(sender: UIButton) {
|
|
|
+ removeFromSuperview()
|
|
|
+ if remindBlock != nil {
|
|
|
+ remindBlock!(sender, remindData!)
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// MARK: 空白提示页
|
|
|
|
|
|
/// 空白提示页
|
|
|
-class PQEmptyRemindView: UIView {
|
|
|
+public class PQEmptyRemindView: UIView {
|
|
|
// 回调
|
|
|
- var fullRefreshBloc: ((_ isNetConnected: Bool, _ emptyData: PQEmptyModel?) -> Void)?
|
|
|
+ public var fullRefreshBloc: ((_ isNetConnected: Bool, _ emptyData: PQEmptyModel?) -> Void)?
|
|
|
|
|
|
- lazy var imageView: UIImageView = {
|
|
|
+ lazy public var imageView: UIImageView = {
|
|
|
let imageView = UIImageView()
|
|
|
imageView.backgroundColor = UIColor.clear
|
|
|
imageView.contentMode = .scaleAspectFit
|
|
|
return imageView
|
|
|
}()
|
|
|
|
|
|
- lazy var remindLab: UILabel = {
|
|
|
+ lazy public var remindLab: UILabel = {
|
|
|
let remindLab = UILabel()
|
|
|
remindLab.font = UIFont.systemFont(ofSize: 16)
|
|
|
remindLab.numberOfLines = 1
|
|
@@ -21,7 +221,7 @@ class PQEmptyRemindView: UIView {
|
|
|
return remindLab
|
|
|
}()
|
|
|
|
|
|
- lazy var shimmeringView: FBShimmeringView = {
|
|
|
+ lazy public var shimmeringView: FBShimmeringView = {
|
|
|
let shimmeringView = FBShimmeringView()
|
|
|
shimmeringView.isShimmering = false
|
|
|
shimmeringView.shimmeringBeginFadeDuration = 0.3
|
|
@@ -32,7 +232,7 @@ class PQEmptyRemindView: UIView {
|
|
|
return shimmeringView
|
|
|
}()
|
|
|
|
|
|
- lazy var remindSubLab: UILabel = {
|
|
|
+ lazy public var remindSubLab: UILabel = {
|
|
|
let remindSubLab = UILabel()
|
|
|
remindSubLab.font = UIFont.systemFont(ofSize: 14)
|
|
|
remindSubLab.numberOfLines = 1
|
|
@@ -65,11 +265,11 @@ class PQEmptyRemindView: UIView {
|
|
|
backgroundColor = UIColor.black
|
|
|
}
|
|
|
|
|
|
- required init?(coder _: NSCoder) {
|
|
|
+ required public init?(coder _: NSCoder) {
|
|
|
fatalError("init(coder:) has not been implemented")
|
|
|
}
|
|
|
|
|
|
- @objc var emptyData: PQEmptyModel? {
|
|
|
+ @objc public var emptyData: PQEmptyModel? {
|
|
|
didSet {
|
|
|
addData()
|
|
|
addLayout()
|
|
@@ -78,7 +278,7 @@ class PQEmptyRemindView: UIView {
|
|
|
}
|
|
|
|
|
|
extension PQEmptyRemindView {
|
|
|
- func addData() {
|
|
|
+ public func addData() {
|
|
|
if !isNetConnected() {
|
|
|
remindLab.text = "网络连接失败,请检查网络后重试"
|
|
|
remindSubLab.isHidden = true
|
|
@@ -108,14 +308,14 @@ extension PQEmptyRemindView {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- override var isHidden: Bool {
|
|
|
+ override public var isHidden: Bool {
|
|
|
didSet {
|
|
|
addData()
|
|
|
addLayout()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- func addLayout() {
|
|
|
+ public func addLayout() {
|
|
|
var imageH: CGFloat = cDefaultMargin * 7
|
|
|
var contentH: CGFloat = 0
|
|
|
|