CNHomepageDetailViewController.swift 13.7 KB
////
////  CNHomepageDetailViewController.swift
////  metaCode
////
////  Created by zx on 2024/1/5.
////  首页--短剧大图点击详情页(废弃) -> CNUpSlideDetailViewController
//
//import Foundation
//import MJRefresh
//import EmptyDataSet_Swift
//
//class CNHomepageDetailViewController: CNLiveBaseViewController  ,UITableViewDataSource, UITableViewDelegate,EmptyDataSetSource, EmptyDataSetDelegate{
//    
//    //slideModel
//    var _slideModel : CNLiveDownSlideModel?
//    var slideModel : CNLiveDownSlideModel? {
//        get{
//            _slideModel
//        }
//        set{
//            _slideModel = newValue!
//        }
//    }
//    
//    var dismissClosure: (()->())?
//    //the point when start to interactive
//    var interactiveStartingPoint: CGPoint? = nil
//    var draggingDownToDismiss = false
//    let cell: CNDownSlideSingleCourseCell!
//
//    private lazy var dismissPanGesture: UIPanGestureRecognizer = {
//        let ges = UIPanGestureRecognizer()
//        ges.maximumNumberOfTouches = 1
//        ges.addTarget(self, action: #selector(handleDismissPan(gesture:)))
//        ges.delegate = self
//        return ges
//    }()
//    
//    lazy var scrollView: CNUpSlideDetailScrollView = {
//        let frame = self.view.bounds
//        let view = CNUpSlideDetailScrollView(frame: frame)
//        view.callBack = {(contentMdl:CNLiveDownSlideContentsModel)->Void in
//            CNLiveDownSlideTool.detailPushWebVCWithContentsMdl(contentMdl: contentMdl, viewController: self)
//        }
//        view.delegate = self
//        return view
//    }()
//    
//    lazy var closeBtn: UIButton = {
//        let btn = UIButton()
//        btn.frame = CGRect(x: KSreenWidth - 20 - 30, y: KStatusBarHeight+20, width: 30, height: 30)
//        btn.setImage(#imageLiteral(resourceName: "close_button"), for: .normal)
//        btn.addTarget(self, action: #selector(closeAction), for: .touchUpInside)
//        return btn
//    }()
//    init(cell: CNDownSlideSingleCourseCell,slideModel:CNLiveDownSlideModel) {
//        self.pageNum = 1
//        self.cell = cell
//        super.init(nibName: nil, bundle: nil)
//        self.slideModel = slideModel
//        self.setupTranstion()
//        setNeedsStatusBarAppearanceUpdate()
//        
//    }
//    
//    private func setupTranstion() {
//        modalPresentationStyle = .custom
//        transitioningDelegate = self
//    }
//    
//    required init?(coder aDecoder: NSCoder) {
//        fatalError("init(coder:) has not been implemented")
//    }
//    override func viewDidLoad() {
//        super.viewDidLoad()
//        setupUI()
//        getImageFromCell()
//        self.getBlockContents(page: 1)
//    }
//    
//    private func setupUI() {
//        self.view.layer.masksToBounds = true
////        view.addSubview(scrollView)
////        scrollView.slideModel = _slideModel
//        self.view.addSubview(self.tableView)
//        self.tableView.frame = CGRect(x: 0, y: 0, width: KSreenWidth, height: KSreenHeight)
//        view.addSubview(closeBtn)
//        view.addGestureRecognizer(dismissPanGesture)
//        
//        if #available(iOS 11.0, *) {
//            scrollView.contentInsetAdjustmentBehavior = .never
//        } else {
//            automaticallyAdjustsScrollViewInsets = false
//        }
//    }
//    
//    private func getImageFromCell() {
//        scrollView.imageView.image = cell.bgImageView.image
//    }
//    @objc private func closeAction() {
//        dismiss(animated: true, completion: nil)
//        let nav = self.navigationController as! CNHomePageBaseNavigationController
//        nav.dismissClosure?()
//    }
//    @objc private func handleDismissPan(gesture: UIPanGestureRecognizer) {
//        if !draggingDownToDismiss {
//            return
//        }
//        
//        let startingPoint: CGPoint
//        
//        if let p = interactiveStartingPoint {
//            startingPoint = p
//        } else {
//            startingPoint = gesture.location(in: nil)
//            interactiveStartingPoint = startingPoint
//        }
//
//        let currentLocation = gesture.location(in: nil)
//        
//        var progress = (currentLocation.y - startingPoint.y) / 100
//        
//        //prevent viewController bigger when scrolling up
//        if currentLocation.y <= startingPoint.y {
//            progress = 0
//        }
//        
//        if progress >= 1.0 {
//            dismiss(animated: true, completion: nil)
//            let nav = self.navigationController as! CNHomePageBaseNavigationController
//            nav.dismissClosure?()
////            dismissClosure?()
//            stopDismissPanGesture(gesture)
//            return
//        }
//
//        let targetShrinkScale: CGFloat = 0.86
//        let currentScale: CGFloat = 1 - (1 - targetShrinkScale) * progress
//        
//        switch gesture.state {
//        case .began,.changed:
//            scrollView.isScrollEnabled = false
//            gesture.view?.transform = CGAffineTransform(scaleX: currentScale, y: currentScale)
//            gesture.view?.layer.cornerRadius = GlobalConstants.toDayCardCornerRadius * (progress)
//            scrollView.showsVerticalScrollIndicator = false
//        case .cancelled,.ended:
//            scrollView.isScrollEnabled = true
//            stopDismissPanGesture(gesture)
//        default:
//            break
//        }
//    }
//    
//    //当下拉Offset超过100或取消下拉手势时,执行此方法
//    private func stopDismissPanGesture(_ gesture: UIPanGestureRecognizer) {
//        draggingDownToDismiss = false
//        interactiveStartingPoint = nil
//        scrollView.showsVerticalScrollIndicator = true
//        
//        UIView.animate(withDuration: 0.2) {
//            gesture.view?.transform = CGAffineTransform.identity
//        }
//    }
//
//    
//    
//    
//    let kCNLiveAlbumImageCellIdentifier = "kCNLiveAlbumImageCellIdentifier"
//    let kCNLiveAlbumCellIdentifier = "kCNLiveAlbumCellIdentifier"
//
//    var pageNum: NSInteger
//    var network_type: CNLiveMineResponseType!
//    // MARK: - 懒加载
//    ///数据源
//    lazy var dataArray: NSMutableArray = {
//        var dataArray = NSMutableArray()
//        return dataArray
//    }()
//    lazy var tableView : UITableView = {
//        let tableView = UITableView(frame: .zero, style: .plain)
//        tableView.dataSource = self
//        tableView.delegate = self
//        tableView.emptyDataSetSource = self
//        tableView.emptyDataSetDelegate = self
//        tableView.separatorStyle = .none
//        tableView.tableFooterView = UIView.init()
//        tableView.register(CNLiveAlbumCell.self, forCellReuseIdentifier: kCNLiveAlbumCellIdentifier)
//        tableView.register(CNLiveAlbumImageCell.self, forCellReuseIdentifier: kCNLiveAlbumImageCellIdentifier)
//        return tableView
//    }()
//                        
//    
//    func numberOfSections(in tableView: UITableView) -> Int {
//        2
//    }
//    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
//        if section == 0{
//            return 1
//        }else{
//            return self.dataArray.count
//        }
//    }
//    
//    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
//        
//        if indexPath.section == 0{
//            guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveAlbumImageCellIdentifier) as? CNLiveAlbumImageCell
//            else {
//                let cell = CNLiveAlbumImageCell()
//                return cell
//            }
//            cell.iconImgView.image = self.cell.bgImageView.image
//            return cell
//        }else{
//            let albumModel = self.dataArray[indexPath.row] as! CNLiveAlbumModel
//
//            guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveAlbumCellIdentifier) as? CNLiveAlbumCell
//            else {
//                let cell = CNLiveAlbumCell()
//                return cell
//            }
//            cell.albumModel = albumModel
//            return cell
//        }
//    }
//    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
//        if indexPath.section == 0{
//            return KSreenWidth
//        }else{
//            return 75
//        }
//    }
//    
//    // MARK: - 获取全部专辑列表
//    func getBlockContents(page:NSInteger){
//        showLoading(message: "")
//        CNLiveHomePageViewModel.getBlockContents(blockId: self.slideModel!.blockId ?? "", page: page) {[weak self] result, status in
//            hiddenLoading()
//            if status == .success{
//                if self!.pageNum > 1 {
//                    self!.dataArray.addObjects(from: result as! [CNLiveAlbumModel])
//                }
//                if self!.pageNum == 1 {
//                    self!.dataArray.removeAllObjects()
//                    self!.dataArray.addObjects(from: result as! [CNLiveAlbumModel])
//                    if self!.dataArray.count > 0 && self!.tableView.mj_header == nil && self!.tableView.mj_footer == nil {
//                        self!.addRefreshView()
//                        self!.pageNum = self!.pageNum + 1
//                        self!.getBlockContents(page: self!.pageNum)
//                    }
//                }
//                
//                self!.tableView.mj_header?.endRefreshing()
//                self!.tableView.mj_footer?.endRefreshing()
//                self!.tableView.reloadData()
//                if (result as! Array<Any>).count == 0 {
//                    self!.tableView.mj_footer?.endRefreshingWithNoMoreData()
//                    self!.tableView.reloadData()
//                }
//
//            }else if (status == .noNetwork) {
//                self!.network_type = .noNetwork
//                self!.tableView.reloadEmptyDataSet()
//            } else {
//                self!.network_type = .failed
//                self!.tableView.reloadEmptyDataSet()
//            }
//        }
//    }
//    func addRefreshView() {
//        tableView.mj_header = MJRefreshNormalHeader.init(refreshingBlock: {[weak self] in
//            self!.pageNum = 1
//            self!.getBlockContents(page: 1)
//        })
//        
//        tableView.mj_footer = MJRefreshAutoNormalFooter.init(refreshingBlock: {[weak self] in
//            self!.pageNum = self!.pageNum + 1
//            self!.getBlockContents(page: self!.pageNum)
//        })
//    }
//}
//
//extension CNHomepageDetailViewController: UIViewControllerTransitioningDelegate {
//    
//    func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> UIViewControllerAnimatedTransitioning? {
//        return CNHomePageAnimationTransition(animationType: .present)
//    }
//    
//    func animationController(forDismissed dismissed: UIViewController) -> UIViewControllerAnimatedTransitioning? {
//        return CNHomePageAnimationTransition(animationType: .dismiss)
//    }
//    
//    func presentationController(forPresented presented: UIViewController, presenting: UIViewController?, source: UIViewController) -> UIPresentationController? {
//        return CNUpSlideCardPresentationController(presentedViewController: presented, presenting: presenting)
//    }
//}
//
//extension CNHomepageDetailViewController: UIScrollViewDelegate {
//    func scrollViewDidScroll(_ scrollView: UIScrollView) {
//        
//        if scrollView.contentOffset.y < 0 {
//            scrollView.contentOffset = .zero
//            draggingDownToDismiss = true
//        }
//    }
//}
//
//extension CNHomepageDetailViewController: UIGestureRecognizerDelegate {
//    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
//        return true
//    }
//}
//
//extension CNHomepageDetailViewController {
//    
//    func image(forEmptyDataSet scrollView: UIScrollView) -> UIImage? {
//        if network_type == .failed  || network_type == .unkonw {
//            return UIImage(named: "mine_list_source_unusual_failed")
//        }
//        if dataArray.count == 0 {
//            return UIImage(named: "mine_list_source_unusual_empty")
//        }
//        if network_type == .noNetwork {
//            return UIImage(named: "mine_list_source_unusual_noNet")
//        }
//        return UIImage(named: "mine_list_source_unusual_empty")
//    }
//    
//    func title(forEmptyDataSet scrollView: UIScrollView) -> NSAttributedString? {
//        var defult_string = ""
//        if network_type == .failed  || network_type == .unkonw {
//            defult_string = "接口请求错误,刷新试试~"
//        }
//        if network_type == .noNetwork {
//            defult_string = "网络开小差了,刷新试试~"
//        }
//        if dataArray.count == 0 {
//            defult_string = "暂时没有数据~"
//        }
//        return NSAttributedString(string: defult_string, attributes: [.font: Font_17,.foregroundColor: HexColor("#666666")!])
//    }
//    
//    func buttonTitle(forEmptyDataSet scrollView: UIScrollView, for state: UIControl.State) -> NSAttributedString? {
//        if network_type == .failed || network_type == .noNetwork {
//            let attributes = [NSAttributedString.Key.font:Font_16_Fit,
//                              NSAttributedString.Key.foregroundColor: HexColor("#609BFF")]
//            return NSAttributedString(string: "刷一刷", attributes: attributes as [NSAttributedString.Key : Any])
//        }
//        return nil
//    }
//    
//    func emptyDataSet(_ scrollView: UIScrollView, didTapView view: UIView) {
//        if network_type == .failed || network_type == .noNetwork  {
//            getBlockContents(page: 1)
//        }
//    }
//}