123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- //
- // TSImageGenerateView.swift
- // AIEmoji
- //
- // Created by 100Years on 2025/4/24.
- //
- class TSImageGenerateView:TSBaseView {
-
- var refreshHandel:(()->Void)?
- lazy var infoLabel: UILabel = {
- let infoLabel = UILabel.createLabel(font: .font(size: 12),textColor: .white,textAlignment: .center,numberOfLines: 0)
- return infoLabel
- }()
-
- lazy var refreshBtn: TSUIExpandedTouchButton = {
- let refreshBtn = TSUIExpandedTouchButton()
- refreshBtn.setUpButton(image: UIImage(named: "refresh_white"))
- {[weak self] in
- guard let self = self else { return }
- refreshHandel?()
- }
- refreshBtn.isHidden = true
- return refreshBtn
- }()
-
- lazy var blurEffect: UIVisualEffectView = {
- let blurEffect = createBlurEffectView(style: .dark)
- return blurEffect
- }()
-
- // lazy var blurEffect: TSDynamicBlurView = {
- // return TSDynamicBlurView()
- // }()
-
- private var bgImageURLString:String?
- lazy var bgImageView: UIImageView = {
- let bgImageView = UIImageView.createImageView(contentMode: .scaleAspectFill)
- bgImageView.addSubview(blurEffect)
- blurEffect.snp.makeConstraints { make in
- make.edges.equalToSuperview()
- }
- return bgImageView
- }()
-
-
- var titleTop:CGFloat = 86.0 {
- didSet{
- infoLabel.snp.updateConstraints { make in
- make.top.equalTo(titleTop)
- }
- }
- }
-
- override func creatUI() {
- backgroundColor = .assist
-
- contentView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(clickContentView)))
- contentView.addSubview(bgImageView)
- bgImageView.snp.makeConstraints { make in
- make.edges.equalToSuperview()
- }
-
- contentView.addSubview(infoLabel)
- infoLabel.snp.makeConstraints { make in
- // make.top.equalTo(titleTop)
- make.leading.equalTo(8)
- make.trailing.equalTo(-8)
- make.centerY.equalToSuperview().offset(0)
- }
-
- contentView.addSubview(refreshBtn)
- refreshBtn.snp.makeConstraints { make in
- make.centerX.equalToSuperview()
- make.top.equalTo(infoLabel.snp.bottom).offset(8)
- make.width.height.equalTo(20.0)
- }
-
- }
-
- func updateInfoLabelCenterY() {
- infoLabel.snp.updateConstraints { make in
- make.centerY.equalToSuperview().offset(refreshBtn.isHidden ? 0 : -14.0)
- }
- }
- private var isCanClick:Bool = false
- @objc func clickContentView() {
- if isCanClick{
- refreshHandel?()
- }
- }
- func setProgress(progress:Float) {
- refreshBtn.isHidden = true
- isCanClick = false
- let progressInt = Int(progress*100)
- infoLabel.text = "Generating".localized + "..." + "\n\n\(progressInt)%"
- infoLabel.textColor = .themeColor
- // infoLabel.applyGradient(colors: ["#E961F6".uiColor,"#7E57F4".uiColor])
-
- updateInfoLabelCenterY()
- }
-
-
- func setTaskExpired(){
- isCanClick = true
- setProgress(progress: 0.0)
- infoLabel.text = "This task has expired".localized
- infoLabel.textColor = .white
- refreshBtn.isHidden = false
- isCanClick = true
- refreshBtn.setImage(UIImage(named: "delete_white"), for: .normal)
-
- updateInfoLabelCenterY()
- }
-
- func setBgImageViewURLString(bgImageURLString:String) {
- if self.bgImageURLString == bgImageURLString {
- return
- }
-
- bgImageView.image = nil
- bgImageView.setAsyncImage(urlString: bgImageURLString, completion: { [weak self] image in
- guard let self = self else { return }
- if let image = image{
- bgImageView.image = image//TSDynamicBlurView.blurred(image: image)
- }
- })
- }
-
- func setFailText(text:String,refresh:Bool = true){
- setProgress(progress: 0.0)
- infoLabel.text = text
- infoLabel.textColor = .white
-
- if refresh {
- refreshBtn.isHidden = false
- refreshBtn.setImage(UIImage(named: "refresh_white"), for: .normal)
- }else{
- refreshBtn.isHidden = true
- }
- isCanClick = true
- updateInfoLabelCenterY()
- }
- }
|