123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- //
- // TSEffectPreviewVC.swift
- // TSLiveWallpaper
- //
- // Created by 100Years on 2025/8/12.
- //
- class TSEffectPreviewVC: TSBaseVC {
-
- var browserPageVC:TSEffectPreviewPageVC
- public init(dataItems: [Any], startIndex: Int = 0) {
- browserPageVC = TSEffectPreviewPageVC(dataItems: dataItems, startIndex: startIndex)
- super.init()
- }
-
- @MainActor required init?(coder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
-
- lazy var styleBarView: TSEffectPreviewStyleView = {
- let styleBarView = TSEffectPreviewStyleView()
- styleBarView.modelArray = browserPageVC.dataItems as! [TSDiscoverItemModel]
- styleBarView.setSelectedIndex(selectedIndex: browserPageVC.currentIndex, animated: false)
- styleBarView.selsetedBlock = { [weak self] model,index in
- guard let self = self else { return }
-
- if index == browserPageVC.currentIndex {
- return
- }
-
- browserPageVC.goToPage(at: index, animated: true)
- }
- return styleBarView
- }()
-
- lazy var submitBtn: UIButton = {
- let submitBtn = kCreateNormalSubmitBtn(title: "Generate".localized) { [weak self] in
- guard let self = self else { return }
- pushUploadPhotoVC()
- }
- return submitBtn
- }()
-
-
- override func createView() {
-
- let imageView = UIImageView.createImageView(image: .navShadow,contentMode: .scaleToFill)
- navBarContentView.addSubview(imageView)
- imageView.snp.makeConstraints { make in
- make.edges.equalToSuperview()
- }
-
- addNormalNavBarView()
- setPageTitle("")
- contentView.snp.updateConstraints { make in
- make.top.equalTo(0)
- }
-
- self.addChild(browserPageVC)
- contentView.addSubview(browserPageVC.view)
-
- let bottomShadowImageView = UIImageView.createImageView(image: .bottomShadow,contentMode: .scaleToFill)
- contentView.addSubview(bottomShadowImageView)
- bottomShadowImageView.snp.makeConstraints { make in
- make.bottom.leading.trailing.equalToSuperview()
- make.height.equalTo(268*kDesignScale)
- }
-
- contentView.addSubview(submitBtn)
- submitBtn.snp.makeConstraints { make in
- make.centerX.equalToSuperview()
- make.width.equalTo(250*kDesignScale)
- make.height.equalTo(48)
- make.bottom.equalTo(-12-k_Height_safeAreaInsetsBottom())
- }
-
- contentView.addSubview(styleBarView)
- styleBarView.snp.makeConstraints { make in
- make.leading.trailing.equalToSuperview()
- make.bottom.equalTo(submitBtn.snp.top).offset(-12)
- }
-
- }
-
- override func createFrame() {
- browserPageVC.view.snp.makeConstraints { make in
- make.edges.equalToSuperview()
- }
- }
-
- override func dealThings() {
- browserPageVC.currentIndexChanged = { [weak self] index in
- guard let self = self else { return }
- styleBarView.setSelectedIndex(selectedIndex: browserPageVC.currentIndex, animated: true)
- }
-
- NotificationCenter.default.addObserver(self, selector: #selector(updateVipView), name: .kPurchaseDidChanged, object: nil)
- updateVipView()
- }
-
- }
- extension TSEffectPreviewVC {
-
- var currentIndex:Int{
- return browserPageVC.currentIndex
- }
-
- var currentModel:TSDiscoverItemModel?{
- if let model = browserPageVC.dataItems.safeObj(At: currentIndex) as? TSDiscoverItemModel{
- return model
- }
- return nil
- }
-
- var generatorStyle:TSGeneratorImageStyle{
- return currentModel?.style ?? .ptp
- }
-
- @objc func updateVipView() {
- kMainAsync {
- kSetBtnVipIcon(btn: self.submitBtn, show: kPurchaseBusiness.generateVipShow(type: self.generatorStyle == .creatVideo ? .generalVideo :.general))
- }
- }
-
- func pushUploadPhotoVC(){
- guard let itemModel = currentModel else { return }
- guard let disCoverItemModels = browserPageVC.dataItems as? [TSDiscoverItemModel] else { return }
- TSAIListVC.enterSelectPhotos(target: self,style: itemModel.style) { images in
- self.push(TSAIUploadPhotoVC(titleString: itemModel.name,upLoadImage: images.first!, generatorStyle: itemModel.style,disCoverItemModel: itemModel,disCoverItemModels:disCoverItemModels),animated: false) {
- TSAIListVC.closeSelectPhotos()
- }
- }
- }
- }
|