1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- //
- // TSEffectPreviewPageVC.swift
- // TSLiveWallpaper
- //
- // Created by 100Years on 2025/8/12.
- //
- class TSEffectPreviewPageVC: TSBasePageVC {
- override func viewController(at index: Int) -> UIViewController? {
- guard index >= 0 && index < dataItems.count else { return nil }
- if let model = dataItems[index] as? TSDiscoverItemModel {
- return TSEffectPreviewPageItemVC.createBrowserVC(with: model)
- }
- return nil
- }
-
- override func indexOfViewController(_ viewController: UIViewController) -> Int? {
- guard let vc = viewController as? TSEffectPreviewPageItemVC,
- let index = dataItems.firstIndex(where: { ($0 as? TSDiscoverItemModel) === vc.model }) else {
- return nil
- }
- return index
- }
-
- override func dealThings() {
-
- }
- }
- class TSEffectPreviewPageItemVC: TSBaseVC {
-
- var model:TSDiscoverItemModel
- init(model: TSDiscoverItemModel) {
- self.model = model
- super.init()
- }
-
-
- @MainActor required init?(coder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
-
- override func createView() {
- setNavBarViewHidden(true)
- }
-
-
- // 工厂方法
- static func createBrowserVC(with model: TSDiscoverItemModel) -> TSEffectPreviewPageItemVC {
- return TSEffectPreviewPageItemComparisonVC(model: model)
- }
-
- }
- class TSEffectPreviewPageItemComparisonVC: TSEffectPreviewPageItemVC {
-
- lazy var comparisonView: TSImagesComparisonView = {
- let comparisonView = TSImagesComparisonView(frame: CGRect(x: 0, y: 300, width: 300, height: 400))
- comparisonView.isRunloop = true
- comparisonView.cornerRadius = 0
- return comparisonView
- }()
- override func createView() {
- super.createView()
-
- contentView.addSubview(comparisonView)
- comparisonView.snp.makeConstraints { make in
- make.edges.equalToSuperview()
- }
-
- kMainAsync {
- self.comparisonView.startAnimation(direction: .rightToLeft)
- }
- }
-
- override func dealThings() {
- if let animationModel = model.viewModel as? TSDiscoverAnimationItemVM {
- var images = [UIImage]()
- for imageNamed in animationModel.imageNameds {
- if let image = UIImage(named: imageNamed) {
- images.append(image)
- }
- }
- comparisonView.images = images
- }
- }
- }
|