CNUpSlideView.swift 3.58 KB
//
//  CNUpSlideView.swift
//  metaCode
//
//  Created by daojian on 2023/5/31.
//  上滑后的下面页面

import Foundation
import WebKit

let UpDownTypeH5 = 1///h5
let UpDownTypePage = 2///原生page页面
let UpDownTypeShopDetail = 3///店铺详情
let UpDownTypeShopControlConsole = 4///店铺控制台
let UpDownTypeAuthAlertUp = 5///上滑地址 认证-弹窗
let UpDownTypeAuthAlertDown = 6///下滑地址 认证-弹窗

///上滑显示的VIew
class CNUpSlideView:UIView{
    
    lazy var webView: CNWebView = {
        let configuration = WKWebViewConfiguration()
        configuration.allowsInlineMediaPlayback = true
        let preferences = WKPreferences()
        preferences.javaScriptCanOpenWindowsAutomatically = true
        preferences.javaScriptEnabled = true
        configuration.preferences.minimumFontSize = 0.0
        configuration.preferences = preferences
        configuration.userContentController = WKUserContentController()

        var url:URL?
        if (_downPath != ""){
            url = URL.init(string: _downPath!)
        }else{
            url = nil
        }
        let webView = CNWebView(frame: CGRectMake(10, KNavigationHeight+KStatusBarHeight+10, self.width - 20, self.height-KNavigationHeight-KStatusBarHeight-10), configuration: configuration,url: url)
        
        webView.cnWebView.scrollView.showsVerticalScrollIndicator = false
        webView.cnWebView.scrollView.showsHorizontalScrollIndicator = false
        webView.cnWebView.backgroundColor = .clear
        webView.cnWebView.layer.cornerRadius = 29
        webView.cnWebView.layer.maskedCorners = [.layerMinXMinYCorner, .layerMaxXMinYCorner]
        webView.cnWebView.clipsToBounds = true
        return webView
    }()
    
    lazy var upSlideVC: CNLiveDownShopDetailController = {
        let upSlideVC = CNLiveDownShopDetailController.init()
        upSlideVC.view.width = KSreenWidth
        upSlideVC.view.height = KSreenHeight
        upSlideVC.view.backgroundColor = .white
        return upSlideVC
    }()
    
    //IDmodel
    var _idModel : StandListModel?
    var idModel : StandListModel? {
        get{
            _idModel
        }
        set{
            _idModel = newValue
        }
        
    }
    
    var type:Int?
    
    var _downPath:String?
    var downPath:String? {
        get{
            return _downPath
        }
        set{
            _downPath = newValue!
            self.subviews.forEach { view in
                view.removeFromSuperview()
            }
            if(type == UpDownTypeH5){
                self.addSubview(self.webView)
            }
            else if(type == UpDownTypePage){

            }else if(type == UpDownTypeShopDetail){
                currentViewController()?.addChild(self.upSlideVC)//看行不行
                self.upSlideVC.didMove(toParent: currentViewController())
                self.addSubview(self.upSlideVC.view)
            }else if(type == UpDownTypeShopControlConsole){
                
            }
        }
    }
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        let tap = UITapGestureRecognizer.init(target: self, action: #selector(upSlideViewTap))
        tap.cancelsTouchesInView = false
        self.addGestureRecognizer(tap)
        self.initUI()
        
    }
    @objc func upSlideViewTap() {
        print("upSlideViewTap")
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    func initUI()
    {
        self.isUserInteractionEnabled = true
        self.backgroundColor = UIColor.clear
        self.layer.cornerRadius = 20
    }
    
}