123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- //
- // ASBtnView.swift
- // AIPlayRingtones
- //
- // Created by 100Years on 2025/5/15.
- //
- class ASAppBtnView: ASBaseView {
- enum ViewStyle {
- case generate //创造类的按钮
- }
-
- var viewH:CGFloat = 64
- var style:ViewStyle = .generate
- // var vipFreeNumType:VipFreeNumType = .none{
- // didSet{
- // updateVipView()
- // }
- // }
- var clickBlock:(()->Void)?
- var btnSize:CGSize = .zero
- var isIconVipBlock:(()->Bool)? //vip 图片显示
- var isClickVipBlock:(()->Bool)? //点击是,是否需要弹出 vip
-
- var loading:Bool = false{
- didSet{
- loadingAnimation(loading: loading)
-
- if loading == false {
- self.resetBtnText()
- }
- }
- }
-
- //###################################### Button ######################################
- var button:UIButton = UIButton()
- var title:String = ""
- override func creatUI() {
- }
-
- override func dealThings(){
-
- }
- func setUpButton(style:ViewStyle,btnSize:CGSize = .zero,clickBlock: @escaping () -> Void) {
- self.btnSize = btnSize
- self.style = style
- // self.vipFreeNumType = vipFreeNumType
- self.clickBlock = clickBlock
-
- contentView.removeAllSubViews()
-
- switch style {
- case .generate:
- title = "Generate Now".localized
- setUpGenerate()
- launchVipLogic()
- }
-
- }
-
-
- func setLoadingText(text:String?){
- if loading {
- button.setTitle(text, for: .normal)
- }else{
- resetBtnText()
- }
- }
-
- func resetBtnText(){
- button.setTitle(title, for:.normal)
- }
- }
- extension ASAppBtnView{
-
- func launchVipLogic(){
- // //监听 Vip 变化
- // NotificationCenter.default.addObserver(forName: .kPurchaseDidChanged, object: nil, queue: OperationQueue.main) { [weak self] notification in
- // guard let self = self else { return }
- // updateVipView()
- // }
- //
- // NotificationCenter.default.addObserver(forName: .kVipFreeNumChanged, object: nil, queue: OperationQueue.main) { [weak self] notification in
- // guard let self = self else { return }
- // if let userInfo = notification.userInfo as? [String: VipFreeNumType], let myEnum = userInfo["VipFreeNumType"] {
- // if myEnum == self.vipFreeNumType {
- // self.updateVipView()
- // }
- // }
- // }
-
- updateVipView()
- }
- func updateVipView() {
- switch style {
- case .generate:
- setVip(vip: isIconVipBlock?() ?? false)
- }
- }
-
- func setBtnEnabled(isEnabled:Bool) {
- button.isEnabled = isEnabled
- button.setTitleColor(.white.withAlphaComponent(isEnabled ? 1.0 : 0.4), for: .normal)
- }
-
- var isEnabled:Bool{
- return button.isEnabled
- }
-
- func setVip(vip:Bool) {
-
- if loading { //loading,正在显示转圈动画
- return
- }
-
- if vip {
- button.setImage(UIImage(named: "btnImage_vip"), for: .normal)
- }else{
- button.setImage(nil, for: .normal)
- }
- }
-
- }
- //创造按钮
- extension ASAppBtnView{
- func setUpGenerate() {
-
- if btnSize == .zero{
- btnSize = CGSizeMake(291, 52)
- }
-
- button = kCreateNormalSubmitBtn(
- title: title,
- frame: CGRect(origin: .zero, size: btnSize),
- action: { [weak self] in
- guard let self = self else { return }
- // if let vc = WindowHelper.getCurrentViewController() {
- // if kJudgeVip(externalBool: isClickVipBlock?() ?? false, vc: vc) { return } //判断 vip
- // }
- clickBlock?()
- })
- contentView.addSubview(button)
- button.snp.makeConstraints { make in
- make.center.equalToSuperview()
- make.width.equalTo(button.width)
- make.height.equalTo(button.height)
- }
-
-
- viewH = 52
- }
- }
- //创造按钮
- extension ASAppBtnView{
-
- private func loadingAnimation(loading:Bool) {
- if loading {
- button.setImage(UIImage(named: "generated_loading"), for: .normal)
- self.button.imageView?.startRotating()
- }else {
- button.imageView?.stopRotating()
- updateVipView()
- }
- }
-
- }
- //常用提交按钮
- func kCreateNormalSubmitBtn(title:String,frame:CGRect,action: (() -> Void)? = nil) -> UIButton {
- let btn = UIButton()
- btn.frame = frame
- btn.setUpButton(title:title,font: UIFont.font(size: 16,weight: .medium),titleColor:.black,corner: frame.height/2,action: action)
- btn.setTitleImageSpace(spacing: 8)
- var buttonBgImage = UIImage(named: "submit_btn_bg")!
- buttonBgImage = buttonBgImage.resizableImage(withCapInsets: UIEdgeInsets(top:24, left: 24, bottom: 24, right: 24), resizingMode: .stretch)
- btn.setBackgroundImage(buttonBgImage, for: .normal)
-
- var buttonDisBgImage = UIImage(named: "submit_btn_dis_bg")!
- buttonDisBgImage = buttonDisBgImage.resizableImage(withCapInsets: UIEdgeInsets(top:24, left: 24, bottom: 24, right: 24), resizingMode: .stretch)
- btn.setBackgroundImage(buttonDisBgImage, for: .disabled)
-
- return btn
- }
|