|
@@ -24,77 +24,158 @@ class TSNormalCancelBtn: TSAppBtn {
|
|
|
|
|
|
}
|
|
|
|
|
|
-//常用提交按钮
|
|
|
-func kCreateNormalSubmitBtn(title:String, action: (() -> Void)? = nil) -> UIButton {
|
|
|
-
|
|
|
- let btn = TSNormalSubmitBtn()
|
|
|
- btn.setUpButton(title:title,font: UIFont.font(size: 16,weight: .regular),titleColor:.white,corner: 24,action: action)
|
|
|
- btn.contentEdgeInsets = UIEdgeInsets(top: 0, left: 8, bottom: 0, right: 0)
|
|
|
- btn.imageEdgeInsets = UIEdgeInsets(top:0, left: -8, bottom: 0, right: 16)
|
|
|
- btn.frame = CGRectMake(0, 0, 200, 48)
|
|
|
- btn.addGradientBg(colors: ["#E961F6".uiColor.cgColor,"#7E57F4".uiColor.cgColor])
|
|
|
- return btn
|
|
|
-}
|
|
|
+////常用取消按钮
|
|
|
+//func kCreateNormalCancelBtn(title:String, action: (() -> Void)? = nil) -> UIButton {
|
|
|
+// let btn = UIButton.createButton(title:title,backgroundColor: .fromHex("#FFFFFF", alpha: 0.4),font: UIFont.font(size: 14,weight: .medium),titleColor:.white,corner: 30,action: action)
|
|
|
+// return btn
|
|
|
+//}
|
|
|
+////常用确定按钮
|
|
|
+//func kCreateNormalConfirmBtn(title:String, action: (() -> Void)? = nil) -> UIButton {
|
|
|
+// let btn = UIButton.createButton(title:title,backgroundImage:UIImage(named: "submit_btn_small_bg"),font: UIFont.font(size: 14,weight: .medium),titleColor:.white,corner: 30,action: action)
|
|
|
+// return btn
|
|
|
+//}
|
|
|
|
|
|
|
|
|
class TSAppBtnView: TSBaseView {
|
|
|
enum ViewStyle {
|
|
|
- case created //创造类的按钮
|
|
|
+ case normal
|
|
|
+ case generate //创造类的按钮
|
|
|
+ case themeSet //主题页设置按钮
|
|
|
+
|
|
|
}
|
|
|
|
|
|
var viewH:CGFloat = 64
|
|
|
- var style:ViewStyle
|
|
|
- var clickBlock:()->Void
|
|
|
-
|
|
|
- init(style:ViewStyle,clickBlock: @escaping () -> Void) {
|
|
|
- self.style = style
|
|
|
- self.clickBlock = clickBlock
|
|
|
- super.init(frame: .zero)
|
|
|
+ var style:ViewStyle = .normal
|
|
|
+ var vipFreeNumType:VipFreeNumType = .none{
|
|
|
+ didSet{
|
|
|
+ updateVipView()
|
|
|
+ }
|
|
|
}
|
|
|
+ var clickBlock:(()->Void)?
|
|
|
|
|
|
- @MainActor required init?(coder: NSCoder) {
|
|
|
- fatalError("init(coder:) has not been implemented")
|
|
|
+ //###################################### Button ######################################
|
|
|
+ var button:UIButton = UIButton()
|
|
|
+
|
|
|
+ override func creatUI() {
|
|
|
+
|
|
|
}
|
|
|
|
|
|
+ override func dealThings(){
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ func setUpButton(style:ViewStyle,vipFreeNumType:VipFreeNumType,clickBlock: @escaping () -> Void) {
|
|
|
+
|
|
|
+ self.style = style
|
|
|
+ self.vipFreeNumType = vipFreeNumType
|
|
|
+ self.clickBlock = clickBlock
|
|
|
+
|
|
|
+ contentView.removeAllSubviews()
|
|
|
+
|
|
|
+ switch style {
|
|
|
+ case .generate:
|
|
|
+ setUpGenerate()
|
|
|
+ launchVipLogic()
|
|
|
+ case .themeSet:
|
|
|
+ setUpThemeSet()
|
|
|
+ default:
|
|
|
+ break
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+extension TSAppBtnView{
|
|
|
|
|
|
- //###################################### Button ######################################
|
|
|
- lazy var creatBtn:UIButton = {
|
|
|
+ func launchVipLogic(){
|
|
|
+ //监听 Vip 变化
|
|
|
+ NotificationCenter.default.addObserver(forName: .kPurchaseDidChanged, object: nil, queue: OperationQueue.main) { [weak self] notification in
|
|
|
+ guard let self = self else { return }
|
|
|
+ updateVipView()
|
|
|
+ }
|
|
|
|
|
|
- let btn = UIButton.createButton(title:"Create Now",font: UIFont.font(size: 16,weight: .regular),titleColor:.white,corner: 24)
|
|
|
- {[weak self] in
|
|
|
+ NotificationCenter.default.addObserver(forName: .kVipFreeNumChanged, object: nil, queue: OperationQueue.main) { [weak self] notification in
|
|
|
guard let self = self else { return }
|
|
|
- clickBlock()
|
|
|
+ if let userInfo = notification.userInfo as? [String: VipFreeNumType], let myEnum = userInfo["VipFreeNumType"] {
|
|
|
+ if myEnum == self.vipFreeNumType {
|
|
|
+ self.updateVipView()
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- btn.frame = CGRectMake(0, 0, k_ScreenWidth - 32, 48)
|
|
|
- btn.contentEdgeInsets = UIEdgeInsets(top: 0, left: 8, bottom: 0, right: 0)
|
|
|
- btn.imageEdgeInsets = UIEdgeInsets(top: 0, left: -8, bottom: 0, right: 0)
|
|
|
- btn.addGradientBg(colors: ["#E961F6".uiColor.cgColor,"#7E57F4".uiColor.cgColor])
|
|
|
- return btn
|
|
|
- }()
|
|
|
+
|
|
|
+ updateVipView()
|
|
|
+ }
|
|
|
|
|
|
-
|
|
|
- override func creatUI() {
|
|
|
- contentView.addSubview(creatBtn)
|
|
|
- creatBtn.snp.makeConstraints { make in
|
|
|
- make.center.equalToSuperview()
|
|
|
- make.leading.equalTo(16)
|
|
|
- make.trailing.equalTo(-16)
|
|
|
- make.height.equalTo(creatBtn.height)
|
|
|
+ func updateVipView() {
|
|
|
+ switch style {
|
|
|
+ case .generate:
|
|
|
+ setVip(vip: kPurchaseToolShared.generateVipShow(type: self.vipFreeNumType))
|
|
|
+ default:
|
|
|
+ break
|
|
|
}
|
|
|
- setVip(vip:true)
|
|
|
}
|
|
|
|
|
|
func setBtnEnabled(isEnabled:Bool) {
|
|
|
- creatBtn.isEnabled = isEnabled
|
|
|
- creatBtn.alpha = isEnabled ? 1.0 : 0.6
|
|
|
+ button.isEnabled = isEnabled
|
|
|
+ button.alpha = isEnabled ? 1.0 : 0.6
|
|
|
}
|
|
|
|
|
|
func setVip(vip:Bool) {
|
|
|
if vip {
|
|
|
- creatBtn.setImage(UIImage(named: "vip_icon_white"), for: .normal)
|
|
|
+ button.setImage(UIImage(named: "vip_icon_white"), for: .normal)
|
|
|
}else{
|
|
|
- creatBtn.setImage(nil, for: .normal)
|
|
|
+ button.setImage(nil, for: .normal)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+//创造按钮
|
|
|
+extension TSAppBtnView{
|
|
|
+ //常用提交按钮
|
|
|
+ func kCreateNormalSubmitBtn(title:String, action: (() -> Void)? = nil) -> UIButton {
|
|
|
+ let btn = TSNormalSubmitBtn()
|
|
|
+ btn.setUpButton(title:title,font: UIFont.font(size: 16,weight: .regular),titleColor:.white,corner: 24,action: action)
|
|
|
+
|
|
|
+ btn.setTitleImageSpace(spacing: 4)
|
|
|
+ return btn
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ func setUpGenerate() {
|
|
|
+ button = kCreateNormalSubmitBtn(title: "Create Now", action: { [weak self] in
|
|
|
+ guard let self = self else { return }
|
|
|
+ if let vc = WindowHelper.getCurrentViewController() {
|
|
|
+ if kPurchaseToolShared.kJudgeVipFreeType(vipFreeNumType: vipFreeNumType, vc: vc){ return }
|
|
|
+ }
|
|
|
+
|
|
|
+ clickBlock?()
|
|
|
+ })
|
|
|
+ button.frame = CGRectMake(0, 0, k_ScreenWidth - 32, 48)
|
|
|
+ button.addGradientBg(colors: ["#E961F6".uiColor.cgColor,"#7E57F4".uiColor.cgColor])
|
|
|
+ contentView.addSubview(button)
|
|
|
+ button.snp.makeConstraints { make in
|
|
|
+ make.center.equalToSuperview()
|
|
|
+ make.width.equalTo(button.width)
|
|
|
+ make.height.equalTo(button.height)
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ viewH = 64
|
|
|
+ }
|
|
|
+
|
|
|
+ func setUpThemeSet() {
|
|
|
+ button = kCreateNormalSubmitBtn(title: "Set Now", action: { [weak self] in
|
|
|
+ guard let self = self else { return }
|
|
|
+ clickBlock?()
|
|
|
+ })
|
|
|
+ button.frame = CGRectMake(0, 0, 200, 48)
|
|
|
+ button.addGradientBg(colors: ["#E961F6".uiColor.cgColor,"#7E57F4".uiColor.cgColor])
|
|
|
+ contentView.addSubview(button)
|
|
|
+ button.snp.makeConstraints { make in
|
|
|
+ make.center.equalToSuperview()
|
|
|
+ make.width.equalTo(button.width)
|
|
|
+ make.height.equalTo(button.height)
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|